dev/mishka/gamblerplus/client/SessionDetailScreen.class 16.6 KB
- Class
- public final synchronized dev.mishka.gamblerplus.client.SessionDetailScreen
- Extends
- net.minecraft.class_437
- Implements
- nothing
- Compiled for
- Java 21
Reconstructed source
// Reconstructed from bytecode by BackProbe (dev/mishka/gamblerplus/client/SessionDetailScreen.class, Java 21); this is not the original source.
package dev.mishka.gamblerplus.client;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Set;
import java.util.function.Supplier;
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 SessionDetailScreen extends class_437 {
private static final int PANEL_W;
private static final int PANEL_H;
private static final int PLAYER_ROW_H;
private static final int PAYMENT_ROW_H;
private static final long ANIM_MS;
private static final DateTimeFormatter TIME_FMT;
private static final DateTimeFormatter STAMP_FMT;
private final Supplier sessionSupplier;
private final boolean live;
private final Set expanded;
private long openedAtMs;
private int px;
private int py;
private int scroll;
private int closeX;
private int closeY;
private int closeW;
private int closeH;
private int listTop;
private int listBot;
private int listX;
private int listW;
private final List playerHitRects;
private final List playerHitNames;
private float uiScale;
public SessionDetailScreen(Supplier arg0, boolean arg1) {
super(class_310.method_1551(), class_310.method_1551().field_1772, class_2561.method_43470("Session details"));
this.expanded = new HashSet();
this.playerHitRects = new ArrayList();
this.playerHitNames = new ArrayList();
this.uiScale = 1.0F;
this.sessionSupplier = arg0;
this.live = arg1;
return;
}
protected void method_25426() {
this.openedAtMs = System.currentTimeMillis();
int var1 = 16;
float var2 = (((float) (this.field_22789 - var1)) / 500.0);
float var3 = (((float) (this.field_22790 - var1)) / 340.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 - 500) / 2);
this.py = ((var5 - 340) / 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 + 500), (this.py + 340), -15855596);
this.outline(arg0, this.px, this.py, (this.px + 500), (this.py + 340), -14276046);
arg0.method_25294(this.px, this.py, (this.px + 500), (this.py + 24), -15329251);
arg0.method_25294(this.px, (this.py + 24), (this.px + 500), (this.py + 25), -14276046);
var var13 = ((Session) this.sessionSupplier.get());
if (var13 != null) goto L304;
arg0.method_51433(this.field_22793, "no session", (this.px + 14), (this.py + 9), -11709599, false);
this.drawCloseButton(arg0, var10, var11);
var12.popMatrix();
return;
L304:
var var14 = var13.label();
if (!this.live) goto L426;
arg0.method_25294((this.px + 14), (this.py + 12), (this.px + 18), (this.py + 16), -11870592);
arg0.method_51433(this.field_22793, var14, (this.px + 22), (this.py + 9), -1644565, false);
int var15 = this.field_22793.method_1727(var14);
arg0.method_51433(this.field_22793, "live", (((this.px + 22) + var15) + 6), (this.py + 9), -11870592, false);
goto L453;
L426:
arg0.method_51433(this.field_22793, var14, (this.px + 14), (this.py + 9), -1644565, false);
L453:
this.drawCloseButton(arg0, var10, var11);
var15 = (this.py + 32);
var var16 = SessionDetailScreen.STAMP_FMT.format(Instant.ofEpochMilli(var13.startedAt()));
if (this.live) goto L525;
var16 = indy.makeConcatWithConstants(var16, DateTimeFormatter.ofPattern("HH:mm").withZone(ZoneId.systemDefault()).format(Instant.ofEpochMilli(var13.endedAt())));
L525:
var stack0 = var16;
var stack1 = this;
if (!this.live) goto L547;
var stack2 = (System.currentTimeMillis() - var13.startedAt());
goto L552;
L547:
stack2 = var13.durationMs();
L552:
var16 = indy.makeConcatWithConstants(stack0, stack1.formatDuration(stack2));
arg0.method_51433(this.field_22793, var16, (this.px + 14), var15, -8748911, false);
int var17 = (var15 + 12);
long var18 = var13.net();
var var20 = AmountFormat.signed(var18);
arg0.method_51433(this.field_22793, "net", (this.px + 14), var17, -11709599, false);
arg0.method_51433(this.field_22793, var20, (this.px + 32), var17, Theme.color(var18), false);
int var21 = (((this.px + 32) + this.field_22793.method_1727(var20)) + 12);
arg0.method_51433(this.field_22793, "in", var21, var17, -11709599, false);
arg0.method_51433(this.field_22793, AmountFormat.pretty(var13.in()), (var21 + 14), var17, -11870592, false);
var21 = (var21 + ((14 + this.field_22793.method_1727(AmountFormat.pretty(var13.in()))) + 12));
arg0.method_51433(this.field_22793, "out", var21, var17, -11709599, false);
arg0.method_51433(this.field_22793, AmountFormat.pretty(var13.out()), (var21 + 18), var17, -1096636, false);
var21 = (var21 + ((18 + this.field_22793.method_1727(AmountFormat.pretty(var13.out()))) + 12));
var var22 = indy.makeConcatWithConstants(var13.inCount(), var13.outCount());
arg0.method_51433(this.field_22793, var22, var21, var17, -1644565, false);
arg0.method_25294((this.px + 14), (var17 + 12), ((this.px + 500) - 14), (var17 + 13), -14736855);
int var23 = (var17 + 20);
arg0.method_51433(this.field_22793, "PLAYER", (this.px + 20), var23, -11709599, false);
arg0.method_51433(this.field_22793, "RECORD", (this.px + 180), var23, -11709599, false);
arg0.method_51433(this.field_22793, "NET", (this.px + 260), var23, -11709599, false);
this.listX = (this.px + 8);
this.listW = 484;
this.listTop = (var23 + 12);
this.listBot = ((this.py + 340) - 34);
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.playerHitRects.clear();
this.playerHitNames.clear();
var var24 = this.groupByPlayer(var13.payments());
if (!var24.isEmpty()) goto L1185;
var var25 = "no payments recorded in this session";
int var26 = this.field_22793.method_1727(var25);
arg0.method_51433(this.field_22793, var25, (this.listX + ((this.listW - var26) / 2)), ((this.listTop + ((this.listBot - this.listTop) / 2)) - 4), -11709599, false);
this.drawCloseInfo(arg0, ((this.py + 340) - 22));
var12.popMatrix();
return;
L1185:
var25 = new ArrayList(var24.entrySet());
var25.sort(Comparator.comparingLong(indy.applyAsLong(this)).reversed());
arg0.method_44379((this.listX + 1), (this.listTop + 1), ((this.listX + this.listW) - 1), (this.listBot - 1));
var26 = ((this.listTop + 4) - this.scroll);
int var27 = 0;
var var28 = var25.iterator();
L1280:
if (!var28.hasNext()) goto L1707;
var var29 = ((Map.Entry) var28.next());
var var30 = ((String) var29.getKey());
var var31 = ((List) var29.getValue());
long var32 = 0L;
long var34 = 0L;
int var36 = 0;
int var37 = 0;
var var38 = var31.iterator();
L1347:
if (!var38.hasNext()) goto L1409;
var var39 = ((PaymentEvent) var38.next());
if (!var39.incoming()) goto L1393;
var32 = (var32 + var39.amount());
var36 += 1;
goto L1406;
L1393:
var34 = (var34 + var39.amount());
var37 += 1;
L1406:
goto L1347;
L1409:
var38 = (var32 - var34);
int var40 = this.expanded.contains(var30);
if ((var26 + 18) <= this.listTop) goto L1471;
if (var26 >= this.listBot) goto L1471;
this.drawPlayerRow(arg0, var26, var30, var36, var37, var38, var40, var10, var11);
L1471:
stack1 = new int[4];
stack1[0] = (this.listX + 4);
stack1[1] = var26;
stack1[2] = ((this.listX + this.listW) - 4);
stack1[3] = (var26 + 18);
this.playerHitRects.add(stack1);
this.playerHitNames.add(var30);
var26 += 18;
var27 += 18;
if (var40 == 0) goto L1704;
var var41 = new ArrayList(var31);
var41.sort(Comparator.comparingLong(indy.applyAsLong()).reversed());
var var42 = var41.iterator();
L1583:
if (!var42.hasNext()) goto L1644;
var var43 = ((PaymentEvent) var42.next());
if ((var26 + 12) <= this.listTop) goto L1635;
if (var26 >= this.listBot) goto L1635;
this.drawPaymentRow(arg0, var26, var43);
L1635:
var26 += 12;
var27 += 12;
goto L1583;
L1644:
if ((var26 + 4) <= this.listTop) goto L1698;
if (var26 >= this.listBot) goto L1698;
arg0.method_25294((this.listX + 20), (var26 + 1), ((this.listX + this.listW) - 20), (var26 + 2), -14736855);
L1698:
var26 += 6;
var27 += 6;
L1704:
goto L1280;
L1707:
arg0.method_44380();
var28 = (this.listBot - this.listTop);
if (var27 <= var28) goto L1847;
var29 = ((this.listX + this.listW) - 4);
var30 = (this.listTop + 2);
var31 = (var28 - 4);
var32 = Math.max(16, ((var31 * var28) / var27));
int var33 = (var27 - var28);
if (var33 > 0) goto L1787;
stack0 = 0;
goto L1800;
L1787:
stack0 = (((var31 - var32) * this.scroll) / var33);
L1800:
var34 = stack0;
arg0.method_25294(var29, var30, (var29 + 2), (var30 + var31), -14276046);
arg0.method_25294(var29, (var30 + var34), (var29 + 2), ((var30 + var34) + var32), -8748911);
L1847:
this.drawCloseInfo(arg0, ((this.py + 340) - 22));
var12.popMatrix();
return;
}
private void drawPlayerRow(class_332 arg0, int arg1, String arg2, int arg3, int arg4, long arg5, boolean arg6, int arg7, int arg8) {
if (arg7 < (this.listX + 4)) goto L46;
if (arg7 >= ((this.listX + this.listW) - 4)) goto L46;
if (arg8 < arg1) goto L46;
if (arg8 >= (arg1 + 18)) goto L46;
var stack0 = 1;
goto L47;
L46:
stack0 = 0;
L47:
int var11 = stack0;
if (var11 == 0) goto L83;
arg0.method_25294((this.listX + 2), arg1, ((this.listX + this.listW) - 2), (arg1 + 18), 352321535);
L83:
if (arg6 == 0) goto L94;
stack0 = "v";
goto L97;
L94:
stack0 = ">";
L97:
var var12 = stack0;
Objects.requireNonNull(this.field_22793);
arg0.method_51433(this.field_22793, var12, (this.listX + 8), ((arg1 + ((18 - 9) / 2)) + 1), -13927425, false);
Objects.requireNonNull(this.field_22793);
arg0.method_51433(this.field_22793, arg2, (this.listX + 20), ((arg1 + ((18 - 9) / 2)) + 1), -1644565, false);
var var13 = indy.makeConcatWithConstants(arg3, arg4);
Objects.requireNonNull(this.field_22793);
arg0.method_51433(this.field_22793, var13, (this.listX + 172), ((arg1 + ((18 - 9) / 2)) + 1), -8748911, false);
Objects.requireNonNull(this.field_22793);
arg0.method_51433(this.field_22793, AmountFormat.signed(arg5), (this.listX + 252), ((arg1 + ((18 - 9) / 2)) + 1), Theme.color(arg5), false);
return;
}
private void drawPaymentRow(class_332 arg0, int arg1, PaymentEvent arg2) {
var var4 = SessionDetailScreen.TIME_FMT.format(Instant.ofEpochMilli(arg2.timestampMs()));
if (!arg2.incoming()) goto L28;
var stack0 = "IN ";
goto L31;
L28:
stack0 = "OUT";
L31:
var var5 = stack0;
if (!arg2.incoming()) goto L46;
stack0 = "+";
goto L49;
L46:
stack0 = "-";
L49:
var var6 = indy.makeConcatWithConstants(stack0, AmountFormat.pretty(arg2.amount()));
if (!arg2.incoming()) goto L75;
stack0 = -11870592;
goto L78;
L75:
stack0 = -1096636;
L78:
int var7 = stack0;
arg0.method_51433(this.field_22793, var4, (this.listX + 30), arg1, -11709599, false);
arg0.method_51433(this.field_22793, var5, (this.listX + 80), arg1, var7, false);
arg0.method_51433(this.field_22793, var6, (this.listX + 110), arg1, var7, false);
return;
}
private void drawCloseButton(class_332 arg0, int arg1, int arg2) {
this.closeW = 62;
this.closeH = 14;
this.closeX = (((this.px + 500) - this.closeW) - 8);
this.closeY = (this.py + 5);
if (arg1 < this.closeX) goto L88;
if (arg1 >= (this.closeX + this.closeW)) goto L88;
if (arg2 < this.closeY) goto L88;
if (arg2 >= (this.closeY + this.closeH)) goto L88;
var stack0 = 1;
goto L89;
L88:
stack0 = 0;
L89:
int var4 = stack0;
stack0 = arg0;
var stack1 = this.closeX;
var stack2 = this.closeY;
var stack3 = (this.closeX + this.closeW);
var stack4 = (this.closeY + this.closeH);
if (var4 == 0) goto L129;
var stack5 = -15000028;
goto L131;
L129:
stack5 = -15329251;
L131:
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 (var4 == 0) goto L173;
var stack6 = -13927425;
goto L175;
L173:
stack6 = -14276046;
L175:
stack0.outline(stack1, stack2, stack3, stack4, stack5, stack6);
int var5 = this.field_22793.method_1727("close");
Objects.requireNonNull(this.field_22793);
stack0 = arg0;
stack1 = this.field_22793;
stack2 = "close";
stack3 = (this.closeX + ((this.closeW - var5) / 2));
stack4 = ((this.closeY + ((this.closeH - 9) / 2)) + 1);
if (var4 == 0) goto L247;
stack5 = -13927425;
goto L249;
L247:
stack5 = -1644565;
L249:
stack0.method_51433(stack1, stack2, stack3, stack4, stack5, false);
return;
}
private void drawCloseInfo(class_332 arg0, int arg1) {
var var3 = "click a player to expand - scroll to navigate";
arg0.method_51433(this.field_22793, var3, (this.px + 14), arg1, -11709599, false);
return;
}
private long totalActivity(Map.Entry arg0) {
long var2 = 0L;
var var4 = ((List) arg0.getValue()).iterator();
L18:
if (!var4.hasNext()) goto L51;
var var5 = ((PaymentEvent) var4.next());
var2 = (var2 + var5.amount());
goto L18;
L51:
return var2;
}
private Map groupByPlayer(List arg0) {
var var2 = new LinkedHashMap();
var var3 = arg0.iterator();
L15:
if (!var3.hasNext()) goto L63;
var var4 = ((PaymentEvent) var3.next());
((List) var2.computeIfAbsent(var4.player(), indy.apply())).add(var4);
goto L15;
L63:
return var2;
}
private String formatDuration(long arg0) {
long var3 = (arg0 / 1000L);
long var5 = (var3 / 60L);
long var7 = (var5 / 60L);
if (Long.compare(var7, 0L) <= 0) goto L42;
return indy.makeConcatWithConstants(var7, (var5 % 60L));
L42:
if (Long.compare(var5, 0L) <= 0) goto L62;
return indy.makeConcatWithConstants(var5, (var3 % 60L));
L62:
return indy.makeConcatWithConstants(var3);
}
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:
if (var3 < this.listX) goto L250;
if (var3 >= (this.listX + this.listW)) goto L250;
if (var4 < this.listTop) goto L250;
if (var4 >= this.listBot) goto L250;
int var5 = 0;
L121:
if (var5 >= this.playerHitRects.size()) goto L250;
var var6 = ((int[]) this.playerHitRects.get(var5));
if (var3 < var6[0]) goto L244;
if (var3 >= var6[2]) goto L244;
if (var4 < var6[1]) goto L244;
if (var4 >= var6[3]) goto L244;
var var7 = ((String) this.playerHitNames.get(var5));
if (!this.expanded.contains(var7)) goto L230;
this.expanded.remove(var7);
goto L242;
L230:
this.expanded.add(var7);
L242:
return true;
L244:
var5 += 1;
goto L121;
L250:
return super.method_25402(arg0, arg1);
}
public boolean method_25401(double arg0, double arg1, double arg2, double arg3) {
int var9 = 14;
if (Double.compare(arg3, 0.0) >= 0) goto L29;
this.scroll = Math.max(0, (this.scroll + var9));
goto L44;
L29:
this.scroll = Math.max(0, (this.scroll - var9));
L44:
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(GamblerPlusClient.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;
}
private static List lambda$groupByPlayer$0(String arg0) {
return new ArrayList();
}
static {
SessionDetailScreen.TIME_FMT = DateTimeFormatter.ofPattern("HH:mm:ss").withZone(ZoneId.systemDefault());
SessionDetailScreen.STAMP_FMT = DateTimeFormatter.ofPattern("MMM d HH:mm").withZone(ZoneId.systemDefault());
return;
}
}
Methods declared
public void <init>(java.util.function.Supplier, boolean) protected void method_25426() public boolean method_25421() public void method_25394(net.minecraft.class_332, int, int, float) private void drawPlayerRow(net.minecraft.class_332, int, java.lang.String, int, int, long, boolean, int, int) private void drawPaymentRow(net.minecraft.class_332, int, dev.mishka.gamblerplus.client.PaymentEvent) private void drawCloseButton(net.minecraft.class_332, int, int) private void drawCloseInfo(net.minecraft.class_332, int) private long totalActivity(java.util.Map$Entry) private java.util.Map groupByPlayer(java.util.List) private java.lang.String formatDuration(long) 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) private static synthetic java.util.List lambda$groupByPlayer$0(java.lang.String) static void <clinit>()
Fields
private static final int PANEL_W private static final int PANEL_H private static final int PLAYER_ROW_H private static final int PAYMENT_ROW_H private static final long ANIM_MS private static final java.time.format.DateTimeFormatter TIME_FMT private static final java.time.format.DateTimeFormatter STAMP_FMT private final java.util.function.Supplier sessionSupplier private final boolean live private final java.util.Set expanded private long openedAtMs private int px private int py private int scroll private int closeX private int closeY private int closeW private int closeH private int listTop private int listBot private int listX private int listW private final java.util.List playerHitRects private final java.util.List playerHitNames private float uiScale
Calls out to
dev.mishka.gamblerplus.client.AmountFormat.pretty(long) : java.lang.String dev.mishka.gamblerplus.client.AmountFormat.signed(long) : java.lang.String dev.mishka.gamblerplus.client.Config dev.mishka.gamblerplus.client.GamblerPlusClient.CONFIG dev.mishka.gamblerplus.client.Stats dev.mishka.gamblerplus.client.GamblerPlusClient.STATS dev.mishka.gamblerplus.client.PaymentEvent.amount() : long dev.mishka.gamblerplus.client.PaymentEvent.incoming() : boolean dev.mishka.gamblerplus.client.PaymentEvent.player() : java.lang.String dev.mishka.gamblerplus.client.PaymentEvent.timestampMs() : long dev.mishka.gamblerplus.client.Session.durationMs() : long dev.mishka.gamblerplus.client.Session.endedAt() : long dev.mishka.gamblerplus.client.Session.in() : long dev.mishka.gamblerplus.client.Session.inCount() : int dev.mishka.gamblerplus.client.Session.label() : java.lang.String dev.mishka.gamblerplus.client.Session.net() : long dev.mishka.gamblerplus.client.Session.out() : long dev.mishka.gamblerplus.client.Session.outCount() : int dev.mishka.gamblerplus.client.Session.payments() : java.util.List dev.mishka.gamblerplus.client.Session.startedAt() : long java.time.format.DateTimeFormatter dev.mishka.gamblerplus.client.SessionDetailScreen.STAMP_FMT java.time.format.DateTimeFormatter dev.mishka.gamblerplus.client.SessionDetailScreen.TIME_FMT int dev.mishka.gamblerplus.client.SessionDetailScreen.closeH int dev.mishka.gamblerplus.client.SessionDetailScreen.closeW int dev.mishka.gamblerplus.client.SessionDetailScreen.closeX int dev.mishka.gamblerplus.client.SessionDetailScreen.closeY dev.mishka.gamblerplus.client.SessionDetailScreen.drawCloseButton(net.minecraft.class_332, int, int) dev.mishka.gamblerplus.client.SessionDetailScreen.drawCloseInfo(net.minecraft.class_332, int) dev.mishka.gamblerplus.client.SessionDetailScreen.drawPaymentRow(net.minecraft.class_332, int, dev.mishka.gamblerplus.client.PaymentEvent) dev.mishka.gamblerplus.client.SessionDetailScreen.drawPlayerRow(net.minecraft.class_332, int, java.lang.String, int, int, long, boolean, int, int) java.util.Set dev.mishka.gamblerplus.client.SessionDetailScreen.expanded int dev.mishka.gamblerplus.client.SessionDetailScreen.field_22789 int dev.mishka.gamblerplus.client.SessionDetailScreen.field_22790 net.minecraft.class_327 dev.mishka.gamblerplus.client.SessionDetailScreen.field_22793 dev.mishka.gamblerplus.client.SessionDetailScreen.formatDuration(long) : java.lang.String dev.mishka.gamblerplus.client.SessionDetailScreen.groupByPlayer(java.util.List) : java.util.Map dev.mishka.gamblerplus.client.SessionDetailScreen.lambda$groupByPlayer$0(java.lang.String) : java.util.List int dev.mishka.gamblerplus.client.SessionDetailScreen.listBot int dev.mishka.gamblerplus.client.SessionDetailScreen.listTop int dev.mishka.gamblerplus.client.SessionDetailScreen.listW int dev.mishka.gamblerplus.client.SessionDetailScreen.listX boolean dev.mishka.gamblerplus.client.SessionDetailScreen.live dev.mishka.gamblerplus.client.SessionDetailScreen.method_25419() long dev.mishka.gamblerplus.client.SessionDetailScreen.openedAtMs dev.mishka.gamblerplus.client.SessionDetailScreen.outline(net.minecraft.class_332, int, int, int, int, int) java.util.List dev.mishka.gamblerplus.client.SessionDetailScreen.playerHitNames java.util.List dev.mishka.gamblerplus.client.SessionDetailScreen.playerHitRects int dev.mishka.gamblerplus.client.SessionDetailScreen.px int dev.mishka.gamblerplus.client.SessionDetailScreen.py int dev.mishka.gamblerplus.client.SessionDetailScreen.scroll java.util.function.Supplier dev.mishka.gamblerplus.client.SessionDetailScreen.sessionSupplier dev.mishka.gamblerplus.client.SessionDetailScreen.totalActivity(java.util.Map$Entry) : long float dev.mishka.gamblerplus.client.SessionDetailScreen.uiScale dev.mishka.gamblerplus.client.Theme.color(long) : int 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.Math.max(int, int) : int java.lang.Math.min(float, float) : float java.lang.Math.round(float) : int 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.time.Instant.ofEpochMilli(long) : java.time.Instant java.time.ZoneId.systemDefault() : java.time.ZoneId java.time.format.DateTimeFormatter.format(java.time.temporal.TemporalAccessor) : java.lang.String java.time.format.DateTimeFormatter.ofPattern(java.lang.String) : java.time.format.DateTimeFormatter java.time.format.DateTimeFormatter.withZone(java.time.ZoneId) : java.time.format.DateTimeFormatter 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.HashSet.<init>() java.util.Iterator.hasNext() : boolean java.util.Iterator.next() : java.lang.Object java.util.LinkedHashMap.<init>() java.util.LinkedHashMap.computeIfAbsent(java.lang.Object, java.util.function.Function) : 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.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.isEmpty() : boolean 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 java.util.Set.add(java.lang.Object) : boolean java.util.Set.contains(java.lang.Object) : boolean java.util.Set.remove(java.lang.Object) : boolean java.util.function.Supplier.get() : 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
Session details no session live HH:mm - - net in out W / L PLAYER RECORD NET no payments recorded in this session v > IN OUT + - close click a player to expand - scroll to navigate h m m s s HH:mm:ss MMM d HH:mm