dev/mishka/gamblerplus/client/Config.class 8.6 KB
- Class
- public final synchronized dev.mishka.gamblerplus.client.Config
- Extends
- java.lang.Object
- Implements
- nothing
- Compiled for
- Java 21
Reconstructed source
// Reconstructed from bytecode by BackProbe (dev/mishka/gamblerplus/client/Config.class, Java 21); this is not the original source.
package dev.mishka.gamblerplus.client;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.OpenOption;
import java.nio.file.Path;
import java.nio.file.attribute.FileAttribute;
import net.fabricmc.loader.api.FabricLoader;
public final class Config {
private static final Gson GSON;
private final Path file;
private final Stats stats;
private boolean gamblingMode;
private boolean hudBar;
private boolean showToast;
private Config.HudDisplay hudDisplay;
private Config.HudAnchor hudAnchor;
private int streakThreshold;
private boolean setupComplete;
private boolean verifyLargePayments;
private long largePaymentThreshold;
private boolean rakebackEnabled;
private double rakebackPct;
private static final long[] THRESHOLD_STEPS;
private static final double[] RAKEBACK_STEPS;
public Config(Stats arg0) {
super();
this.gamblingMode = false;
this.hudBar = false;
this.showToast = false;
this.hudDisplay = Config.HudDisplay.AMOUNT;
this.hudAnchor = Config.HudAnchor.TOP_CENTER;
this.streakThreshold = 5;
this.setupComplete = false;
this.verifyLargePayments = false;
this.largePaymentThreshold = 1000000L;
this.rakebackEnabled = false;
this.rakebackPct = 5.0;
this.stats = arg0;
this.file = FabricLoader.getInstance().getConfigDir().resolve("gambler-plus.json");
return;
}
public boolean gamblingMode() {
return this.gamblingMode;
}
public boolean hudBar() {
return this.hudBar;
}
public boolean showToast() {
return this.showToast;
}
public Config.HudDisplay hudDisplay() {
return this.hudDisplay;
}
public Config.HudAnchor hudAnchor() {
return this.hudAnchor;
}
public int streakThreshold() {
return this.streakThreshold;
}
public boolean setupComplete() {
return this.setupComplete;
}
public boolean verifyLargePayments() {
return this.verifyLargePayments;
}
public long largePaymentThreshold() {
return this.largePaymentThreshold;
}
public boolean rakebackEnabled() {
return this.rakebackEnabled;
}
public double rakebackPct() {
return this.rakebackPct;
}
public void toggleGamblingMode() {
var stack0 = this;
if (this.gamblingMode) goto L12;
var stack1 = 1;
goto L13;
L12:
stack1 = 0;
L13:
stack0.gamblingMode = stack1;
this.save();
return;
}
public void toggleHudBar() {
var stack0 = this;
if (this.hudBar) goto L12;
var stack1 = 1;
goto L13;
L12:
stack1 = 0;
L13:
stack0.hudBar = stack1;
this.save();
return;
}
public void toggleShowToast() {
var stack0 = this;
if (this.showToast) goto L12;
var stack1 = 1;
goto L13;
L12:
stack1 = 0;
L13:
stack0.showToast = stack1;
this.save();
return;
}
public void toggleVerify() {
var stack0 = this;
if (this.verifyLargePayments) goto L12;
var stack1 = 1;
goto L13;
L12:
stack1 = 0;
L13:
stack0.verifyLargePayments = stack1;
this.save();
return;
}
public void toggleRakeback() {
var stack0 = this;
if (this.rakebackEnabled) goto L12;
var stack1 = 1;
goto L13;
L12:
stack1 = 0;
L13:
stack0.rakebackEnabled = stack1;
this.save();
return;
}
public void stepRakebackPct(int arg0) {
int var2 = 0;
int var3 = 0;
L4:
if (var3 >= Config.RAKEBACK_STEPS.length) goto L37;
if (Double.compare(this.rakebackPct, (Config.RAKEBACK_STEPS[var3] - 0.01)) < 0) goto L31;
var2 = var3;
L31:
var3 += 1;
goto L4;
L37:
var2 = Math.max(0, Math.min((Config.RAKEBACK_STEPS.length - 1), (var2 + arg0)));
this.rakebackPct = Config.RAKEBACK_STEPS[var2];
this.save();
return;
}
public void setSetupComplete(boolean arg0) {
this.setupComplete = arg0;
this.save();
return;
}
public void stepThreshold(int arg0) {
int var2 = 0;
int var3 = 0;
L4:
if (var3 >= Config.THRESHOLD_STEPS.length) goto L33;
if (Long.compare(this.largePaymentThreshold, Config.THRESHOLD_STEPS[var3]) < 0) goto L27;
var2 = var3;
L27:
var3 += 1;
goto L4;
L33:
var2 = Math.max(0, Math.min((Config.THRESHOLD_STEPS.length - 1), (var2 + arg0)));
this.largePaymentThreshold = Config.THRESHOLD_STEPS[var2];
this.save();
return;
}
public void cycleHudDisplay() {
var stack0 = this;
if (this.hudDisplay != Config.HudDisplay.AMOUNT) goto L17;
var stack1 = Config.HudDisplay.PERCENT;
goto L20;
L17:
stack1 = Config.HudDisplay.AMOUNT;
L20:
stack0.hudDisplay = stack1;
this.save();
return;
}
public void cycleHudAnchor() {
var stack0 = this;
switch (this.hudAnchor.ordinal()) {
case 0: goto L46;
case 1: goto L52;
case 2: goto L58;
default: goto L36;
}
L36:
throw new MatchException(null, null);
L46:
var stack1 = Config.HudAnchor.TOP_CENTER;
goto L61;
L52:
stack1 = Config.HudAnchor.TOP_RIGHT;
goto L61;
L58:
stack1 = Config.HudAnchor.TOP_LEFT;
L61:
stack0.hudAnchor = stack1;
this.save();
return;
}
public void setStreakThreshold(int arg0) {
this.streakThreshold = Math.max(2, Math.min(20, arg0));
this.save();
return;
}
public void load() {
if (Files.exists(this.file, new LinkOption[0])) goto L19;
this.save();
return;
L19:
var var1 = Files.newBufferedReader(this.file);
var var2 = JsonParser.parseReader(var1).getAsJsonObject();
if (!var2.has("gamblingMode")) goto L57;
this.gamblingMode = var2.get("gamblingMode").getAsBoolean();
L57:
if (!var2.has("hudBar")) goto L79;
this.hudBar = var2.get("hudBar").getAsBoolean();
L79:
if (!var2.has("showToast")) goto L101;
this.showToast = var2.get("showToast").getAsBoolean();
L101:
if (!var2.has("streakThreshold")) goto L123;
this.streakThreshold = var2.get("streakThreshold").getAsInt();
L123:
if (!var2.has("hudDisplay")) goto L148;
this.hudDisplay = Config.HudDisplay.valueOf(var2.get("hudDisplay").getAsString());
L148:
if (!var2.has("hudAnchor")) goto L173;
this.hudAnchor = Config.HudAnchor.valueOf(var2.get("hudAnchor").getAsString());
L173:
if (!var2.has("setupComplete")) goto L195;
this.setupComplete = var2.get("setupComplete").getAsBoolean();
L195:
if (!var2.has("verifyLargePayments")) goto L217;
this.verifyLargePayments = var2.get("verifyLargePayments").getAsBoolean();
L217:
if (!var2.has("largePaymentThreshold")) goto L239;
this.largePaymentThreshold = var2.get("largePaymentThreshold").getAsLong();
L239:
if (!var2.has("rakebackEnabled")) goto L261;
this.rakebackEnabled = var2.get("rakebackEnabled").getAsBoolean();
L261:
if (!var2.has("rakebackPct")) goto L283;
this.rakebackPct = var2.get("rakebackPct").getAsDouble();
L283:
if (!var2.has("allTimeIn")) goto L304;
var stack0 = var2.get("allTimeIn").getAsLong();
goto L305;
L304:
stack0 = 0L;
L305:
long var3 = stack0;
if (!var2.has("allTimeOut")) goto L327;
stack0 = var2.get("allTimeOut").getAsLong();
goto L328;
L327:
stack0 = 0L;
L328:
long var5 = stack0;
if (!var2.has("allTimeInCount")) goto L351;
stack0 = var2.get("allTimeInCount").getAsInt();
goto L352;
L351:
stack0 = 0;
L352:
int var7 = stack0;
if (!var2.has("allTimeOutCount")) goto L375;
stack0 = var2.get("allTimeOutCount").getAsInt();
goto L376;
L375:
stack0 = 0;
L376:
int var8 = stack0;
this.stats.loadPersisted(var3, var5, var7, var8);
if (var1 == null) goto L423;
var1.close();
goto L423;
var2 = caughtException;
if (var1 == null) goto L421;
var1.close();
goto L421;
var3 = caughtException;
var2.addSuppressed(var3);
L421:
throw var2;
L423:
goto L427;
var1 = caughtException;
L427:
return;
}
public void save() {
var var1 = new JsonObject();
var1.addProperty("gamblingMode", Boolean.valueOf(this.gamblingMode));
var1.addProperty("hudBar", Boolean.valueOf(this.hudBar));
var1.addProperty("showToast", Boolean.valueOf(this.showToast));
var1.addProperty("streakThreshold", Integer.valueOf(this.streakThreshold));
var1.addProperty("hudDisplay", this.hudDisplay.name());
var1.addProperty("hudAnchor", this.hudAnchor.name());
var1.addProperty("setupComplete", Boolean.valueOf(this.setupComplete));
var1.addProperty("verifyLargePayments", Boolean.valueOf(this.verifyLargePayments));
var1.addProperty("largePaymentThreshold", Long.valueOf(this.largePaymentThreshold));
var1.addProperty("rakebackEnabled", Boolean.valueOf(this.rakebackEnabled));
var1.addProperty("rakebackPct", Double.valueOf(this.rakebackPct));
var1.addProperty("allTimeIn", Long.valueOf(this.stats.allTimeIn()));
var1.addProperty("allTimeOut", Long.valueOf(this.stats.allTimeOut()));
var1.addProperty("allTimeInCount", Integer.valueOf(this.stats.allTimeInCount()));
var1.addProperty("allTimeOutCount", Integer.valueOf(this.stats.allTimeOutCount()));
Files.createDirectories(this.file.getParent(), new FileAttribute[0]);
var var2 = Files.newBufferedWriter(this.file, new OpenOption[0]);
Config.GSON.toJson(var1, var2);
if (var2 == null) goto L285;
var2.close();
goto L285;
var var3 = caughtException;
if (var2 == null) goto L283;
var2.close();
goto L283;
var var4 = caughtException;
var3.addSuppressed(var4);
L283:
throw var3;
L285:
goto L289;
var2 = caughtException;
L289:
return;
}
static {
Config.GSON = new GsonBuilder().setPrettyPrinting().create();
var stack0 = new long[12];
stack0[0] = 100000L;
stack0[1] = 250000L;
stack0[2] = 500000L;
stack0[3] = 1000000L;
stack0[4] = 2500000L;
stack0[5] = 5000000L;
stack0[6] = 10000000L;
stack0[7] = 25000000L;
stack0[8] = 50000000L;
stack0[9] = 100000000L;
stack0[10] = 500000000L;
stack0[11] = 1000000000L;
Config.THRESHOLD_STEPS = stack0;
stack0 = new double[13];
stack0[0] = 0.5;
stack0[1] = 1.0;
stack0[2] = 2.0;
stack0[3] = 3.0;
stack0[4] = 5.0;
stack0[5] = 7.5;
stack0[6] = 10.0;
stack0[7] = 12.5;
stack0[8] = 15.0;
stack0[9] = 20.0;
stack0[10] = 25.0;
stack0[11] = 33.0;
stack0[12] = 50.0;
Config.RAKEBACK_STEPS = stack0;
return;
}
}
Methods declared
public void <init>(dev.mishka.gamblerplus.client.Stats) public boolean gamblingMode() public boolean hudBar() public boolean showToast() public dev.mishka.gamblerplus.client.Config$HudDisplay hudDisplay() public dev.mishka.gamblerplus.client.Config$HudAnchor hudAnchor() public int streakThreshold() public boolean setupComplete() public boolean verifyLargePayments() public long largePaymentThreshold() public boolean rakebackEnabled() public double rakebackPct() public void toggleGamblingMode() public void toggleHudBar() public void toggleShowToast() public void toggleVerify() public void toggleRakeback() public void stepRakebackPct(int) public void setSetupComplete(boolean) public void stepThreshold(int) public void cycleHudDisplay() public void cycleHudAnchor() public void setStreakThreshold(int) public void load() public void save() static void <clinit>()
Fields
private static final com.google.gson.Gson GSON private final java.nio.file.Path file private final dev.mishka.gamblerplus.client.Stats stats private boolean gamblingMode private boolean hudBar private boolean showToast private dev.mishka.gamblerplus.client.Config$HudDisplay hudDisplay private dev.mishka.gamblerplus.client.Config$HudAnchor hudAnchor private int streakThreshold private boolean setupComplete private boolean verifyLargePayments private long largePaymentThreshold private boolean rakebackEnabled private double rakebackPct private static final long[] THRESHOLD_STEPS private static final double[] RAKEBACK_STEPS
Calls out to
com.google.gson.Gson.toJson(com.google.gson.JsonElement, java.lang.Appendable) com.google.gson.GsonBuilder.<init>() com.google.gson.GsonBuilder.create() : com.google.gson.Gson com.google.gson.GsonBuilder.setPrettyPrinting() : com.google.gson.GsonBuilder com.google.gson.JsonElement.getAsBoolean() : boolean com.google.gson.JsonElement.getAsDouble() : double com.google.gson.JsonElement.getAsInt() : int com.google.gson.JsonElement.getAsJsonObject() : com.google.gson.JsonObject com.google.gson.JsonElement.getAsLong() : long com.google.gson.JsonElement.getAsString() : java.lang.String com.google.gson.JsonObject.<init>() com.google.gson.JsonObject.addProperty(java.lang.String, java.lang.Boolean) com.google.gson.JsonObject.addProperty(java.lang.String, java.lang.Number) com.google.gson.JsonObject.addProperty(java.lang.String, java.lang.String) com.google.gson.JsonObject.get(java.lang.String) : com.google.gson.JsonElement com.google.gson.JsonObject.has(java.lang.String) : boolean com.google.gson.JsonParser.parseReader(java.io.Reader) : com.google.gson.JsonElement com.google.gson.Gson dev.mishka.gamblerplus.client.Config.GSON double[] dev.mishka.gamblerplus.client.Config.RAKEBACK_STEPS long[] dev.mishka.gamblerplus.client.Config.THRESHOLD_STEPS java.nio.file.Path dev.mishka.gamblerplus.client.Config.file boolean dev.mishka.gamblerplus.client.Config.gamblingMode dev.mishka.gamblerplus.client.Config$HudAnchor dev.mishka.gamblerplus.client.Config.hudAnchor boolean dev.mishka.gamblerplus.client.Config.hudBar dev.mishka.gamblerplus.client.Config$HudDisplay dev.mishka.gamblerplus.client.Config.hudDisplay long dev.mishka.gamblerplus.client.Config.largePaymentThreshold boolean dev.mishka.gamblerplus.client.Config.rakebackEnabled double dev.mishka.gamblerplus.client.Config.rakebackPct dev.mishka.gamblerplus.client.Config.save() boolean dev.mishka.gamblerplus.client.Config.setupComplete boolean dev.mishka.gamblerplus.client.Config.showToast dev.mishka.gamblerplus.client.Stats dev.mishka.gamblerplus.client.Config.stats int dev.mishka.gamblerplus.client.Config.streakThreshold boolean dev.mishka.gamblerplus.client.Config.verifyLargePayments dev.mishka.gamblerplus.client.Config$HudAnchor dev.mishka.gamblerplus.client.Config$HudAnchor.TOP_CENTER dev.mishka.gamblerplus.client.Config$HudAnchor dev.mishka.gamblerplus.client.Config$HudAnchor.TOP_LEFT dev.mishka.gamblerplus.client.Config$HudAnchor dev.mishka.gamblerplus.client.Config$HudAnchor.TOP_RIGHT dev.mishka.gamblerplus.client.Config$HudAnchor.name() : java.lang.String dev.mishka.gamblerplus.client.Config$HudAnchor.ordinal() : int dev.mishka.gamblerplus.client.Config$HudAnchor.valueOf(java.lang.String) : dev.mishka.gamblerplus.client.Config$HudAnchor dev.mishka.gamblerplus.client.Config$HudDisplay dev.mishka.gamblerplus.client.Config$HudDisplay.AMOUNT dev.mishka.gamblerplus.client.Config$HudDisplay dev.mishka.gamblerplus.client.Config$HudDisplay.PERCENT dev.mishka.gamblerplus.client.Config$HudDisplay.name() : java.lang.String dev.mishka.gamblerplus.client.Config$HudDisplay.valueOf(java.lang.String) : dev.mishka.gamblerplus.client.Config$HudDisplay dev.mishka.gamblerplus.client.Stats.allTimeIn() : long dev.mishka.gamblerplus.client.Stats.allTimeInCount() : int dev.mishka.gamblerplus.client.Stats.allTimeOut() : long dev.mishka.gamblerplus.client.Stats.allTimeOutCount() : int dev.mishka.gamblerplus.client.Stats.loadPersisted(long, long, int, int) java.io.Reader.close() java.io.Writer.close() java.lang.Boolean.valueOf(boolean) : java.lang.Boolean java.lang.Double.valueOf(double) : java.lang.Double java.lang.Integer.valueOf(int) : java.lang.Integer java.lang.Long.valueOf(long) : java.lang.Long java.lang.MatchException.<init>(java.lang.String, java.lang.Throwable) java.lang.Math.max(int, int) : int java.lang.Math.min(int, int) : int java.lang.Object.<init>() java.lang.Throwable.addSuppressed(java.lang.Throwable) java.nio.file.Files.createDirectories(java.nio.file.Path, java.nio.file.attribute.FileAttribute[]) : java.nio.file.Path java.nio.file.Files.exists(java.nio.file.Path, java.nio.file.LinkOption[]) : boolean java.nio.file.Files.newBufferedReader(java.nio.file.Path) : java.io.BufferedReader java.nio.file.Files.newBufferedWriter(java.nio.file.Path, java.nio.file.OpenOption[]) : java.io.BufferedWriter java.nio.file.Path.getParent() : java.nio.file.Path java.nio.file.Path.resolve(java.lang.String) : java.nio.file.Path net.fabricmc.loader.api.FabricLoader.getConfigDir() : java.nio.file.Path net.fabricmc.loader.api.FabricLoader.getInstance() : net.fabricmc.loader.api.FabricLoader
Text compiled into the class
gambler-plus.json gamblingMode hudBar showToast streakThreshold hudDisplay hudAnchor setupComplete verifyLargePayments largePaymentThreshold rakebackEnabled rakebackPct allTimeIn allTimeOut allTimeInCount allTimeOutCount