Badge images report the certificate status at the moment they are fetched
BackProbeIntegrity Authority
dev/mishka/gamblerplus/client/RakebackScreen.class 11.8 KB
Class
public final synchronized dev.mishka.gamblerplus.client.RakebackScreen
Extends
net.minecraft.class_437
Implements
nothing
Compiled for
Java 21

Reconstructed source

// Reconstructed from bytecode by BackProbe (dev/mishka/gamblerplus/client/RakebackScreen.class, Java 21); this is not the original source.

package dev.mishka.gamblerplus.client;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map.Entry;
import java.util.Objects;
import net.minecraft.class_11908;
import net.minecraft.class_11909;
import net.minecraft.class_2561;
import net.minecraft.class_310;
import net.minecraft.class_332;
import net.minecraft.class_437;

public final class RakebackScreen extends class_437 {

    private static final int PANEL_W;
    private static final int PANEL_H;
    private static final int ROW_H;
    private static final int MAX_ROWS;
    private static final long ANIM_MS;
    private final Config config;
    private final SessionManager sessions;
    private long openedAtMs;
    private int scroll;
    private int px;
    private int py;
    private int listTop;
    private int listBot;
    private int listX;
    private int listW;
    private int closeX;
    private int closeY;
    private int closeW;
    private int closeH;
    private final List paidHitboxes;
    private final List paidPlayers;
    private float uiScale;

    public RakebackScreen(Config arg0, SessionManager arg1) {
        super(class_310.method_1551(), class_310.method_1551().field_1772, class_2561.method_43470("Rakeback"));
        this.paidHitboxes = new ArrayList();
        this.paidPlayers = new ArrayList();
        this.uiScale = 1.0F;
        this.config = arg0;
        this.sessions = arg1;
        return;
    }

    protected void method_25426() {
        this.openedAtMs = System.currentTimeMillis();
        int var1 = 16;
        float var2 = (((float) (this.field_22789 - var1)) / 460.0);
        float var3 = (((float) (this.field_22790 - var1)) / 280.0);
        this.uiScale = Math.min(1.0F, Math.min(var2, var3));
        int var4 = Math.round((((float) this.field_22789) / this.uiScale));
        int var5 = Math.round((((float) this.field_22790) / this.uiScale));
        this.px = ((var4 - 460) / 2);
        this.py = ((var5 - 280) / 2);
        return;
    }

    public boolean method_25421() {
        return false;
    }

    public void method_25394(class_332 arg0, int arg1, int arg2, float arg3) {
        long var5 = (System.currentTimeMillis() - this.openedAtMs);
        float var7 = Math.min(1.0F, (((float) var5) / 220.0));
        float var8 = Theme.easeOutCubic(var7);
        int var9 = ((int) (176.0 * var8));
        arg0.method_25294(0, 0, this.field_22789, this.field_22790, (var9 << 24));
        int var10 = Math.round((((float) arg1) / this.uiScale));
        int var11 = Math.round((((float) arg2) / this.uiScale));
        var var12 = arg0.method_51448();
        var12.pushMatrix();
        var12.translate(0.0F, ((1.0F - var8) * -14.0));
        var12.scale(this.uiScale, this.uiScale);
        arg0.method_25294(this.px, this.py, (this.px + 460), (this.py + 280), -15855596);
        this.outline(arg0, this.px, this.py, (this.px + 460), (this.py + 280), -14276046);
        arg0.method_25294(this.px, this.py, (this.px + 460), (this.py + 24), -15329251);
        arg0.method_25294(this.px, (this.py + 24), (this.px + 460), (this.py + 25), -14276046);
        arg0.method_51433(this.field_22793, "rakeback owed", (this.px + 14), (this.py + 9), -1644565, false);
        var var13 = indy.makeConcatWithConstants(this.formatPct(this.config.rakebackPct()));
        int var14 = this.field_22793.method_1727(var13);
        arg0.method_51433(this.field_22793, var13, (((this.px + 460) - var14) - 14), (this.py + 9), -13927425, false);
        int var15 = (this.py + 34);
        int var16 = (this.px + 16);
        int var17 = (this.px + 190);
        int var18 = (this.px + 290);
        int var19 = ((this.px + 460) - 90);
        arg0.method_51433(this.field_22793, "PLAYER", var16, var15, -11709599, false);
        arg0.method_51433(this.field_22793, "RECEIVED", var17, var15, -11709599, false);
        arg0.method_51433(this.field_22793, "OWED", var18, var15, -11709599, false);
        this.listX = (this.px + 8);
        this.listW = 444;
        this.listTop = (var15 + 12);
        this.listBot = ((this.py + 280) - 36);
        arg0.method_25294(this.listX, this.listTop, (this.listX + this.listW), this.listBot, -15000028);
        this.outline(arg0, this.listX, this.listTop, (this.listX + this.listW), this.listBot, -14276046);
        this.paidHitboxes.clear();
        this.paidPlayers.clear();
        var var20 = this.sessions.incomingByPlayer();
        var var21 = new ArrayList(var20.entrySet());
        var21.sort(Comparator.comparingLong(indy.applyAsLong()).reversed());
        long var22 = 0L;
        var var24 = var21.iterator();
    L606:
        if (!var24.hasNext()) goto L663;
        var var25 = ((Map.Entry) var24.next());
        var22 = (var22 + ((long) ((((double) ((Long) var25.getValue()).longValue()) * this.config.rakebackPct()) / 100.0)));
        goto L606;
    L663:
        if (!var21.isEmpty()) goto L753;
        if (!this.sessions.hasActive()) goto L689;
        var stack0 = "no incoming payments yet in this session";
        goto L692;
    L689:
        stack0 = "no active session - start one from the tracker";
    L692:
        var24 = stack0;
        var25 = this.field_22793.method_1727(var24);
        arg0.method_51433(this.field_22793, var24, (this.listX + ((this.listW - var25) / 2)), ((this.listTop + ((this.listBot - this.listTop) / 2)) - 4), -11709599, false);
        goto L1428;
    L753:
        var24 = ((this.listBot - this.listTop) - 4);
        var25 = Math.min(10, (var24 / 18));
        int var26 = Math.max(0, Math.min(this.scroll, (var21.size() - var25)));
        int var27 = Math.min(var25, (var21.size() - var26));
        arg0.method_44379((this.listX + 1), (this.listTop + 1), ((this.listX + this.listW) - 1), (this.listBot - 1));
        int var28 = 0;
    L854:
        if (var28 >= var27) goto L1288;
        var var29 = ((Map.Entry) var21.get((var26 + var28)));
        int var30 = ((this.listTop + 4) + (var28 * 18));
        if ((var28 & 1) != 1) goto L935;
        arg0.method_25294((this.listX + 1), (var30 - 2), ((this.listX + this.listW) - 1), ((var30 + 18) - 2), 150994943);
    L935:
        long var31 = ((Long) var29.getValue()).longValue();
        long var33 = ((long) ((((double) var31) * this.config.rakebackPct()) / 100.0));
        arg0.method_51433(this.field_22793, ((String) var29.getKey()), var16, var30, -1644565, false);
        arg0.method_51433(this.field_22793, AmountFormat.pretty(var31), var17, var30, -11870592, false);
        arg0.method_51433(this.field_22793, AmountFormat.pretty(var33), var18, var30, -1096636, false);
        int var35 = 60;
        int var36 = 14;
        int var37 = var19;
        int var38 = (var30 - 3);
        if (var10 < var37) goto L1091;
        if (var10 >= (var37 + var35)) goto L1091;
        if (var11 < var38) goto L1091;
        if (var11 >= (var38 + var36)) goto L1091;
        stack0 = 1;
        goto L1092;
    L1091:
        stack0 = 0;
    L1092:
        int var39 = stack0;
        stack0 = arg0;
        var stack1 = var37;
        var stack2 = var38;
        var stack3 = (var37 + var35);
        var stack4 = (var38 + var36);
        if (var39 == 0) goto L1119;
        var stack5 = -15000028;
        goto L1121;
    L1119:
        stack5 = -15329251;
    L1121:
        stack0.method_25294(stack1, stack2, stack3, stack4, stack5);
        stack0 = this;
        stack1 = arg0;
        stack2 = var37;
        stack3 = var38;
        stack4 = (var37 + var35);
        stack5 = (var38 + var36);
        if (var39 == 0) goto L1151;
        var stack6 = -11870592;
        goto L1153;
    L1151:
        stack6 = -14276046;
    L1153:
        stack0.outline(stack1, stack2, stack3, stack4, stack5, stack6);
        int var40 = this.field_22793.method_1727("paid");
        Objects.requireNonNull(this.field_22793);
        stack0 = arg0;
        stack1 = this.field_22793;
        stack2 = "paid";
        stack3 = (var37 + ((var35 - var40) / 2));
        stack4 = ((var38 + ((var36 - 9) / 2)) + 1);
        if (var39 == 0) goto L1217;
        stack5 = -11870592;
        goto L1219;
    L1217:
        stack5 = -1644565;
    L1219:
        stack0.method_51433(stack1, stack2, stack3, stack4, stack5, false);
        stack1 = new int[4];
        stack1[0] = var37;
        stack1[1] = var38;
        stack1[2] = (var37 + var35);
        stack1[3] = (var38 + var36);
        this.paidHitboxes.add(stack1);
        this.paidPlayers.add(((String) var29.getKey()));
        var28 += 1;
        goto L854;
    L1288:
        arg0.method_44380();
        if (var21.size() <= var25) goto L1428;
        var28 = ((this.listX + this.listW) - 4);
        var29 = (this.listTop + 2);
        var30 = ((this.listBot - this.listTop) - 4);
        var31 = Math.max(12, ((var30 * var25) / var21.size()));
        int var32 = (((var30 - var31) * var26) / Math.max(1, (var21.size() - var25)));
        arg0.method_25294(var28, var29, (var28 + 2), (var29 + var30), -14276046);
        arg0.method_25294(var28, (var29 + var32), (var28 + 2), ((var29 + var32) + var31), -8748911);
    L1428:
        var24 = indy.makeConcatWithConstants(AmountFormat.pretty(var22));
        stack0 = arg0;
        stack1 = this.field_22793;
        stack2 = var24;
        stack3 = (this.px + 14);
        stack4 = ((this.py + 280) - 22);
        if (!var21.isEmpty()) goto L1480;
        stack5 = -11709599;
        goto L1483;
    L1480:
        stack5 = -1096636;
    L1483:
        stack0.method_51433(stack1, stack2, stack3, stack4, stack5, false);
        this.closeW = 78;
        this.closeH = 16;
        this.closeX = (((this.px + 460) - this.closeW) - 14);
        this.closeY = ((this.py + 280) - 24);
        if (var10 < this.closeX) goto L1584;
        if (var10 >= (this.closeX + this.closeW)) goto L1584;
        if (var11 < this.closeY) goto L1584;
        if (var11 >= (this.closeY + this.closeH)) goto L1584;
        stack0 = 1;
        goto L1585;
    L1584:
        stack0 = 0;
    L1585:
        var25 = stack0;
        stack0 = arg0;
        stack1 = this.closeX;
        stack2 = this.closeY;
        stack3 = (this.closeX + this.closeW);
        stack4 = (this.closeY + this.closeH);
        if (var25 == 0) goto L1624;
        stack5 = -15000028;
        goto L1626;
    L1624:
        stack5 = -15329251;
    L1626:
        stack0.method_25294(stack1, stack2, stack3, stack4, stack5);
        stack0 = this;
        stack1 = arg0;
        stack2 = this.closeX;
        stack3 = this.closeY;
        stack4 = (this.closeX + this.closeW);
        stack5 = (this.closeY + this.closeH);
        if (var25 == 0) goto L1667;
        stack6 = -13927425;
        goto L1669;
    L1667:
        stack6 = -14276046;
    L1669:
        stack0.outline(stack1, stack2, stack3, stack4, stack5, stack6);
        var26 = this.field_22793.method_1727("close");
        Objects.requireNonNull(this.field_22793);
        stack0 = arg0;
        stack1 = this.field_22793;
        stack2 = "close";
        stack3 = (this.closeX + ((this.closeW - var26) / 2));
        stack4 = ((this.closeY + ((this.closeH - 9) / 2)) + 1);
        if (var25 == 0) goto L1740;
        stack5 = -13927425;
        goto L1742;
    L1740:
        stack5 = -1644565;
    L1742:
        stack0.method_51433(stack1, stack2, stack3, stack4, stack5, false);
        var12.popMatrix();
        return;
    }

    private String formatPct(double arg0) {
        if (Double.compare(arg0, Math.floor(arg0)) != 0) goto L27;
        var stack1 = new Object[1];
        stack1[0] = Double.valueOf(arg0);
        return String.format("%.0f%%", stack1);
    L27:
        stack1 = new Object[1];
        stack1[0] = Double.valueOf(arg0);
        return String.format("%.1f%%", stack1);
    }

    public boolean method_25402(class_11909 arg0, boolean arg1) {
        int var3 = Math.round((((float) arg0.comp_4798()) / this.uiScale));
        int var4 = Math.round((((float) arg0.comp_4799()) / this.uiScale));
        if (var3 < this.closeX) goto L79;
        if (var3 >= (this.closeX + this.closeW)) goto L79;
        if (var4 < this.closeY) goto L79;
        if (var4 >= (this.closeY + this.closeH)) goto L79;
        this.method_25419();
        return true;
    L79:
        int var5 = 0;
    L82:
        if (var5 >= this.paidHitboxes.size()) goto L175;
        var var6 = ((int[]) this.paidHitboxes.get(var5));
        if (var3 < var6[0]) goto L169;
        if (var3 >= var6[2]) goto L169;
        if (var4 < var6[1]) goto L169;
        if (var4 >= var6[3]) goto L169;
        this.sessions.markPaid(((String) this.paidPlayers.get(var5)));
        return true;
    L169:
        var5 += 1;
        goto L82;
    L175:
        return super.method_25402(arg0, arg1);
    }

    public boolean method_25401(double arg0, double arg1, double arg2, double arg3) {
        if (Double.compare(arg3, 0.0) >= 0) goto L20;
        this.scroll = (this.scroll + 1);
        goto L41;
    L20:
        if (Double.compare(arg3, 0.0) <= 0) goto L41;
        this.scroll = Math.max(0, (this.scroll - 1));
    L41:
        return true;
    }

    public boolean method_25404(class_11908 arg0) {
        if (arg0.comp_4795() != 256) goto L16;
        this.method_25419();
        return true;
    L16:
        return super.method_25404(arg0);
    }

    public void method_25419() {
        class_310.method_1551().method_29970(new TrackerScreen(this.config, GamblerPlusClient.STATS));
        return;
    }

    private void outline(class_332 arg0, int arg1, int arg2, int arg3, int arg4, int arg5) {
        arg0.method_25294(arg1, arg2, arg3, (arg2 + 1), arg5);
        arg0.method_25294(arg1, (arg4 - 1), arg3, arg4, arg5);
        arg0.method_25294(arg1, arg2, (arg1 + 1), arg4, arg5);
        arg0.method_25294((arg3 - 1), arg2, arg3, arg4, arg5);
        return;
    }
}

Methods declared

public void <init>(dev.mishka.gamblerplus.client.Config, dev.mishka.gamblerplus.client.SessionManager)
protected void method_25426()
public boolean method_25421()
public void method_25394(net.minecraft.class_332, int, int, float)
private java.lang.String formatPct(double)
public boolean method_25402(net.minecraft.class_11909, boolean)
public boolean method_25401(double, double, double, double)
public boolean method_25404(net.minecraft.class_11908)
public void method_25419()
private void outline(net.minecraft.class_332, int, int, int, int, int)

Fields

private static final int PANEL_W
private static final int PANEL_H
private static final int ROW_H
private static final int MAX_ROWS
private static final long ANIM_MS
private final dev.mishka.gamblerplus.client.Config config
private final dev.mishka.gamblerplus.client.SessionManager sessions
private long openedAtMs
private int scroll
private int px
private int py
private int listTop
private int listBot
private int listX
private int listW
private int closeX
private int closeY
private int closeW
private int closeH
private final java.util.List paidHitboxes
private final java.util.List paidPlayers
private float uiScale

Calls out to

dev.mishka.gamblerplus.client.AmountFormat.pretty(long) : java.lang.String
dev.mishka.gamblerplus.client.Config.rakebackPct() : double
dev.mishka.gamblerplus.client.Stats dev.mishka.gamblerplus.client.GamblerPlusClient.STATS
int dev.mishka.gamblerplus.client.RakebackScreen.closeH
int dev.mishka.gamblerplus.client.RakebackScreen.closeW
int dev.mishka.gamblerplus.client.RakebackScreen.closeX
int dev.mishka.gamblerplus.client.RakebackScreen.closeY
dev.mishka.gamblerplus.client.Config dev.mishka.gamblerplus.client.RakebackScreen.config
int dev.mishka.gamblerplus.client.RakebackScreen.field_22789
int dev.mishka.gamblerplus.client.RakebackScreen.field_22790
net.minecraft.class_327 dev.mishka.gamblerplus.client.RakebackScreen.field_22793
dev.mishka.gamblerplus.client.RakebackScreen.formatPct(double) : java.lang.String
int dev.mishka.gamblerplus.client.RakebackScreen.listBot
int dev.mishka.gamblerplus.client.RakebackScreen.listTop
int dev.mishka.gamblerplus.client.RakebackScreen.listW
int dev.mishka.gamblerplus.client.RakebackScreen.listX
dev.mishka.gamblerplus.client.RakebackScreen.method_25419()
long dev.mishka.gamblerplus.client.RakebackScreen.openedAtMs
dev.mishka.gamblerplus.client.RakebackScreen.outline(net.minecraft.class_332, int, int, int, int, int)
java.util.List dev.mishka.gamblerplus.client.RakebackScreen.paidHitboxes
java.util.List dev.mishka.gamblerplus.client.RakebackScreen.paidPlayers
int dev.mishka.gamblerplus.client.RakebackScreen.px
int dev.mishka.gamblerplus.client.RakebackScreen.py
int dev.mishka.gamblerplus.client.RakebackScreen.scroll
dev.mishka.gamblerplus.client.SessionManager dev.mishka.gamblerplus.client.RakebackScreen.sessions
float dev.mishka.gamblerplus.client.RakebackScreen.uiScale
dev.mishka.gamblerplus.client.SessionManager.hasActive() : boolean
dev.mishka.gamblerplus.client.SessionManager.incomingByPlayer() : java.util.Map
dev.mishka.gamblerplus.client.SessionManager.markPaid(java.lang.String)
dev.mishka.gamblerplus.client.Theme.easeOutCubic(float) : float
dev.mishka.gamblerplus.client.TrackerScreen.<init>(dev.mishka.gamblerplus.client.Config, dev.mishka.gamblerplus.client.Stats)
java.lang.Double.valueOf(double) : java.lang.Double
java.lang.Long.longValue() : long
java.lang.Math.floor(double) : double
java.lang.Math.max(int, int) : int
java.lang.Math.min(float, float) : float
java.lang.Math.min(int, int) : int
java.lang.Math.round(float) : int
java.lang.String.format(java.lang.String, java.lang.Object[]) : java.lang.String
java.lang.System.currentTimeMillis() : long
java.lang.invoke.LambdaMetafactory.metafactory(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.invoke.MethodType, java.lang.invoke.MethodHandle, java.lang.invoke.MethodType) : java.lang.invoke.CallSite
java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[]) : java.lang.invoke.CallSite
java.util.ArrayList.<init>()
java.util.ArrayList.<init>(java.util.Collection)
java.util.Comparator.comparingLong(java.util.function.ToLongFunction) : java.util.Comparator
java.util.Comparator.reversed() : java.util.Comparator
java.util.Iterator.hasNext() : boolean
java.util.Iterator.next() : java.lang.Object
java.util.List.add(java.lang.Object) : boolean
java.util.List.clear()
java.util.List.get(int) : java.lang.Object
java.util.List.isEmpty() : boolean
java.util.List.iterator() : java.util.Iterator
java.util.List.size() : int
java.util.List.sort(java.util.Comparator)
java.util.Map.entrySet() : java.util.Set
java.util.Map$Entry.getKey() : java.lang.Object
java.util.Map$Entry.getValue() : java.lang.Object
java.util.Objects.requireNonNull(java.lang.Object) : java.lang.Object
net.minecraft.class_11908.comp_4795() : int
net.minecraft.class_11909.comp_4798() : double
net.minecraft.class_11909.comp_4799() : double
net.minecraft.class_2561.method_43470(java.lang.String) : net.minecraft.class_5250
net.minecraft.class_327 net.minecraft.class_310.field_1772
net.minecraft.class_310.method_1551() : net.minecraft.class_310
net.minecraft.class_310.method_29970(net.minecraft.class_437)
net.minecraft.class_327.method_1727(java.lang.String) : int
net.minecraft.class_332.method_25294(int, int, int, int, int)
net.minecraft.class_332.method_44379(int, int, int, int)
net.minecraft.class_332.method_44380()
net.minecraft.class_332.method_51433(net.minecraft.class_327, java.lang.String, int, int, int, boolean)
net.minecraft.class_332.method_51448() : org.joml.Matrix3x2fStack
net.minecraft.class_437.<init>(net.minecraft.class_310, net.minecraft.class_327, net.minecraft.class_2561)
net.minecraft.class_437.method_25402(net.minecraft.class_11909, boolean) : boolean
net.minecraft.class_437.method_25404(net.minecraft.class_11908) : boolean
org.joml.Matrix3x2fStack.popMatrix() : org.joml.Matrix3x2fStack
org.joml.Matrix3x2fStack.pushMatrix() : org.joml.Matrix3x2fStack
org.joml.Matrix3x2fStack.scale(float, float) : org.joml.Matrix3x2f
org.joml.Matrix3x2fStack.translate(float, float) : org.joml.Matrix3x2f

Text compiled into the class

Rakeback
rakeback owed
rate 
PLAYER
RECEIVED
OWED
no incoming payments yet in this session
no active session - start one from the tracker
paid
total owed  
close
%.0f%%
%.1f%%