Badge images report the certificate status at the moment they are fetched
BackProbeIntegrity Authority
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