OpenPrestige

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
bbldrizzyandClaude Sonnet 5.5 committed 2026-10-21 21:24:22 +01:00
commit d3d4a988eb
774 files changed
+120915

No files matched your search

@@ -0,0 +1,115 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public class BoolSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public Boolean getValue() {
return (Boolean)super.getValue();
}
public BoolSetting(String var1, boolean var2) {
super(var1, var2);
}
public BoolSetting setVisibility_BoolSetting(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
var2 = 93508073420995L ^ var2;
long var5 = var2 ^ 15920284625090L;
super.setVisibility(new Object[]{var4, var5});
return this;
}
@Chainable
public BoolSetting setDescription_BoolSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
long var5 = var2 ^ 100541721415681L;
return this.setVisibility_BoolSetting(new Object[]{var4, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_BoolSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,86 @@
package dev.zprestige.prestige;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public enum Category {
Combat,
Misc,
Movement,
Visual,
Mace,
Spear,
Menu;
static {
Object[] var10001 = new Object[]{0L};
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,116 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public class ColorSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public java.awt.Color getValue() {
return (java.awt.Color)super.getValue();
}
public ColorSetting(String var1, Color var2) {
super(var1, var2);
}
public ColorSetting setVisibility_ColorSetting(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
var3 = 17254503104146L ^ var3;
long var5 = var3 ^ 135571304499614L;
super.setVisibility(new Object[]{var2, var5});
return this;
}
@Chainable
public ColorSetting setDescription_ColorSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
long var5 = var3 ^ 128626887849740L;
return this.setVisibility_ColorSetting(new Object[]{var2, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_ColorSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,24 @@
package dev.zprestige.prestige;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles.Lookup;
public final class Constants {
private Constants() {
}
public static MethodHandle a(Lookup var0, String var1, Class var2, int var3) {
throw new IllegalStateException("prestige: native constant bridge was statically restored; this call must never happen");
}
public static int b(Lookup var0, String var1, Class var2, int var3) {
throw new IllegalStateException("prestige: native constant bridge was statically restored; this call must never happen");
}
public static long c(Lookup var0, String var1, Class var2, int var3) {
throw new IllegalStateException("prestige: native constant bridge was statically restored; this call must never happen");
}
public static void d(int var0, int var1, int var2) {
}
}
@@ -0,0 +1,123 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public class EnumSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public String getValue() {
return (String)super.getValue();
}
private final String[] options;
public EnumSetting(String var1, String var2, String[] var3) {
super(var1, var2);
this.options = var3;
}
@Chainable
public String[] getOptions() {
return this.options;
}
public EnumSetting setVisibility_EnumSetting(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
var3 = 87505960059751L ^ var3;
long var5 = var3 ^ 4743213844807L;
super.setVisibility(new Object[]{var2, var5});
return this;
}
@Chainable
public EnumSetting setDescription_EnumSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
long var5 = var2 ^ 83315054463520L;
return this.setVisibility_EnumSetting(new Object[]{var4, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_EnumSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,282 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.event.Event;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
public class EventBus {
private volatile Map listeners = new HashMap();
private final Object lock = new Object();
private static final MethodType c;
private static final Set d;
public final CopyOnWriteArrayList e = new CopyOnWriteArrayList();
private static final String g = "[Prestige/EventBus] listener threw (logged once per type): ";
public void register(Object[] var1) {
Object var4 = var1[0];
long var2 = (Long)var1[1];
var2 = 114818700636565L ^ var2;
long var5 = var2 ^ 56241223455158L;
if (var4 != null) {
if (this.e.isEmpty()) {
Class var8 = var4.getClass();
ArrayList var9 = new ArrayList();
for (Method var13 : var8.getDeclaredMethods()) {
if (var13.isAnnotationPresent(Subscribe.class)) {
Class[] var14 = var13.getParameterTypes();
if (var14.length == 1) {
try {
var13.setAccessible(true);
MethodHandle var15 = MethodHandles.lookup().unreflect(var13).bindTo(var4).asType(c);
var9.add(new ListenerEntry(var13, var4, var14[0], var15));
} catch (Throwable var21) {
}
}
}
}
if (!var9.isEmpty()) {
synchronized (this.lock) {
if (!d(new Object[]{this.listeners, var4, var5})) {
HashMap var25 = new HashMap(this.listeners);
for (ListenerEntry var27 : (Iterable<ListenerEntry>)(var9)) {
ListenerEntry[] var28 = (ListenerEntry[])var25.get(var27.a_Class(new Object[0]));
ListenerEntry[] var29;
if (var28 == null) {
var29 = new ListenerEntry[]{var27};
} else {
var29 = new ListenerEntry[var28.length + 1];
System.arraycopy(var28, 0, var29, 0, var28.length);
var29[var28.length] = var27;
}
var25.put(var27.a_Class(new Object[0]), var29);
}
this.listeners = var25;
}
}
}
}
}
}
public void unregister(Object[] var1) {
Object var4 = var1[0];
if (var4 != null) {
synchronized (this.lock) {
HashMap var7 = new HashMap(this.listeners);
boolean var8 = false;
for (Entry var10 : (Iterable<Entry>)(new ArrayList(var7.entrySet()))) {
ListenerEntry[] var11 = (ListenerEntry[])var10.getValue();
int var12 = 0;
for (ListenerEntry var16 : var11) {
if (var16.a_Object(new Object[0]) != var4) {
var12++;
}
}
if (var12 != var11.length) {
var8 = true;
if (var12 == 0) {
var7.remove(var10.getKey());
} else {
ListenerEntry[] var21 = new ListenerEntry[var12];
int var22 = 0;
for (ListenerEntry var18 : var11) {
if (var18.a_Object(new Object[0]) != var4) {
var21[var22++] = var18;
}
}
var7.put((Class)var10.getKey(), var21);
}
}
}
if (var8) {
this.listeners = var7;
}
}
}
}
public boolean post(Object[] var1) {
Event var4 = (Event)var1[0];
long var2 = (Long)var1[1];
var2 = 114818700636565L ^ var2;
long var5 = var2 ^ 52036292005796L;
Event.b();
ListenerEntry[] var8 = (ListenerEntry[])this.listeners.get(var4.getClass());
if (var8 == null) {
return var4.a_boolean___(new Object[0]);
} else {
for (ListenerEntry var12 : var8) {
try {
var12.a_MethodHandle(new Object[0]).invokeExact((Event)var4);
} catch (Throwable var14) {
c(new Object[]{var12, var14, var5});
}
}
return var4.a_boolean___(new Object[0]);
}
}
public boolean hasListeners(Object[] var1) {
Class var4 = (Class)var1[0];
Event.b();
ListenerEntry[] var6 = (ListenerEntry[])this.listeners.get(var4);
return var6 != null && var6.length > 0;
}
public boolean hasListenerOfType(Object[] var1) {
Class var5 = (Class)var1[0];
Class var4 = (Class)var1[1];
Event.b();
ListenerEntry[] var7 = (ListenerEntry[])this.listeners.get(var5);
if (var7 == null) {
return false;
} else {
for (ListenerEntry var11 : var7) {
if (var4.isInstance(var11.a_Object(new Object[0]))) {
return true;
}
}
return false;
}
}
private static boolean d(Object[] var0) {
Map var1 = (Map)var0[0];
Object var4 = var0[1];
Event.b();
for (ListenerEntry[] var7 : (Iterable<ListenerEntry[]>)(var1.values())) {
for (ListenerEntry var11 : var7) {
if (var11.a_Object(new Object[0]) == var4) {
return true;
}
}
}
return false;
}
private static void c(Object[] var0) {
ListenerEntry var4 = (ListenerEntry)var0[0];
Throwable var3 = (Throwable)var0[1];
Event.b();
String var6 = var4.a_Object(new Object[0]).getClass().getName() + "#" + var4.a(new Object[0]).getName();
if (d.add(var6 + ":" + var3.getClass().getName())) {
System.err.println(g + var6);
var3.printStackTrace();
}
}
static {
c = MethodType.methodType(void.class, Event.class);
d = ConcurrentHashMap.newKeySet();
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
private static Object[] b() {
return new Object[0];
}
private static Object[] a(Object var0, Object var1) {
return new Object[]{var0, var1};
}
private static Object[] a(Object var0) {
return new Object[]{var0};
}
private static Throwable a(Throwable var0) {
return var0;
}
}
@@ -0,0 +1,130 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public class FloatSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public Float getValue() {
return (Float)super.getValue();
}
private final float min;
private final float max;
public FloatSetting(String var1, float var2, float var3, float var4) {
super(var1, var2);
this.min = var3;
this.max = var4;
}
@Chainable
public float getMin() {
return this.min;
}
@Chainable
public float getMax() {
return this.max;
}
public FloatSetting setVisibility_FloatSetting(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
var3 = 123628267853707L ^ var3;
long var5 = var3 ^ 130072979389281L;
super.setVisibility(new Object[]{var2, var5});
return this;
}
@Chainable
public FloatSetting setDescription_FloatSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
long var5 = var3 ^ 6857104452842L;
return this.setVisibility_FloatSetting(new Object[]{var2, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_FloatSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,86 @@
package dev.zprestige.prestige;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public enum Gamemode {
Crystal,
Mace,
Sword,
Spear,
UHC,
Cart,
Any;
static {
Object[] var10001 = new Object[]{0L};
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,130 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public class IntSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public Integer getValue() {
return (Integer)super.getValue();
}
private final int min;
private final int max;
public IntSetting(String var1, int var2, int var3, int var4) {
super(var1, var2);
this.min = var3;
this.max = var4;
}
@Chainable
public int getMin() {
return this.min;
}
@Chainable
public int getMax() {
return this.max;
}
public IntSetting setVisibility_IntSetting(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
var2 = 3997353521073L ^ var2;
long var5 = var2 ^ 73798710165983L;
super.setVisibility(new Object[]{var4, var5});
return this;
}
@Chainable
public IntSetting setDescription_IntSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
long var5 = var3 ^ 71176956259950L;
return this.setVisibility_IntSetting(new Object[]{var2, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_IntSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,139 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
import net.minecraft.client.MinecraftClient;
import org.lwjgl.glfw.GLFW;
public class KeybindSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public Integer getValue() {
return (Integer)super.getValue();
}
private boolean toggleMode;
public KeybindSetting(String var1, int var2) {
super(var1, var2);
}
@Chainable
public boolean isToggleMode() {
return this.toggleMode;
}
@Chainable
public void setToggleMode(boolean var1) {
this.toggleMode = var1;
}
public KeybindSetting setVisibility_KeybindSetting(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
var2 = 99049240658274L ^ var2;
long var5 = var2 ^ 41186392833473L;
super.setVisibility(new Object[]{var4, var5});
return this;
}
@Chainable
public KeybindSetting setDescription_KeybindSetting(String var1) {
super.setDescription(var1);
return this;
}
public boolean isPressed(Object[] var1) {
return this.getValue() != -1 && this.getValue() > 9994
? GLFW.glfwGetMouseButton(MinecraftClient.getInstance().getWindow().getHandle(), 9999 - (Integer)this.getValue()) == 1
: GLFW.glfwGetKey(MinecraftClient.getInstance().getWindow().getHandle(), (Integer)this.getValue()) == 1;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
long var5 = var2 ^ 140053625863331L;
return this.setVisibility_KeybindSetting(new Object[]{var4, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_KeybindSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
private static MatchException b(MatchException var0) {
return var0;
}
}
@@ -0,0 +1,38 @@
package dev.zprestige.prestige;
import java.lang.invoke.MethodHandle;
import java.lang.reflect.Method;
public class ListenerEntry {
private final Method method;
private final Object target;
private final Class eventType;
private final MethodHandle handle;
public ListenerEntry(Method var1, Object var2, Class var3) {
this(var1, var2, var3, null);
}
public ListenerEntry(Method var1, Object var2, Class var3, MethodHandle var4) {
this.method = var1;
this.target = var2;
this.eventType = var3;
this.handle = var4;
}
public Method a(Object[] var1) {
return this.method;
}
public Object a_Object(Object[] var1) {
return this.target;
}
public Class a_Class(Object[] var1) {
return this.eventType;
}
public MethodHandle a_MethodHandle(Object[] var1) {
return this.handle;
}
}
@@ -0,0 +1,110 @@
package dev.zprestige.prestige;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class MenuModule extends Module {
private final KeybindSetting menuKey;
private final EnumSetting descriptionMode;
private final BoolSetting rounded;
private final ColorSetting menuColor;
public MenuModule() {
dev.zprestige.prestige.ui.bridge.Bootstrap.pre(this);
Object[] var10006 = new Object[]{null, null, 137970699205822L};
var10006[1] = 161;
var10006[0] = "Menu Key";
this.menuKey = this.addKeybind(var10006);
this.descriptionMode = this.addEnum(new Object[]{"Descriptions", "Mouse", new String[]{"Mouse", "Search Bar"}, 85198277421524L});
var10006 = new Object[]{null, null, 136800689510088L};
var10006[1] = false;
var10006[0] = "Rounded";
this.rounded = this.addBool(var10006);
this.menuColor = this.addColor(new Object[]{"Menu Color", new Color(131, 118, 252), 17358566314135L});
}
public KeybindSetting getMenuKey(Object[] var1) {
return this.menuKey;
}
public EnumSetting getDescriptionMode(Object[] var1) {
return this.descriptionMode;
}
public BoolSetting getRounded(Object[] var1) {
return this.rounded;
}
public ColorSetting getMenuColor(Object[] var1) {
return this.menuColor;
}
private static Field g(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field h(Class var0, String var1, Class var2) {
Field var3 = g(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = h(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method g(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method h(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = g(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = h(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,307 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import dev.zprestige.prestige.annotation.NativeId;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.event.Event;
import dev.zprestige.prestige.hud.ModuleNotificationsElement;
import dev.zprestige.prestige.render.RenderContract2;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
public class Module extends SettingHolder implements RenderContract2 {
private final List coreSettings = new ArrayList();
private final BoolSetting enabledSetting = new BoolSetting("Enabled", false);
private String name;
private final KeybindSetting keybind;
private Category category;
private String description;
private boolean lastEnabled;
private volatile List allSettingsCache;
public Module() {
this.keybind = new KeybindSetting("Bind", -1).setDescription_KeybindSetting("Keybind for " + this.name);
this.coreSettings.add(this.enabledSetting);
this.coreSettings.add(this.keybind);
}
public Module(String var1, String var2, int var3) {
this();
Event.b();
this.name = var1;
this.description = var2;
for (Category var10 : Category.values()) {
if (var10.ordinal() == var3) {
this.category = var10;
break;
}
}
}
@NativeId("")
public void a(Object var1, String var2, String var3, int var4) {
if (var1 != null) {
this.settings.add((Setting)var1);
this.allSettingsCache = null;
} else {
this.name = var2;
this.description = var3;
this.category = Arrays.stream(Category.values()).filter(lpL71_0 -> ((dev.zprestige.prestige.Category)lpL71_0).ordinal() == var4).findFirst().orElse(this.category);
}
}
@Chainable
public boolean isEnabled() {
return (Boolean)this.enabledSetting.getValue();
}
public int getKey(Object[] var1) {
return (Integer)this.keybind.getValue();
}
public KeybindSetting getKeybind(Object[] var1) {
return this.keybind;
}
public void toggle(Object[] var1) {
long var2 = (Long)var1[0];
long var4 = var2 ^ 55958956532363L;
long var6 = var2 ^ 15872977247914L;
long var8 = var2 ^ 22594282158762L;
long var10 = var2 ^ 37299566365261L;
long var12 = var2 ^ 75993416544364L;
long var14 = var2 ^ 86929222885577L;
long var16 = var2 ^ 79146057582229L;
this.enabledSetting.setValue(!this.isEnabled());
this.setLastEnabled(new Object[]{this.isEnabled()});
if (this.isEnabled()) {
Prestige.eventBus.register(new Object[]{this, var6});
if (b.world != null && b.player != null) {
this.onEnable(new Object[]{var8});
} else {
Prestige.moduleManager.queueEnable(new Object[]{this, var12});
}
} else {
Prestige.eventBus.unregister(new Object[]{this, var4});
if (b.world != null && b.player != null) {
this.onDisable(new Object[]{var14});
} else {
Prestige.moduleManager.queueDisable(new Object[]{this, var16});
}
}
ModuleNotificationsElement.r(new Object[]{this, var10});
}
public void applyState(Object[] var1) {
long var2 = (Long)var1[0];
var2 = 25781655103684L ^ var2;
long var4 = var2 ^ 120644081699938L;
long var6 = var2 ^ 89278968246339L;
long var8 = var2 ^ 83365083665475L;
long var10 = var2 ^ 139299437470884L;
long var12 = var2 ^ 28865644895877L;
long var14 = var2 ^ 17947047808544L;
long var16 = var2 ^ 27105383311484L;
if (this.isEnabled()) {
Prestige.eventBus.register(new Object[]{this, var6});
if (b.world != null && b.player != null) {
this.onEnable(new Object[]{var8});
} else {
Prestige.moduleManager.queueEnable(new Object[]{this, var12});
}
} else {
Prestige.eventBus.unregister(new Object[]{this, var4});
if (b.world != null && b.player != null) {
this.onDisable(new Object[]{var14});
} else {
Prestige.moduleManager.queueDisable(new Object[]{this, var16});
}
}
ModuleNotificationsElement.r(new Object[]{this, var10});
}
public void dispose(Object[] var1) {
this.name = null;
Event.b();
this.description = null;
ArrayList var5 = new ArrayList();
var5.addAll(this.settings);
var5.addAll(this.coreSettings);
for (Setting var7 : (Iterable<Setting>)(var5)) {
var7.setName(new Object[]{null});
var7.setDescription(null);
var7.setValue(null);
}
}
public void onEnable(Object[] var1) {
}
public void onDisable(Object[] var1) {
}
public boolean b(Object[] var1) {
return true;
}
public String getInfo(Object[] var1) {
return "";
}
public List getCoreSettings(Object[] var1) {
return this.coreSettings;
}
@Chainable
public String getName() {
return this.name;
}
public void setName(Object[] var1) {
String var2 = (String)var1[0];
this.name = var2;
}
@Chainable
public String getDescription() {
return this.description;
}
public void setDescription(Object[] var1) {
String var2 = (String)var1[0];
this.description = var2;
}
@Chainable
public Category getCategory() {
return this.category;
}
public void setCategory(Object[] var1) {
Category var2 = (Category)var1[0];
this.category = var2;
}
public boolean getLastEnabled(Object[] var1) {
return this.lastEnabled;
}
public void setLastEnabled(Object[] var1) {
boolean var2 = (Boolean)var1[0];
this.lastEnabled = var2;
}
@Chainable
public List getSettings() {
Event.b();
List var4 = this.allSettingsCache;
if (var4 == null) {
ArrayList var5 = new ArrayList(this.coreSettings.size() + this.settings.size());
var5.addAll(this.coreSettings);
var5.addAll(this.settings);
var4 = List.copyOf(var5);
this.allSettingsCache = var4;
}
return var4;
}
public Set getGamemodes(Object[] var1) {
return Set.of(Gamemode.Any);
}
@Chainable
public int getGamemodeMask() {
Set var6 = this.getGamemodes(new Object[]{33917734280704L});
Event.b();
int var7 = 0;
for (Gamemode var9 : (Iterable<Gamemode>)(var6)) {
if (var9 != Gamemode.Any) {
var7 |= 1 << var9.ordinal();
}
}
return var7;
}
private static Field e(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field f(Class var0, String var1, Class var2) {
Field var3 = e(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = f(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method e(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method f(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = e(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = f(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
private static MatchException b(MatchException var0) {
return var0;
}
}
@@ -0,0 +1,157 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.event.TickEvent19;
import dev.zprestige.prestige.render.RenderContract2;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
public class ModuleManager implements RenderContract2 {
private final MenuModule menu;
private List modules;
private final ConcurrentLinkedQueue enableQueue;
private final ConcurrentLinkedQueue disableQueue;
public static boolean f = true;
public ModuleManager(long var1) {
super();
var1 = 0L;
var1 = 22310984220293L ^ var1;
long var3 = var1 ^ 31757000116027L;
this.menu = new MenuModule();
this.modules = new ArrayList();
this.enableQueue = new ConcurrentLinkedQueue();
this.disableQueue = new ConcurrentLinkedQueue();
Prestige.eventBus.register(new Object[]{this, var3});
}
@Subscribe
public void onTick(TickEvent19 var1) {
if (b.world != null && b.player != null) {
while (!this.enableQueue.isEmpty()) {
Module var9 = (Module)this.enableQueue.poll();
if (var9 != null && var9.isEnabled()) {
var9.onEnable(new Object[]{136490818940166L});
}
}
while (!this.disableQueue.isEmpty()) {
Module var10 = (Module)this.disableQueue.poll();
if (var10 != null && !var10.isEnabled()) {
var10.onDisable(new Object[]{43569551062885L});
}
}
}
}
public void queueEnable(Object[] var1) {
Module var4 = (Module)var1[0];
if (!this.enableQueue.contains(var4)) {
this.enableQueue.offer(var4);
}
}
public void queueDisable(Object[] var1) {
Module var4 = (Module)var1[0];
if (!this.disableQueue.contains(var4)) {
this.disableQueue.offer(var4);
}
}
@Chainable
public List getModules() {
return this.modules;
}
@Chainable
public void setModules(List var1) {
this.modules = var1;
}
public MenuModule getMenu(Object[] var1) {
return this.menu;
}
@Chainable
public void setMenuColor(Color var1) {
this.menu.getMenuColor(new Object[0]).setValue(var1);
}
@Chainable
public void setMenuKey(int var1) {
this.menu.getMenuKey(new Object[0]).setValue(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,165 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import dev.zprestige.prestige.event.Event;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Predicate;
public class MultiSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public String getValue() {
return (String)super.getValue();
}
private final String[] options;
private final boolean[] selected;
private final Map indexByOption;
public MultiSetting(String var1, String[] var2, boolean[] var3) {
super(var1, "");
Event.b();
this.options = var2;
this.selected = var3;
this.indexByOption = new HashMap(var2.length * 2);
for (int var7 = 0; var7 < var2.length; var7++) {
this.indexByOption.put(var2[var7], var7);
}
}
@Chainable
public String[] getOptions() {
return this.options;
}
public boolean isSelected(Object[] var1) {
String var2 = (String)var1[0];
Integer var5 = (Integer)this.indexByOption.get(var2);
if (var5 == null) {
throw new IllegalArgumentException("Value not found: " + var2);
} else {
return this.selected[var5];
}
}
@Chainable
public void setSelected(String var1, boolean var2) {
Event.b();
Integer var6 = (Integer)this.indexByOption.get(var1);
if (var6 == null) {
throw new IllegalArgumentException("Value not found: " + var1);
} else {
this.selected[var6] = var2;
}
}
@Chainable
public boolean[] getSelected() {
return this.selected;
}
public MultiSetting setVisibility_MultiSetting(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
var2 = 89151985553059L ^ var2;
long var5 = var2 ^ 96972061473817L;
super.setVisibility(new Object[]{var4, var5});
return this;
}
@Chainable
public MultiSetting setDescription_MultiSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
long var5 = var2 ^ 10064201577146L;
return this.setVisibility_MultiSetting(new Object[]{var4, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_MultiSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
private static IllegalArgumentException a(IllegalArgumentException var0) {
return var0;
}
}
@@ -0,0 +1,49 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.NativeId;
import java.util.List;
public class Native {
public static Class a;
@NativeId("f29b5f2e-3df2-4db8-bb6e-1c01a5f91f12")
public static void a(List var0) {
}
@NativeId("6937e6e7-60ef-45de-98e1-f177ec613e99")
public static void b(int var0, StringBuilder var1) {
}
@NativeId("c4f1db16-7850-44eb-8f8a-863dfe33ab26")
public static void c(StringBuilder var0) {
}
@NativeId("774de945-aba3-4038-b5ae-d8ff48635feb")
public static void d(String var0, String var1, boolean var2, String var3, StringBuilder var4, String var5) {
}
@NativeId("b6356619-bb5a-4616-a076-93f620a7d9de")
public static void e(int var0, StringBuilder var1) {
}
@NativeId("9ae73026-310d-4cbc-b283-12f3f530fe67")
public static void f(int var0, String var1, StringBuilder var2) {
}
@NativeId("08dcf01c-9943-4f66-8dfd-120714d7abdd")
public static void g(String var0) {
}
@NativeId("018b2f19-e79e-7d6a-a56d-29feb6211b04")
public static void h() {
}
@NativeId("70d16b96-40d4-4e4b-8d11-111b87ee88c2")
public static void i() {
}
@NativeId("0dfaa780-8d92-4e8f-aa2e-9dae747c4dd6")
public static boolean j() {
return false;
}
}
@@ -0,0 +1,185 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import dev.zprestige.prestige.render.RenderUtil5;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public class RangeSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public Float getValue() {
return (Float)super.getValue();
}
private final float min;
private final float max;
private float low;
private float high;
private float rolled;
public RangeSetting(String var1, float var2, float var3, float var4, float var5) {
super(var1, var2);
this.low = var2;
this.high = var3;
this.min = var4;
this.max = var5;
this.rolled = var2;
}
@Chainable
public float getLow() {
return this.low;
}
@Chainable
public void setLow(float var1) {
this.low = var1;
}
@Chainable
public float getHigh() {
return this.high;
}
@Chainable
public void setHigh(float var1) {
this.high = var1;
}
@Chainable
public float getMin() {
return this.min;
}
@Chainable
public float getMax() {
return this.max;
}
public float getRolled(Object[] var1) {
return this.rolled;
}
public void setRolled(Object[] var1) {
float var2 = (Float)var1[0];
this.rolled = var2;
}
public void reroll(Object[] var1) {
long var2 = (Long)var1[0];
var2 = 104704689118488L ^ var2;
long var4 = var2 ^ 118870168785476L;
this.rolled = this.randomInRange(new Object[]{var4});
}
public float randomInRange(Object[] var1) {
long var2 = (Long)var1[0];
var2 = 104704689118488L ^ var2;
long var4 = var2 ^ 76056962614760L;
float var10000 = this.low;
float var10001 = this.high;
Object[] var10004 = new Object[]{null, null, var4};
var10004[1] = var10001;
var10004[0] = var10000;
return RenderUtil5.a(var10004);
}
public RangeSetting setVisibility_RangeSetting(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
var3 = 104704689118488L ^ var3;
long var5 = var3 ^ 113704341411105L;
super.setVisibility(new Object[]{var2, var5});
return this;
}
@Chainable
public RangeSetting setDescription_RangeSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
long var5 = var3 ^ 61932072339513L;
return this.setVisibility_RangeSetting(new Object[]{var2, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_RangeSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,141 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public abstract class Setting {
private String name;
private Object value;
private String description;
private Predicate visibility;
private static int[] e;
public Setting(String var1, Object var2) {
this.name = var1;
this.value = var2;
}
@Chainable
public String getName() {
return this.name;
}
public void setName(Object[] var1) {
String var2 = (String)var1[0];
this.name = var2;
}
@Chainable
public Object getValue() {
return this.value;
}
@Chainable
public void setValue(Object var1) {
this.value = var1;
}
@Chainable
public String getDescription() {
return this.description;
}
@Chainable
public Setting setDescription(String var1) {
this.description = var1;
return this;
}
public Setting setVisibility(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
this.visibility = var2;
return this;
}
@Chainable
public boolean isVisible() {
return this.visibility == null || this.visibility.test(this.getValue());
}
public static void b(int[] var0) {
e = var0;
}
public static int[] b() {
return e;
}
static {
b();
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,111 @@
package dev.zprestige.prestige;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class SettingHolder {
public final ArrayList settings = new ArrayList();
public KeybindSetting addKeybind(Object[] var1) {
String var2 = (String)var1[0];
int var5 = (Integer)var1[1];
KeybindSetting var6 = new KeybindSetting(var2, var5);
this.settings.add(var6);
return var6;
}
public BoolSetting addBool(Object[] var1) {
String var2 = (String)var1[0];
boolean var3 = (Boolean)var1[1];
BoolSetting var6 = new BoolSetting(var2, var3);
this.settings.add(var6);
return var6;
}
public EnumSetting addEnum(Object[] var1) {
String var4 = (String)var1[0];
String var2 = (String)var1[1];
String[] var3 = (String[])var1[2];
EnumSetting var7 = new EnumSetting(var4, var2, var3);
this.settings.add(var7);
return var7;
}
public ColorSetting addColor(Object[] var1) {
String var4 = (String)var1[0];
Color var5 = (Color)var1[1];
ColorSetting var6 = new ColorSetting(var4, var5);
this.settings.add(var6);
return var6;
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,8 @@
package dev.zprestige.prestige;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Subscribe {
}
@@ -0,0 +1,122 @@
package dev.zprestige.prestige;
import dev.zprestige.prestige.annotation.Chainable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Predicate;
public class TextSetting extends Setting {
// covariant getValue (added by fix_typed_values.py)
@Override
public String getValue() {
return (String)super.getValue();
}
private final String placeholder;
public TextSetting(String var1, String var2, String var3) {
super(var1, var2);
this.placeholder = var3;
}
public String getPlaceholder(Object[] var1) {
return this.placeholder;
}
public TextSetting setVisibility_TextSetting(Object[] var1) {
Predicate var2 = (Predicate)var1[0];
long var3 = (Long)var1[1];
var3 = 90219420051481L ^ var3;
long var5 = var3 ^ 38810053965316L;
super.setVisibility(new Object[]{var2, var5});
return this;
}
@Chainable
public TextSetting setDescription_TextSetting(String var1) {
super.setDescription(var1);
return this;
}
@Override
public Setting setVisibility(Object[] var1) {
Predicate var4 = (Predicate)var1[0];
long var2 = (Long)var1[1];
long var5 = var2 ^ 124528063749661L;
return this.setVisibility_TextSetting(new Object[]{var4, var5});
}
@Chainable
@Override
public Setting setDescription(String var1) {
return this.setDescription_TextSetting(var1);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,8 @@
package dev.zprestige.prestige.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Chainable {
}
@@ -0,0 +1,9 @@
package dev.zprestige.prestige.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface NativeId {
String value();
}
@@ -0,0 +1,259 @@
package dev.zprestige.prestige.client;
import dev.zprestige.prestige.EventBus;
import dev.zprestige.prestige.Module;
import dev.zprestige.prestige.ModuleManager;
import dev.zprestige.prestige.Native;
import dev.zprestige.prestige.Setting;
import dev.zprestige.prestige.combat.AimManager;
import dev.zprestige.prestige.combat.DamageUtil;
import dev.zprestige.prestige.combat.RotationManager;
import dev.zprestige.prestige.combat.TargetManager;
import dev.zprestige.prestige.combat.TargetTracker;
import dev.zprestige.prestige.config.ConfigManager;
import dev.zprestige.prestige.event.EventManager;
import dev.zprestige.prestige.event.TickEvent24;
import dev.zprestige.prestige.event.TickEvent25;
import dev.zprestige.prestige.event.TickEvent27;
import dev.zprestige.prestige.gui.ClickGuiScreen;
import dev.zprestige.prestige.gui.HudEditorScreen;
import dev.zprestige.prestige.input.MouseManager;
import dev.zprestige.prestige.network.PacketManager;
import dev.zprestige.prestige.network.PacketQueue;
import dev.zprestige.prestige.network.PingManager;
import dev.zprestige.prestige.render.ESPUtil;
import dev.zprestige.prestige.render.FontManager;
import dev.zprestige.prestige.render.MatrixStack;
import dev.zprestige.prestige.render.RenderContract2;
import dev.zprestige.prestige.render.RenderContract5;
import dev.zprestige.prestige.render.RenderContract6;
import dev.zprestige.prestige.render.RenderState;
import dev.zprestige.prestige.render.RenderUtil;
import dev.zprestige.prestige.render.Renderer2D;
import dev.zprestige.prestige.social.FriendManager;
import dev.zprestige.prestige.util.BindManager;
import dev.zprestige.prestige.util.Timer;
import dev.zprestige.prestige.util.TpsTimer;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.concurrent.atomic.AtomicBoolean;
import net.fabricmc.api.ModInitializer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ChatScreen;
public class Prestige implements ModInitializer {
private static final AtomicBoolean a = new AtomicBoolean(false);
public static EventBus eventBus;
public static FontManager c;
public static ModuleManager moduleManager;
public static ConfigManager e;
public static DamageUtil f;
public static FriendManager g;
public static Timer h;
public static TargetManager i;
public static AimManager j;
public static ClickGuiScreen k;
public static HudEditorScreen l;
public static EventManager m;
public static TargetTracker n;
public static Renderer2D o;
public static RotationManager p;
public static BindManager q;
public static PingManager r;
public static MouseManager s;
public static PacketManager t;
public static PacketQueue u;
public static TpsTimer v;
public static boolean w = false;
private static Setting[] x;
public void init() {
b();
boolean var34 = false;
try {
if (a.compareAndSet(false, true)) {
eventBus = new EventBus();
moduleManager = new ModuleManager(121395157283000L);
Native.a(moduleManager.getModules());
c = new FontManager();
e = new ConfigManager();
f = new DamageUtil(41691316515293L);
g = new FriendManager();
h = new Timer(111601052018604L);
i = new TargetManager(137451367958631L);
j = new AimManager();
k = new ClickGuiScreen();
var34 = true;
l = new HudEditorScreen(90003821237034L);
m = new EventManager(53157928465092L);
n = new TargetTracker(139559845293095L);
o = new Renderer2D(112473680974252L);
p = new RotationManager(101976830556898L);
q = new BindManager(139206864016440L);
r = new PingManager(57309624251050L);
t = new PacketManager(117193470404248L);
u = new PacketQueue(87229227786379L);
s = new MouseManager(82291833307369L);
v = new TpsTimer(55175676787666L);
RenderUtil.g(new Object[]{Thread.currentThread()});
RenderContract5.a
.register(
(RenderContract6)(lpL44_0, lpL44_1) -> {
b();
if (!w) {
if (MinecraftClient.getInstance().world != null && MinecraftClient.getInstance().player != null) {
if ((RenderContract2.b.currentScreen == null || RenderContract2.b.currentScreen instanceof ChatScreen)
&& eventBus.hasListeners(new Object[]{TickEvent25.class, 135978089436075L})) {
new TickEvent25(((dev.zprestige.prestige.render.RenderHelper8)lpL44_0), ((dev.zprestige.prestige.data.MatrixCameraData)lpL44_1)).b_boolean__(new Object[]{122499962143880L});
}
new TickEvent24(((dev.zprestige.prestige.render.RenderHelper8)lpL44_0), ((dev.zprestige.prestige.data.MatrixCameraData)lpL44_1)).b_boolean__(new Object[]{122499962143880L});
RenderState.b(new Object[]{93665931432117L});
}
}
}
);
RenderContract5.b.register((RenderContract6)(lpL43_0, lpL43_1) -> {
b();
if (!w) {
if (MinecraftClient.getInstance().world != null && MinecraftClient.getInstance().player != null) {
MatrixStack.a(new Object[]{14373979246969L});
new TickEvent27(((dev.zprestige.prestige.render.RenderHelper8)lpL43_0), ((dev.zprestige.prestige.data.MatrixCameraData)lpL43_1)).b_boolean__(new Object[]{122499962143880L});
}
}
});
}
} catch (Throwable var35) {
if (!var34) {
a.set(false);
}
var35.printStackTrace();
}
}
public static boolean a(Object[] var0) {
long var1 = (Long)var0[0];
var1 = 9499999619609L ^ var1;
long var3 = var1 ^ 18103143018681L;
b();
return ESPUtil.e || eventBus != null && eventBus.hasListeners(new Object[]{TickEvent27.class, var3});
}
public static boolean b(Object[] var0) {
long var1 = (Long)var0[0];
var1 = 9499999619609L ^ var1;
long var3 = var1 ^ 11198839193506L;
long var5 = var1 ^ 39355797438358L;
long var7 = var1 ^ 65000825783606L;
long var9 = var1 ^ 20328730886810L;
long var11 = var1 ^ 20640679731384L;
b();
return eventBus == null
? false
: a(new Object[]{var5})
|| eventBus.hasListeners(new Object[]{TickEvent25.class, var7})
|| eventBus.hasListenerOfType(new Object[]{TickEvent24.class, Module.class, var11})
|| l != null && l.c_boolean_(new Object[]{var3})
|| v != null && v.a_boolean______________________________________________(new Object[]{var9});
}
public static void a_void(Object[] var0) {
long var1 = (Long)var0[0];
var1 = 9499999619609L ^ var1;
long var3 = var1 ^ 34804161661929L;
b();
if (!w && eventBus != null && RenderContract2.b.world != null && RenderContract2.b.player != null) {
new TickEvent24(RenderUtil.b, null).b_boolean__(new Object[]{var3});
}
}
static {
b(null);
}
public static void b(Setting[] var0) {
x = var0;
}
public static Setting[] b() {
return x;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
@Override
public void onInitialize() {
this.init();
}
private static Throwable a(Throwable var0) {
return var0;
}
}
@@ -0,0 +1,141 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.render.RenderContract2;
import dev.zprestige.prestige.render.RenderHelper10;
import dev.zprestige.prestige.render.RenderHelper36;
import dev.zprestige.prestige.render.RenderUtil5;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class AimManager implements RenderContract2 {
private RenderHelper10 a = null;
public boolean a(Object[] var1) {
long var2 = (Long)var1[0];
var2 = 68553623989839L ^ var2;
long var4 = var2 ^ 127895873690737L;
if (this.a != null) {
if ((float)(System.currentTimeMillis() - this.a.a_long_(new Object[0])) > this.a.a_float________________(new Object[0])
&& !this.a.a_boolean_________________________________________(new Object[0])) {
RenderHelper36 var10000 = new RenderHelper36(b.mouse);
long var10001 = b.getWindow().getHandle();
int var10002 = this.a.a(new Object[0]);
Object[] var10007 = new Object[]{null, null, null, null, var4};
var10007[3] = 0;
var10007[2] = 1;
var10007[1] = var10002;
var10007[0] = var10001;
var10000.a(var10007);
this.a.a_void____________________(new Object[]{true});
}
if ((float)(System.currentTimeMillis() - this.a.a_long_(new Object[0])) > this.a.a_float________________(new Object[0])
&& (float)(System.currentTimeMillis() - this.a.a_long_(new Object[0]))
> this.a.a_float________________(new Object[0]) + this.a.b(new Object[0])) {
RenderHelper36 var7 = new RenderHelper36(b.mouse);
long var8 = b.getWindow().getHandle();
int var9 = this.a.a(new Object[0]);
Object[] var10 = new Object[]{null, null, null, null, var4};
var10[3] = 0;
var10[2] = 0;
var10[1] = var9;
var10[0] = var8;
var7.a(var10);
this.a = null;
}
return true;
} else {
return false;
}
}
public void a_void_(Object[] var1) {
int var4 = (Integer)var1[0];
float var5 = (Float)var1[1];
long var2 = (Long)var1[2];
var2 = 68553623989839L ^ var2;
long var6 = var2 ^ 21461094467110L;
long var10004 = System.currentTimeMillis();
Object[] var10010 = new Object[]{null, null, var6};
var10010[1] = 15.0F;
var10010[0] = 5.0F;
float var10006 = RenderUtil5.a(var10010);
Object[] var10011 = new Object[]{null, null, var6};
var10011[1] = 55.0F;
var10011[0] = 35.0F;
float var10007 = RenderUtil5.a(var10011);
var10010 = new Object[]{null, null, var6};
var10010[1] = var10007;
var10010[0] = var10006;
this.a = new RenderHelper10(var4, var10004, var5, RenderUtil5.a(var10010), false);
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,100 @@
package dev.zprestige.prestige.combat;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.entity.EquipmentSlot;
// $VF: synthetic class
public class AutoArmorHelper {
public static final int[] a = new int[EquipmentSlot.values().length];
static {
try {
a[EquipmentSlot.HEAD.ordinal()] = 1;
} catch (NoSuchFieldError var3) {
}
try {
a[EquipmentSlot.CHEST.ordinal()] = 2;
} catch (NoSuchFieldError var2) {
}
try {
a[EquipmentSlot.LEGS.ordinal()] = 3;
} catch (NoSuchFieldError var1) {
}
try {
a[EquipmentSlot.FEET.ordinal()] = 4;
} catch (NoSuchFieldError var0) {
}
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,86 @@
package dev.zprestige.prestige.combat;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public final class CombatHelper {
public String a = "";
public String b;
public Color c = Color.WHITE;
public int d;
public int e;
public boolean f;
public float g;
public CombatHelper(long var1) {
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,94 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.reflect.FieldAccessor;
import dev.zprestige.prestige.reflect.FieldValue;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.entity.LivingEntity;
public class CombatHelper2 {
private final LivingEntity a;
private static final String c = "jumpingCooldown";
public CombatHelper2(LivingEntity var1) {
this.a = var1;
}
public void a(Object[] var1) {
int var4 = (Integer)var1[0];
long var2 = (Long)var1[1];
var2 = 55898427641531L ^ var2;
long var5 = var2 ^ 35550231918533L;
long var7 = var2 ^ 25339285087169L;
FieldValue var9 = FieldAccessor.b(new Object[]{this.a, c, LivingEntity.class, int.class, var7});
var9.a_void_____________(new Object[]{var4, var5});
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,102 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.reflect.FieldAccessor;
import dev.zprestige.prestige.reflect.FieldValue;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.client.MinecraftClient;
public class CombatHelper3 {
private final MinecraftClient a;
public CombatHelper3(MinecraftClient var1) {
this.a = var1;
}
public int a(Object[] var1) {
long var2 = (Long)var1[0];
var2 = 20571854547171L ^ var2;
long var4 = var2 ^ 50573642575059L;
long var6 = var2 ^ 97271680844069L;
FieldValue var8 = FieldAccessor.b(new Object[]{this.a, "itemUseCooldown", MinecraftClient.class, int.class, var6});
return (Integer)var8.a(new Object[]{var4});
}
public void a_void__(Object[] var1) {
int var4 = (Integer)var1[0];
long var2 = (Long)var1[1];
var2 = 20571854547171L ^ var2;
long var5 = var2 ^ 36864578943679L;
long var7 = var2 ^ 25124917358267L;
FieldValue var9 = FieldAccessor.b(new Object[]{this.a, "itemUseCooldown", MinecraftClient.class, int.class, var7});
var9.a_void_____________(new Object[]{var4, var5});
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,214 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.event.Event;
import dev.zprestige.prestige.render.RenderContract2;
import dev.zprestige.prestige.world.PositionUtil;
import dev.zprestige.prestige.world.WorldUtil;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.client.network.PlayerListEntry;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Items;
import net.minecraft.util.math.Vec3d;
public class CombatUtil implements RenderContract2 {
public static boolean a(Object[] var0) {
Entity var1 = (Entity)var0[0];
long var2 = (Long)var0[1];
var2 = 42632450102655L ^ var2;
long var4 = var2 ^ 57986789991100L;
if (var1 instanceof PlayerEntity) {
return true;
} else if (var1 instanceof LivingEntity && b.getNetworkHandler() != null) {
String var7 = var1.getName().getString();
for (PlayerListEntry var9 : b.getNetworkHandler().getPlayerList()) {
if (PositionUtil.a_String________(new Object[]{var9.getProfile(), var4}).equals(var7)) {
return true;
}
}
return false;
} else {
return false;
}
}
public static PlayerEntity a_class_1657(Object[] var0) {
long var1 = (Long)var0[0];
var1 = 42632450102655L ^ var1;
long var3 = var1 ^ 69502222699245L;
long var5 = var1 ^ 27342419042136L;
PlayerEntity var8 = null;
Event.b();
for (PlayerEntity var10 : b.world.getPlayers()) {
if (var10.isAlive()
&& !var10.equals(b.player)
&& !Prestige.g.a(new Object[]{var10.getName().getString(), var3})
&& Prestige.i.a_boolean_(new Object[]{var10, var5})
&& (var8 == null || b.player.squaredDistanceTo(var10) < b.player.squaredDistanceTo(var8))) {
var8 = var10;
}
}
return var8;
}
public static PlayerEntity b(Object[] var0) {
float var1 = (Float)var0[0];
long var2 = (Long)var0[1];
var2 = 42632450102655L ^ var2;
long var4 = var2 ^ 92283722434249L;
long var6 = var2 ^ 57728975127273L;
long var8 = var2 ^ 127570764469116L;
long var10 = var2 ^ 70986972797420L;
Event.b();
PlayerEntity var13 = null;
for (PlayerEntity var15 : b.world.getPlayers()) {
if (var15.isAlive()
&& !var15.equals(b.player)
&& !Prestige.g.a(new Object[]{var15.getName().getString(), var4})
&& Prestige.i.a_boolean_(new Object[]{var15, var8})
&& (var13 == null || b.player.squaredDistanceTo(var15) < b.player.squaredDistanceTo(var13))
&& !(WorldUtil.a(new Object[]{WorldUtil.a_RenderBatch_(new Object[]{var15.getEyePos(), var10}), var6}) > var1)) {
var13 = var15;
}
}
return var13;
}
public static Entity a_class_1297(Object[] var0) {
long var1 = (Long)var0[0];
var1 = 42632450102655L ^ var1;
long var3 = var1 ^ 20222013439035L;
long var5 = var1 ^ 58876846827918L;
Entity var8 = null;
Event.b();
for (Entity var10 : b.world.getEntities()) {
if (var10.isAlive()
&& !var10.equals(b.player)
&& !Prestige.g.a(new Object[]{var10.getName().getString(), var3})
&& var10.isAttackable()
&& Prestige.i.a_boolean_(new Object[]{var10, var5})
&& (var8 == null || b.player.squaredDistanceTo(var10) < b.player.squaredDistanceTo(var8))) {
var8 = var10;
}
}
return var8;
}
public static boolean b_boolean(Object[] var0) {
PlayerEntity var1 = (PlayerEntity)var0[0];
long var2 = (Long)var0[1];
var2 = 42632450102655L ^ var2;
long var4 = var2 ^ 91326150591869L;
return (
var1.getMainHandStack().getItem() == Items.SHIELD
|| var1.getOffHandStack().getItem() == Items.SHIELD && var1.getMainHandStack().get(DataComponentTypes.FOOD) == null
)
&& var1.isUsingItem()
&& !c(new Object[]{var1, var4});
}
private static boolean c(Object[] var0) {
PlayerEntity var3 = (PlayerEntity)var0[0];
long var1 = (Long)var0[1];
var1 = 42632450102655L ^ var1;
long var4 = var1 ^ 105124625454497L;
long var6 = var1 ^ 10499210163888L;
if (b.player != null && var3 != null) {
Vec3d var9 = PositionUtil.b(new Object[]{var6});
Vec3d var10 = PositionUtil.a(new Object[]{var3, var4});
Vec3d var11 = var9.subtract(var10).normalize();
float var12 = var3.getYaw();
float var13 = var3.getPitch();
Vec3d var14 = new Vec3d(
-Math.sin(Math.toRadians(var12)) * Math.cos(Math.toRadians(var13)),
-Math.sin(Math.toRadians(var13)),
Math.cos(Math.toRadians(var12)) * Math.cos(Math.toRadians(var13))
)
.normalize();
double var15 = var14.dotProduct(var11);
return var15 < 0.0;
} else {
return false;
}
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,230 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.inventory.InventoryUtil;
import dev.zprestige.prestige.render.RenderHelper26;
import dev.zprestige.prestige.type.BlockBreakType;
import dev.zprestige.prestige.world.WorldUtil2;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.EnumSet;
import java.util.function.Predicate;
import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.entity.decoration.EndCrystalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.state.property.Properties;
import net.minecraft.util.math.BlockPos;
public final class CombatUtil2 {
private static final MinecraftClient a = MinecraftClient.getInstance();
private static final int b = 5;
private static final double c = 5.0;
public static final RenderHelper26 d = new RenderHelper26(null, 0.0F, 0.0F);
private CombatUtil2() {
}
public static RenderHelper26 a(Object[] var0) {
PlayerEntity var1 = (PlayerEntity)var0[0];
EnumSet var4 = (EnumSet)var0[1];
float var5 = (Float)var0[2];
long var2 = (Long)var0[3];
var2 = 5849964192769L ^ var2;
long var6 = var2 ^ 34097876804470L;
long var8 = var2 ^ 86803075311893L;
long var10 = var2 ^ 13231043016274L;
long var12 = var2 ^ 33321315552121L;
long var14 = var2 ^ 45904547140773L;
if (a.player != null && a.world != null && var1 != null) {
RenderHelper26 var17 = d;
if (var4.contains(BlockBreakType.CRYSTAL)) {
for (Entity var19 : a.world.getEntities()) {
if (var19 instanceof EndCrystalEntity) {
float var20 = (float)Prestige.f.a(new Object[]{a.player, var19.getBlockPos().toCenterPos(), var10});
BlockBreakType var10001 = BlockBreakType.CRYSTAL;
Object[] var10006 = new Object[]{null, null, null, null, var6};
var10006[3] = var5;
var10006[2] = var20;
var10006[1] = var10001;
var10006[0] = var17;
var17 = c(var10006);
}
}
}
if (var4.contains(BlockBreakType.ANCHOR)) {
Object[] var10004 = new Object[]{
null,
(Predicate<BlockPos>)lpL319_0 -> a_boolean(new Object[]{var1, ((net.minecraft.util.math.BlockPos)lpL319_0), 127524255025262L})
&& a.world.getBlockState(((net.minecraft.util.math.BlockPos)lpL319_0)).getBlock() == Blocks.RESPAWN_ANCHOR
&& a.world.getBlockState(((net.minecraft.util.math.BlockPos)lpL319_0)).get(Properties.CHARGES) != 0,
var8
};
var10004[0] = 5;
for (BlockPos var28 : (Iterable<BlockPos>)(WorldUtil2.a_List___(var10004))) {
float var21 = (float)Prestige.f.k(new Object[]{a.player, var28.toCenterPos(), var14});
BlockBreakType var31 = BlockBreakType.ANCHOR;
Object[] var35 = new Object[]{null, null, null, null, var6};
var35[3] = var5;
var35[2] = var21;
var35[1] = var31;
var35[0] = var17;
var17 = c(var35);
}
}
if (var4.contains(BlockBreakType.OBSIDIAN) && !a.player.isOnGround()) {
Object[] var34 = new Object[]{
null,
(Predicate<BlockPos>)lpL318_0 -> ((net.minecraft.util.math.BlockPos)lpL318_0).getY() < a.player.getY()
&& a_boolean(new Object[]{var1, ((net.minecraft.util.math.BlockPos)lpL318_0), 127524255025262L})
&& a.world.getBlockState(((net.minecraft.util.math.BlockPos)lpL318_0)).getBlock() == Blocks.OBSIDIAN
&& a.world.getBlockState(((net.minecraft.util.math.BlockPos)lpL318_0).up()).getBlock() == Blocks.AIR,
var8
};
var34[0] = 5;
for (BlockPos var29 : (Iterable<BlockPos>)(WorldUtil2.a_List___(var34))) {
float var30 = (float)Prestige.f.a(new Object[]{a.player, var29.up().toCenterPos(), var10});
BlockBreakType var32 = BlockBreakType.OBSIDIAN;
Object[] var36 = new Object[]{null, null, null, null, var6};
var36[3] = var5;
var36[2] = var30;
var36[1] = var32;
var36[0] = var17;
var17 = c(var36);
}
}
if (var4.contains(BlockBreakType.MACE)) {
float var25 = a_float(new Object[]{var1, var12});
if (var25 > 0.0F) {
BlockBreakType var33 = BlockBreakType.MACE;
Object[] var37 = new Object[]{null, null, null, null, var6};
var37[3] = var5;
var37[2] = var25;
var37[1] = var33;
var37[0] = var17;
var17 = c(var37);
}
}
return var17;
} else {
return d;
}
}
public static RenderHelper26 b(Object[] var0) {
PlayerEntity var4 = (PlayerEntity)var0[0];
EnumSet var1 = (EnumSet)var0[1];
long var2 = (Long)var0[2];
var2 = 5849964192769L ^ var2;
long var5 = var2 ^ 29537693058044L;
Object[] var10005 = new Object[]{null, null, null, var5};
var10005[2] = 1.0F;
var10005[1] = var1;
var10005[0] = var4;
return a(var10005);
}
public static float a_float(Object[] var0) {
PlayerEntity var1 = (PlayerEntity)var0[0];
long var2 = (Long)var0[1];
var2 = 5849964192769L ^ var2;
long var4 = var2 ^ 43436368200278L;
return InventoryUtil.o(new Object[]{var1.getMainHandStack(), var4}) && !(var1.fallDistance <= 1.5) && !(var1.getY() <= a.player.getY())
? (float)(6.0 + var1.fallDistance * 5.0)
: 0.0F;
}
private static boolean a_boolean(Object[] var0) {
PlayerEntity var4 = (PlayerEntity)var0[0];
BlockPos var3 = (BlockPos)var0[1];
return var4.squaredDistanceTo(var3.getX() + 0.5, var3.getY() + 0.5, var3.getZ() + 0.5) < 25.0;
}
private static RenderHelper26 c(Object[] var0) {
RenderHelper26 var6 = (RenderHelper26)var0[0];
BlockBreakType var1 = (BlockBreakType)var0[1];
float var4 = (Float)var0[2];
float var5 = (Float)var0[3];
if (var4 <= 0.0F) {
return var6;
} else {
float var8 = var4 * var1.confidence * var5;
return var8 <= var6.c ? var6 : new RenderHelper26(var1, var4, var8);
}
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,723 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.Subscribe;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.data.DoubleBoolData;
import dev.zprestige.prestige.event.Event;
import dev.zprestige.prestige.event.TickEvent3;
import dev.zprestige.prestige.math.MathHelper3;
import dev.zprestige.prestige.render.RenderContract2;
import dev.zprestige.prestige.world.PositionUtil;
import dev.zprestige.prestige.world.WorldHelper;
import dev.zprestige.prestige.world.WorldHelper10;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntMaps;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import it.unimi.dsi.fastutil.objects.Object2IntMap.Entry;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.concurrent.ConcurrentHashMap;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.AttributeModifierSlot;
import net.minecraft.component.type.ItemEnchantmentsComponent;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.registry.tag.DamageTypeTags;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.HitResult.Type;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.BlockView;
import net.minecraft.world.GameMode;
import net.minecraft.world.RaycastContext;
import net.minecraft.world.RaycastContext.FluidHandling;
import net.minecraft.world.RaycastContext.ShapeType;
import net.minecraft.world.explosion.Explosion;
public class DamageUtil implements RenderContract2 {
private final Vec3d a;
private Explosion c;
private RaycastContext d;
private volatile long e;
private final ConcurrentHashMap f;
private static final ThreadLocal g = ThreadLocal.withInitial(Object2IntOpenHashMap::new);
private static final long i = Long.MIN_VALUE;
public DamageUtil(long var1) {
super();
var1 = 0L;
var1 = 18350856574938L ^ var1;
long var3 = var1 ^ 91927560072961L;
this.a = new Vec3d(0.0, 0.0, 0.0);
this.e = i;
this.f = new ConcurrentHashMap();
Prestige.eventBus.register(new Object[]{this, var3});
}
@Subscribe
public void a(TickEvent3 var1) {
this.d = new RaycastContext(null, null, ShapeType.COLLIDER, FluidHandling.ANY, b.player);
}
public double a(Object[] var1) {
LivingEntity var5 = (LivingEntity)var1[0];
Vec3d var4 = (Vec3d)var1[1];
long var2 = (Long)var1[2];
var2 = 18350856574938L ^ var2;
long var6 = var2 ^ 62045040412105L;
Object[] var10008 = new Object[]{null, null, null, null, null, var6};
var10008[4] = false;
var10008[3] = null;
var10008[2] = false;
var10008[1] = var4;
var10008[0] = var5;
return this.b(var10008);
}
public double b(Object[] var1) {
LivingEntity var2 = (LivingEntity)var1[0];
Vec3d var4 = (Vec3d)var1[1];
boolean var7 = (Boolean)var1[2];
BlockPos var3 = (BlockPos)var1[3];
boolean var8 = (Boolean)var1[4];
long var5 = (Long)var1[5];
var5 = 18350856574938L ^ var5;
long var9 = var5 ^ 60394376658852L;
Event.b();
long var12 = b.world.getTime();
if (var12 != this.e) {
this.f.clear();
this.e = var12;
}
DoubleBoolData var14 = new DoubleBoolData(var2, var4.x, var4.y, var4.z, var7, var3, var8);
Double var15 = (Double)this.f.get(var14);
if (var15 != null) {
return var15;
} else {
Object[] var10008 = new Object[]{null, null, null, null, null, var9};
var10008[4] = var8;
var10008[3] = var3;
var10008[2] = var7;
var10008[1] = var4;
var10008[0] = var2;
double var16 = this.c(var10008);
this.f.put(var14, var16);
return var16;
}
}
private double c(Object[] var1) {
LivingEntity var2 = (LivingEntity)var1[0];
Vec3d var7 = (Vec3d)var1[1];
boolean var3 = (Boolean)var1[2];
BlockPos var4 = (BlockPos)var1[3];
boolean var8 = (Boolean)var1[4];
long var5 = (Long)var1[5];
var5 = 18350856574938L ^ var5;
long var9 = var5 ^ 70663714774065L;
long var11 = var5 ^ 116854953095835L;
long var13 = var5 ^ 140262527072875L;
long var15 = var5 ^ 45612110305298L;
long var17 = var5 ^ 23558358614720L;
long var19 = var5 ^ 125910066054471L;
if (var2 instanceof PlayerEntity
&& b.getNetworkHandler().getPlayerListEntry(var2.getUuid()) != null
&& b.getNetworkHandler().getPlayerListEntry(var2.getUuid()).getGameMode() == GameMode.CREATIVE) {
return 0.0;
} else {
Vec3d var22 = PositionUtil.a(new Object[]{var2, var11});
MathHelper3 var10000 = new MathHelper3(this.a);
double var10001 = var22.x;
double var10002 = var22.y;
double var10003 = var22.z;
Object[] var10006 = new Object[]{null, null, null, var15};
var10006[2] = var10003;
var10006[1] = var10002;
var10006[0] = var10001;
var10000.d(var10006);
if (var3) {
var10000 = new MathHelper3(this.a);
var10001 = this.a.x + var2.getVelocity().x;
var10002 = this.a.y + var2.getVelocity().y;
var10003 = this.a.z + var2.getVelocity().z;
var10006 = new Object[]{null, null, null, var15};
var10006[2] = var10003;
var10006[1] = var10002;
var10006[0] = var10001;
var10000.d(var10006);
}
double var23 = Math.sqrt(this.a.squaredDistanceTo(var7));
if (var23 > 12.0) {
return 0.0;
} else {
RaycastContext var10004 = this.d;
Object[] var10012 = new Object[]{null, null, null, null, null, null, null, null, null, var9};
var10012[5] = var8;
var10012[4] = var4;
var10012[3] = var10004;
var10012[2] = var3;
var10012[1] = var2;
var10012[0] = var7;
double var25 = this.o(var10012);
double var27 = (1.0 - var23 / 12.0) * var25;
double var29 = (var27 * var27 + var27) / 2.0 * 7.0 * 12.0 + 1.0;
Object[] var40 = new Object[]{null, var17};
var40[0] = var29;
var29 = this.m(var40);
var29 = net.minecraft.entity.DamageUtil.getDamageLeft(
var2,
(float)var29,
b.world.getDamageSources().explosion(null),
var2.getArmor(),
(float)var2.getAttributeInstance(EntityAttributes.ARMOR_TOUGHNESS).getValue()
);
Object[] var10005 = new Object[]{null, null, var19};
var10005[1] = var29;
var10005[0] = var2;
var29 = this.n(var10005);
var10005 = new Object[]{null, null, b.world.getDamageSources().explosion(null), var13};
var10005[1] = var29;
var10005[0] = var2;
var29 = j(var10005);
return var29 < 0.0 ? 0.0 : var29;
}
}
}
public double d(Object[] var1) {
LivingEntity var3 = (LivingEntity)var1[0];
Vec3d var7 = (Vec3d)var1[1];
Vec3d var6 = (Vec3d)var1[2];
BlockPos var2 = (BlockPos)var1[3];
long var4 = (Long)var1[4];
var4 = 18350856574938L ^ var4;
long var8 = var4 ^ 140583619040745L;
long var10 = var4 ^ 38438316372702L;
long var12 = var4 ^ 60626111085102L;
long var14 = var4 ^ 107516225165399L;
long var16 = var4 ^ 103216323854981L;
long var18 = var4 ^ 63983453963522L;
if (var3 instanceof PlayerEntity
&& b.getNetworkHandler().getPlayerListEntry(var3.getUuid()) != null
&& b.getNetworkHandler().getPlayerListEntry(var3.getUuid()).getGameMode() == GameMode.CREATIVE) {
return 0.0;
} else {
MathHelper3 var10000 = new MathHelper3(this.a);
double var10001 = var6.x;
double var10002 = var6.y;
double var10003 = var6.z;
Object[] var10006 = new Object[]{null, null, null, var14};
var10006[2] = var10003;
var10006[1] = var10002;
var10006[0] = var10001;
var10000.d(var10006);
double var21 = Math.sqrt(this.a.squaredDistanceTo(var7));
if (var21 > 12.0) {
return 0.0;
} else {
Vec3d var23 = var6.subtract(PositionUtil.a(new Object[]{var3, var10}));
RaycastContext var10004 = this.d;
Object[] var10012 = new Object[]{null, null, null, null, null, null, null, null, null, var8};
var10012[5] = false;
var10012[4] = var2;
var10012[3] = var10004;
var10012[2] = var23;
var10012[1] = var3;
var10012[0] = var7;
double var24 = this.p(var10012);
double var26 = (1.0 - var21 / 12.0) * var24;
double var28 = (var26 * var26 + var26) / 2.0 * 7.0 * 12.0 + 1.0;
Object[] var35 = new Object[]{null, var16};
var35[0] = var28;
var28 = this.m(var35);
var28 = net.minecraft.entity.DamageUtil.getDamageLeft(
var3,
(float)var28,
b.world.getDamageSources().explosion(null),
var3.getArmor(),
(float)var3.getAttributeInstance(EntityAttributes.ARMOR_TOUGHNESS).getValue()
);
Object[] var10005 = new Object[]{null, null, var18};
var10005[1] = var28;
var10005[0] = var3;
var28 = this.n(var10005);
var10005 = new Object[]{null, null, b.world.getDamageSources().explosion(null), var12};
var10005[1] = var28;
var10005[0] = var3;
var28 = j(var10005);
return var28 < 0.0 ? 0.0 : var28;
}
}
}
private double f(Object[] var1) {
LivingEntity var2 = (LivingEntity)var1[0];
Vec3d var4 = (Vec3d)var1[1];
BlockPos var5 = (BlockPos)var1[2];
BlockPos var3 = (BlockPos)var1[3];
BlockState var8 = (BlockState)var1[4];
long var6 = (Long)var1[5];
var6 = 18350856574938L ^ var6;
long var9 = var6 ^ 137608125675640L;
long var11 = var6 ^ 73609917046306L;
long var13 = var6 ^ 44044175812233L;
long var15 = var6 ^ 87825474003214L;
if (var2 instanceof PlayerEntity && ((PlayerEntity)var2).getAbilities().creativeMode) {
return 0.0;
} else {
double var18 = Math.sqrt(var2.squaredDistanceTo(var4));
if (var18 > 10.0) {
return 0.0;
} else {
RaycastContext var10004 = this.d;
Object[] var10012 = new Object[]{null, null, null, null, null, null, var5, var3, var8, var9};
var10012[5] = false;
var10012[4] = null;
var10012[3] = var10004;
var10012[2] = false;
var10012[1] = var2;
var10012[0] = var4;
double var20 = this.o(var10012);
double var22 = (1.0 - var18 / 10.0) * var20;
double var24 = (var22 * var22 + var22) / 2.0 * 7.0 * 10.0 + 1.0;
Object[] var31 = new Object[]{null, var13};
var31[0] = var24;
var24 = this.m(var31);
Object[] var10005 = new Object[]{null, null, var15};
var10005[1] = var24;
var10005[0] = var2;
var24 = this.n(var10005);
var24 = net.minecraft.entity.DamageUtil.getDamageLeft(
var2,
(float)var24,
b.world.getDamageSources().explosion(null),
var2.getArmor(),
(float)var2.getAttributeInstance(EntityAttributes.ARMOR_TOUGHNESS).getValue()
);
var10005 = new Object[]{null, null, b.world.getDamageSources().explosion(null), var11};
var10005[1] = var24;
var10005[0] = var2;
var24 = j(var10005);
return var24 < 0.0 ? 0.0 : var24;
}
}
}
public double g(Object[] var1) {
LivingEntity var2 = (LivingEntity)var1[0];
Vec3d var7 = (Vec3d)var1[1];
double var3 = (Double)var1[2];
long var5 = (Long)var1[3];
var5 = 18350856574938L ^ var5;
long var8 = var5 ^ 50002521674027L;
Object[] var10009 = new Object[]{null, null, null, null, null, null, var8};
var10009[2] = var3;
var10009[1] = var7;
var10009[0] = var2;
return this.i(var10009);
}
public double h(Object[] var1) {
LivingEntity var5 = (LivingEntity)var1[0];
Vec3d var3 = (Vec3d)var1[1];
double var7 = (Double)var1[2];
BlockPos var6 = (BlockPos)var1[3];
BlockPos var2 = (BlockPos)var1[4];
BlockState var4 = (BlockState)var1[5];
long var9 = (Long)var1[6];
var9 = 18350856574938L ^ var9;
long var11 = var9 ^ 93789556771378L;
Object[] var10009 = new Object[]{null, null, null, var6, var2, var4, var11};
var10009[2] = var7;
var10009[1] = var3;
var10009[0] = var5;
return this.i(var10009);
}
private double i(Object[] var1) {
LivingEntity var10 = (LivingEntity)var1[0];
Vec3d var8 = (Vec3d)var1[1];
double var6 = (Double)var1[2];
BlockPos var4 = (BlockPos)var1[3];
BlockPos var9 = (BlockPos)var1[4];
BlockState var5 = (BlockState)var1[5];
long var2 = (Long)var1[6];
var2 = 18350856574938L ^ var2;
long var11 = var2 ^ 79313669683112L;
long var13 = var2 ^ 131904361501170L;
long var15 = var2 ^ 31933369002329L;
long var17 = var2 ^ 135126957141726L;
if (var10 instanceof PlayerEntity && ((PlayerEntity)var10).getAbilities().creativeMode) {
return 0.0;
} else {
double var20 = 4.0 + 1.5 * Math.min(var6, 5.0);
double var22 = Math.sqrt(var10.squaredDistanceTo(var8));
if (var22 > var20 * 2.0) {
return 0.0;
} else {
RaycastContext var10004 = this.d;
Object[] var10012 = new Object[]{null, null, null, null, null, null, null, var9, var5, var11};
var10012[5] = false;
var10012[4] = var4;
var10012[3] = var10004;
var10012[2] = false;
var10012[1] = var10;
var10012[0] = var8;
double var24 = this.o(var10012);
double var26 = (1.0 - var22 / (var20 * 2.0)) * var24;
double var28 = (var26 * var26 + var26) / 2.0 * 7.0 * (var20 * 2.0) + 1.0;
Object[] var35 = new Object[]{null, var15};
var35[0] = var28;
var28 = this.m(var35);
Object[] var10005 = new Object[]{null, null, var17};
var10005[1] = var28;
var10005[0] = var10;
var28 = this.n(var10005);
var28 = net.minecraft.entity.DamageUtil.getDamageLeft(
var10,
(float)var28,
b.world.getDamageSources().explosion(null),
var10.getArmor(),
(float)var10.getAttributeInstance(EntityAttributes.ARMOR_TOUGHNESS).getValue()
);
var10005 = new Object[]{null, null, b.world.getDamageSources().explosion(null), var13};
var10005[1] = var28;
var10005[0] = var10;
var28 = j(var10005);
return var28 < 0.0 ? 0.0 : var28;
}
}
}
private static double j(Object[] var0) {
LivingEntity var3 = (LivingEntity)var0[0];
double var1 = (Double)var0[1];
DamageSource var6 = (DamageSource)var0[2];
long var4 = (Long)var0[3];
var4 = 18350856574938L ^ var4;
long var7 = var4 ^ 63254382195539L;
long var9 = var4 ^ 137971209152305L;
if (var6.isIn(DamageTypeTags.BYPASSES_INVULNERABILITY)) {
return var1;
} else {
int var12 = 0;
Object2IntMap var13 = (Object2IntMap)g.get();
for (EquipmentSlot var15 : AttributeModifierSlot.ARMOR) {
ItemStack var16 = var3.getEquippedStack(var15);
a_void___(new Object[]{var16, var13, var7});
int var17 = a_int(new Object[]{var13, Enchantments.PROTECTION, var9});
if (var17 > 0) {
var12 += var17;
}
int var18 = a_int(new Object[]{var13, Enchantments.FIRE_PROTECTION, var9});
if (var18 > 0 && var6.isIn(DamageTypeTags.IS_FIRE)) {
var12 += 2 * var18;
}
int var19 = a_int(new Object[]{var13, Enchantments.BLAST_PROTECTION, var9});
if (var19 > 0 && var6.isIn(DamageTypeTags.IS_EXPLOSION)) {
var12 += 2 * var19;
}
int var20 = a_int(new Object[]{var13, Enchantments.PROJECTILE_PROTECTION, var9});
if (var20 > 0 && var6.isIn(DamageTypeTags.IS_PROJECTILE)) {
var12 += 2 * var20;
}
int var21 = a_int(new Object[]{var13, Enchantments.FEATHER_FALLING, var9});
if (var21 > 0 && var6.isIn(DamageTypeTags.IS_FALL)) {
var12 += 3 * var21;
}
}
return net.minecraft.entity.DamageUtil.getInflictedDamage((float)var1, var12);
}
}
public static void a_void___(Object[] var0) {
ItemStack var4 = (ItemStack)var0[0];
Object2IntMap var1 = (Object2IntMap)var0[1];
Event.b();
var1.clear();
if (!var4.isEmpty()) {
for (Entry var8 : var4.getItem() == Items.ENCHANTED_BOOK
? var4.getOrDefault(DataComponentTypes.STORED_ENCHANTMENTS, ItemEnchantmentsComponent.DEFAULT).getEnchantmentEntries()
: var4.getEnchantments().getEnchantmentEntries()) {
var1.put((RegistryEntry)var8.getKey(), var8.getIntValue());
}
}
}
public static int a_int(Object[] var0) {
Object2IntMap var4 = (Object2IntMap)var0[0];
RegistryKey var1 = (RegistryKey)var0[1];
Event.b();
for (Entry var7 : (Iterable<Entry>)(Object2IntMaps.fastIterable(var4))) {
if (((RegistryEntry)var7.getKey()).matchesKey(var1)) {
return var7.getIntValue();
}
}
return 0;
}
public double k(Object[] var1) {
LivingEntity var2 = (LivingEntity)var1[0];
Vec3d var3 = (Vec3d)var1[1];
long var4 = (Long)var1[2];
var4 = 18350856574938L ^ var4;
long var6 = var4 ^ 7577744648969L;
return this.f(new Object[]{var2, var3, BlockPos.ofFloored(var3), null, null, var6});
}
public double l(Object[] var1) {
LivingEntity var6 = (LivingEntity)var1[0];
Vec3d var4 = (Vec3d)var1[1];
BlockPos var5 = (BlockPos)var1[2];
BlockState var7 = (BlockState)var1[3];
long var2 = (Long)var1[4];
var2 = 18350856574938L ^ var2;
long var8 = var2 ^ 64892925663312L;
return this.f(new Object[]{var6, var4, BlockPos.ofFloored(var4), var5, var7, var8});
}
private double m(Object[] var1) {
double var2 = (Double)var1[0];
return switch (WorldHelper.a[b.world.getDifficulty().ordinal()]) {
case 1 -> 0.0;
case 2 -> Math.min(var2 / 2.0 + 1.0, var2);
case 3 -> var2 * 3.0 / 2.0;
default -> var2;
};
}
private double n(Object[] var1) {
LivingEntity var2 = (LivingEntity)var1[0];
double var3 = (Double)var1[1];
Event.b();
double var8 = var3;
if (var2.hasStatusEffect(StatusEffects.RESISTANCE)) {
int var10 = var2.getStatusEffect(StatusEffects.RESISTANCE).getAmplifier() + 1;
var8 = var3 * (1.0 - var10 * 0.2);
}
return var8 < 0.0 ? 0.0 : var8;
}
private double o(Object[] var1) {
Vec3d var5 = (Vec3d)var1[0];
Entity var8 = (Entity)var1[1];
boolean var9 = (Boolean)var1[2];
RaycastContext var10 = (RaycastContext)var1[3];
BlockPos var6 = (BlockPos)var1[4];
boolean var3 = (Boolean)var1[5];
BlockPos var4 = (BlockPos)var1[6];
BlockPos var7 = (BlockPos)var1[7];
BlockState var2 = (BlockState)var1[8];
long var11 = (Long)var1[9];
var11 = 18350856574938L ^ var11;
long var13 = var11 ^ 113914657529415L;
Vec3d var10003 = var9 ? var8.getVelocity() : null;
Object[] var10012 = new Object[]{null, null, null, null, null, null, var4, var7, var2, var13};
var10012[5] = var3;
var10012[4] = var6;
var10012[3] = var10;
var10012[2] = var10003;
var10012[1] = var8;
var10012[0] = var5;
return this.p(var10012);
}
private double p(Object[] var1) {
Vec3d var3 = (Vec3d)var1[0];
Entity var8 = (Entity)var1[1];
Vec3d var4 = (Vec3d)var1[2];
RaycastContext var10 = (RaycastContext)var1[3];
BlockPos var5 = (BlockPos)var1[4];
boolean var2 = (Boolean)var1[5];
BlockPos var9 = (BlockPos)var1[6];
BlockPos var11 = (BlockPos)var1[7];
BlockState var12 = (BlockState)var1[8];
long var6 = (Long)var1[9];
var6 = 18350856574938L ^ var6;
long var13 = var6 ^ 54174853893221L;
long var15 = var6 ^ 53612852969307L;
long var17 = var6 ^ 16104425364068L;
Event.b();
Box var20 = var8.getBoundingBox();
if (var4 != null) {
var20 = var20.offset(var4.x, var4.y, var4.z);
}
double var21 = 1.0 / ((var20.maxX - var20.minX) * 2.0 + 1.0);
double var23 = 1.0 / ((var20.maxY - var20.minY) * 2.0 + 1.0);
double var25 = 1.0 / ((var20.maxZ - var20.minZ) * 2.0 + 1.0);
double var27 = (1.0 - Math.floor(1.0 / var21) * var21) / 2.0;
double var29 = (1.0 - Math.floor(1.0 / var25) * var25) / 2.0;
if (var21 >= 0.0 && var23 >= 0.0 && var25 >= 0.0) {
int var31 = 0;
int var32 = 0;
MathHelper3 var33 = new MathHelper3(this.a);
WorldHelper10 var34 = new WorldHelper10(var10);
for (double var35 = 0.0; var35 <= 1.0; var35 += var21) {
for (double var37 = 0.0; var37 <= 1.0; var37 += var23) {
for (double var39 = 0.0; var39 <= 1.0; var39 += var25) {
double var41 = MathHelper.lerp(var35, var20.minX, var20.maxX);
double var43 = MathHelper.lerp(var37, var20.minY, var20.maxY);
double var45 = MathHelper.lerp(var39, var20.minZ, var20.maxZ);
double var10001 = var41 + var27;
double var10003 = var45 + var29;
Object[] var10006 = new Object[]{null, null, null, var17};
var10006[2] = var10003;
var10006[1] = var43;
var10006[0] = var10001;
var33.d(var10006);
var34.f(new Object[]{this.a, var3, ShapeType.COLLIDER, FluidHandling.NONE, var8, var15});
Object[] var10009 = new Object[]{null, null, null, var9, var11, var12, var13};
var10009[2] = var2;
var10009[1] = var5;
var10009[0] = var10;
if (this.a_class_3965(var10009).getType() == Type.MISS) {
var31++;
}
var32++;
}
}
}
return (double)var31 / var32;
} else {
return 0.0;
}
}
private BlockHitResult a_class_3965(Object[] var1) {
RaycastContext var7 = (RaycastContext)var1[0];
BlockPos var8 = (BlockPos)var1[1];
boolean var9 = (Boolean)var1[2];
BlockPos var5 = (BlockPos)var1[3];
BlockPos var2 = (BlockPos)var1[4];
BlockState var6 = (BlockState)var1[5];
return BlockView.raycast(var7.getStart(), var7.getEnd(), var7, (lpL1_0, lpL1_1) -> {
BlockState var10;
if (var5 != null && ((net.minecraft.util.math.BlockPos)lpL1_1).equals(var5)) {
var10 = Blocks.AIR.getDefaultState();
} else if (var2 != null && ((net.minecraft.util.math.BlockPos)lpL1_1).equals(var2)) {
var10 = var6;
} else if (((net.minecraft.util.math.BlockPos)lpL1_1).equals(var8)) {
var10 = Blocks.OBSIDIAN.getDefaultState();
} else {
var10 = b.world.getBlockState(((net.minecraft.util.math.BlockPos)lpL1_1));
if (var10.getBlock().getBlastResistance() < 600.0F && var9) {
var10 = Blocks.AIR.getDefaultState();
}
}
Vec3d var11 = ((net.minecraft.world.RaycastContext)lpL1_0).getStart();
Vec3d var12 = ((net.minecraft.world.RaycastContext)lpL1_0).getEnd();
VoxelShape var13 = ((net.minecraft.world.RaycastContext)lpL1_0).getBlockShape(var10, b.world, ((net.minecraft.util.math.BlockPos)lpL1_1));
BlockHitResult var14 = b.world.raycastBlock(var11, var12, ((net.minecraft.util.math.BlockPos)lpL1_1), var13, var10);
VoxelShape var15 = VoxelShapes.empty();
BlockHitResult var16 = var15.raycast(var11, var12, ((net.minecraft.util.math.BlockPos)lpL1_1));
double var17 = var14 == null ? Double.MAX_VALUE : ((net.minecraft.world.RaycastContext)lpL1_0).getStart().squaredDistanceTo(var14.getPos());
double var19 = var16 == null ? Double.MAX_VALUE : ((net.minecraft.world.RaycastContext)lpL1_0).getStart().squaredDistanceTo(var16.getPos());
return var17 <= var19 ? var14 : var16;
}, lpL0_0 -> {
Vec3d var3 = ((net.minecraft.world.RaycastContext)lpL0_0).getStart().subtract(((net.minecraft.world.RaycastContext)lpL0_0).getEnd());
return BlockHitResult.createMissed(((net.minecraft.world.RaycastContext)lpL0_0).getEnd(), Direction.getFacing(var3.x, var3.y, var3.z), BlockPos.ofFloored(((net.minecraft.world.RaycastContext)lpL0_0).getEnd()));
});
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,25 @@
package dev.zprestige.prestige.combat;
import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
public class NameTags {
public NameTags() {
dev.zprestige.prestige.ui.bridge.Bootstrap.pre(this);
}
public String a;
public Color b;
public int c;
public String d;
public float e;
public float f;
public Color g;
public String h;
public float i;
public float j;
public float k;
public List l = new ArrayList();
public List m = new ArrayList();
}
@@ -0,0 +1,112 @@
package dev.zprestige.prestige.combat;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public final class NameTagsUtil {
public static final float a = 0.65F;
public static final float b = 0.75F;
public static final float c = 0.9F;
public static final float d = 1.0F;
public static final float e = 1.0F;
public static final float f = 1.0F;
public static final float g = 4.0F;
public static final float h = 3.0F;
public static final float i = 1.5F;
public static final int j = 5;
public static final float k = 5.5F;
public static final float l = 3.0F;
public static final float m = 3.0F;
public static final float n = 1.0F;
public static final float o = 0.5F;
public static final float p = 4.0F;
public static final float q = 1.0F;
public static final Color r = new Color(14, 14, 14, 200);
public static final Color s = Color.WHITE;
public static final Color t = new Color(200, 200, 200, 220);
public static final Color u = new Color(160, 160, 168, 200);
public static final Color v = new Color(255, 255, 255, 40);
private NameTagsUtil() {
}
public static float a(Object[] var0) {
float var1 = (Float)var0[0];
float var2 = (Float)var0[1];
return var1 * var2 + 6.0F;
}
public static float b(Object[] var0) {
float var1 = (Float)var0[0];
return 3.0F + var1 * 1.0F + 1.0F + 4.0F + 3.0F;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,151 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.event.Event;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.projectile.PersistentProjectileEntity;
import net.minecraft.entity.projectile.ProjectileUtil;
import net.minecraft.item.ItemStack;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.hit.HitResult.Type;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
public final class PearlFollowHelper extends PersistentProjectileEntity {
public boolean a;
public PearlFollowHelper(World var1, LivingEntity var2, ItemStack var3, long var4) {
super(EntityType.ARROW, var2, var1, var3, var3);
}
@Override
public void tick() {
Event.b();
HitResult var4 = ProjectileUtil.getCollision(this, lpL396_0 -> this.canHit(((net.minecraft.entity.Entity)lpL396_0)));
if (var4.getType() != Type.MISS) {
this.onCollision(var4);
} else {
this.tickBlockCollision();
if (!this.a) {
Vec3d var5 = this.getVelocity();
double var6 = this.getX() + var5.x;
double var8 = this.getY() + var5.y;
double var10 = this.getZ() + var5.z;
this.updateRotation();
float var12 = this.isTouchingWater() ? 0.8F : 0.99F;
this.setVelocity(var5.multiply(var12));
if (!this.hasNoGravity()) {
Vec3d var13 = this.getVelocity();
this.setVelocity(var13.x, var13.y - 0.03, var13.z);
}
this.setPosition(var6, var8, var10);
}
}
}
@Override
public void onBlockHit(BlockHitResult blockHitResult) {
this.a = true;
this.setPosition(blockHitResult.getPos());
}
@Override
public void onEntityHit(EntityHitResult entityHitResult) {
this.a = true;
this.setPosition(entityHitResult.getPos());
}
@Override
public ItemStack asItemStack() {
return null;
}
@Override
public ItemStack getDefaultItemStack() {
return null;
}
@Override
public void setVelocity(double x, double y, double z, float power, float uncertainty) {
Vec3d var11 = new Vec3d(x, y, z).normalize().multiply(power);
this.setVelocity(var11);
this.setYaw((float)(MathHelper.atan2(var11.x, var11.z) * 180.0F / (float)Math.PI));
this.setPitch((float)(MathHelper.atan2(var11.y, var11.horizontalLength()) * 180.0F / (float)Math.PI));
this.lastYaw = this.getYaw();
this.lastPitch = this.getPitch();
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,147 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.event.Event;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.projectile.PersistentProjectileEntity;
import net.minecraft.entity.projectile.ProjectileUtil;
import net.minecraft.item.ItemStack;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.hit.HitResult.Type;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
public final class PearlTrajectoryHelper extends PersistentProjectileEntity {
public boolean a;
public PearlTrajectoryHelper(World var1, LivingEntity var2, ItemStack var3, long var4) {
super(EntityType.ARROW, var2, var1, var3, var3);
}
@Override
public void tick() {
Event.b();
HitResult var4 = ProjectileUtil.getCollision(this, lpL397_0 -> this.canHit(((net.minecraft.entity.Entity)lpL397_0)));
if (var4.getType() != Type.MISS) {
this.onCollision(var4);
}
this.tickBlockCollision();
Vec3d var5 = this.getVelocity();
double var6 = this.getX() + var5.x;
double var8 = this.getY() + var5.y;
double var10 = this.getZ() + var5.z;
this.updateRotation();
float var12 = this.isTouchingWater() ? 0.8F : 0.99F;
this.setVelocity(var5.multiply(var12));
if (!this.hasNoGravity()) {
Vec3d var13 = this.getVelocity();
this.setVelocity(var13.x, var13.y - 0.03, var13.z);
}
this.setPosition(var6, var8, var10);
}
@Override
public void onBlockHit(BlockHitResult blockHitResult) {
this.a = true;
}
@Override
public void onEntityHit(EntityHitResult entityHitResult) {
this.a = true;
}
@Override
public ItemStack asItemStack() {
return null;
}
@Override
public ItemStack getDefaultItemStack() {
return null;
}
@Override
public void setVelocity(double x, double y, double z, float power, float uncertainty) {
Vec3d var11 = new Vec3d(x, y, z).normalize().multiply(power);
this.setVelocity(var11);
this.setYaw((float)(MathHelper.atan2(var11.x, var11.z) * 180.0F / (float)Math.PI));
this.setPitch((float)(MathHelper.atan2(var11.y, var11.horizontalLength()) * 180.0F / (float)Math.PI));
this.lastYaw = this.getYaw();
this.lastPitch = this.getPitch();
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,190 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.Subscribe;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.event.EntityEvent4;
import dev.zprestige.prestige.event.TickEvent19;
import dev.zprestige.prestige.render.RenderBatch;
import dev.zprestige.prestige.render.RenderContract2;
import dev.zprestige.prestige.type.EventPhase;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.util.math.MathHelper;
public class RotationManager implements RenderContract2 {
private static final float a = 0.4F;
private static final float c = 0.5F;
private boolean d;
private float e;
private float f;
private float g;
private float h;
private boolean i;
private float j;
private float k;
private float l;
private float m;
private float n;
private float o;
private float p;
private float q;
public RotationManager(long var1) {
super();
var1 = 0L;
var1 = 60632727332545L ^ var1;
long var3 = var1 ^ 14681560044837L;
this.d = false;
this.i = false;
Prestige.eventBus.register(new Object[]{this, var3});
}
@Subscribe
public void a(TickEvent19 var1) {
if (b.player == null) {
this.d = false;
} else if (!this.d) {
this.e = b.player.getYaw();
this.f = b.player.getPitch();
this.g = this.e;
this.h = this.f;
this.d = true;
} else {
RenderBatch var5 = Prestige.o.b_RenderBatch____________(new Object[0]);
if (var5 == null) {
this.e = b.player.getYaw();
this.f = b.player.getPitch();
this.g = this.e;
this.h = this.f;
} else {
this.g = this.e;
this.h = this.f;
float var6 = MathHelper.wrapDegrees(var5.a(new Object[0]) - this.e);
float var7 = var5.b(new Object[0]) - this.f;
this.e = MathHelper.wrapDegrees(this.e + var6 * 0.4F);
this.f = MathHelper.clamp(this.f + var7 * 0.4F, -90.0F, 90.0F);
}
}
}
@Subscribe
public void a(EntityEvent4 var1) {
if (var1.a == b.player && this.d) {
if (var1.a_EventPhase(new Object[0]) == EventPhase.PRE) {
if (this.i) {
return;
}
if (Prestige.o.b_RenderBatch____________(new Object[0]) == null) {
return;
}
float var5 = Math.abs(MathHelper.wrapDegrees(this.e - b.player.getYaw()));
float var6 = Math.abs(this.f - b.player.getPitch());
if (var5 < 0.5F && var6 < 0.5F) {
return;
}
this.j = b.player.getYaw();
this.k = b.player.getPitch();
this.l = b.player.bodyYaw;
this.m = b.player.headYaw;
this.n = b.player.lastYaw;
this.o = b.player.lastPitch;
this.p = b.player.lastBodyYaw;
this.q = b.player.lastHeadYaw;
b.player.setYaw(this.e);
b.player.setPitch(this.f);
b.player.bodyYaw = this.e;
b.player.headYaw = this.e;
b.player.lastYaw = this.g;
b.player.lastPitch = this.h;
b.player.lastBodyYaw = this.g;
b.player.lastHeadYaw = this.g;
this.i = true;
} else if (var1.a_EventPhase(new Object[0]) == EventPhase.POST && this.i) {
b.player.setYaw(this.j);
b.player.setPitch(this.k);
b.player.bodyYaw = this.l;
b.player.headYaw = this.m;
b.player.lastYaw = this.n;
b.player.lastPitch = this.o;
b.player.lastBodyYaw = this.p;
b.player.lastHeadYaw = this.q;
this.i = false;
}
}
}
public boolean a(Object[] var1) {
return this.i;
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,162 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.Subscribe;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.event.Event;
import dev.zprestige.prestige.event.PlayerEvent;
import dev.zprestige.prestige.event.TickEvent19;
import dev.zprestige.prestige.event.TickEvent3;
import dev.zprestige.prestige.event.TickEvent6;
import dev.zprestige.prestige.render.RenderContract2;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.Set;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
public class TargetManager implements RenderContract2 {
private final Set a;
private final Map c;
public TargetManager(long var1) {
super();
var1 = 0L;
var1 = 135428133275062L ^ var1;
long var3 = var1 ^ 106554379797719L;
this.a = new HashSet();
this.c = new IdentityHashMap();
Prestige.eventBus.register(new Object[]{this, var3});
}
@Subscribe
public void a(TickEvent19 var1) {
Event.b();
this.c.clear();
if (!this.a.isEmpty()) {
this.a.removeIf(lpL9_0 -> !((net.minecraft.entity.Entity)lpL9_0).isAlive());
}
}
@Subscribe
public void a(TickEvent3 var1) {
this.a.clear();
}
public void a(Object[] var1) {
PlayerEntity var2 = (PlayerEntity)var1[0];
this.a.add(var2);
}
public Set a_Set(Object[] var1) {
return this.a;
}
public boolean a_boolean_(Object[] var1) {
Entity var2 = (Entity)var1[0];
long var3 = (Long)var1[1];
var3 = 135428133275062L ^ var3;
long var5 = var3 ^ 5217238789553L;
if (var2 == b.player) {
return false;
} else {
Boolean var8 = (Boolean)this.c.get(var2);
if (var8 != null) {
return var8;
} else {
boolean var9 = this.b(new Object[]{var2, var5});
this.c.put(var2, var9);
return var9;
}
}
}
private boolean b(Object[] var1) {
Entity var4 = (Entity)var1[0];
long var2 = (Long)var1[1];
var2 = 135428133275062L ^ var2;
long var5 = var2 ^ 99671251868934L;
long var7 = var2 ^ 86195271010853L;
if (!(var4 instanceof PlayerEntity)) {
return true;
} else if (!Prestige.eventBus.hasListeners(new Object[]{TickEvent6.class, var7})) {
return true;
} else if (!new TickEvent6().b_boolean__(new Object[]{var5})) {
return true;
} else {
return Prestige.eventBus.hasListeners(new Object[]{PlayerEvent.class, var7}) && new PlayerEvent((PlayerEntity)var4).b_boolean__(new Object[]{var5})
? false
: this.a.contains(var4) && var4.isAlive();
}
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,136 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.Subscribe;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.event.EntityEvent;
import dev.zprestige.prestige.event.Event;
import dev.zprestige.prestige.event.TickEvent19;
import dev.zprestige.prestige.render.RenderContract2;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.entity.Entity;
import net.minecraft.entity.decoration.EndCrystalEntity;
import net.minecraft.entity.player.PlayerEntity;
public class TargetTracker implements RenderContract2 {
private PlayerEntity a;
private long c;
public TargetTracker(long var1) {
super();
var1 = 0L;
var1 = 108076624727597L ^ var1;
long var3 = var1 ^ 134580352215820L;
this.a = null;
this.c = 0L;
Prestige.eventBus.register(new Object[]{this, var3});
}
@Subscribe
public void a(TickEvent19 var1) {
if (this.a != null && (b.world == null || !this.a.isAlive() || this.a.distanceTo(b.player) > 15.0F || System.currentTimeMillis() - this.c > 5000L)) {
this.a = null;
}
}
@Subscribe
public void a(EntityEvent var1) {
Event.b();
Entity var9 = var1.a(new Object[0]);
if (var9 instanceof PlayerEntity var10) {
this.a_void____(new Object[]{var10, 64033097141446L});
} else if (var9 instanceof EndCrystalEntity) {
for (PlayerEntity var12 : b.world.getPlayers()) {
if (var12 != null
&& var12 != b.player
&& !Prestige.g.a(new Object[]{var12.getName().getString(), 24848952222090L})
&& var12.distanceTo(var9) <= 5.0F) {
this.a_void____(new Object[]{var12, 64033097141446L});
}
}
}
}
public PlayerEntity a(Object[] var1) {
return this.a;
}
public void a_void____(Object[] var1) {
PlayerEntity var2 = (PlayerEntity)var1[0];
long var3 = (Long)var1[1];
var3 = 108076624727597L ^ var3;
long var5 = var3 ^ 86787500893025L;
if (!Prestige.g.a(new Object[]{var2.getName().getString(), var5})) {
this.a = var2;
this.c = System.currentTimeMillis();
}
}
private static Field c(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field d(Class var0, String var1, Class var2) {
Field var3 = c(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = d(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method c(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method d(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = c(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = d(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,147 @@
package dev.zprestige.prestige.combat;
import dev.zprestige.prestige.event.Event;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.projectile.PersistentProjectileEntity;
import net.minecraft.entity.projectile.ProjectileUtil;
import net.minecraft.item.ItemStack;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.hit.HitResult.Type;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
public final class TrajectoriesHelper extends PersistentProjectileEntity {
public boolean a;
public TrajectoriesHelper(World var1, LivingEntity var2, ItemStack var3, long var4) {
super(EntityType.ARROW, var2, var1, var3, var3);
}
@Override
public void tick() {
Event.b();
HitResult var4 = ProjectileUtil.getCollision(this, lpL398_0 -> this.canHit(((net.minecraft.entity.Entity)lpL398_0)));
if (var4.getType() != Type.MISS) {
this.onCollision(var4);
}
this.tickBlockCollision();
Vec3d var5 = this.getVelocity();
double var6 = this.getX() + var5.x;
double var8 = this.getY() + var5.y;
double var10 = this.getZ() + var5.z;
this.updateRotation();
float var12 = this.isTouchingWater() ? 0.8F : 0.99F;
this.setVelocity(var5.multiply(var12));
if (!this.hasNoGravity()) {
Vec3d var13 = this.getVelocity();
this.setVelocity(var13.x, var13.y - 0.03, var13.z);
}
this.setPosition(var6, var8, var10);
}
@Override
public void onBlockHit(BlockHitResult blockHitResult) {
this.a = true;
}
@Override
public ItemStack asItemStack() {
return null;
}
@Override
public ItemStack getDefaultItemStack() {
return null;
}
@Override
public void onEntityHit(EntityHitResult entityHitResult) {
this.a = true;
}
@Override
public void setVelocity(double x, double y, double z, float power, float uncertainty) {
Vec3d var11 = new Vec3d(x, y, z).normalize().multiply(power);
this.setVelocity(var11);
this.setYaw((float)(MathHelper.atan2(var11.x, var11.z) * 180.0F / (float)Math.PI));
this.setPitch((float)(MathHelper.atan2(var11.y, var11.horizontalLength()) * 180.0F / (float)Math.PI));
this.lastYaw = this.getYaw();
this.lastPitch = this.getPitch();
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,14 @@
package dev.zprestige.prestige.combat;
import net.minecraft.entity.player.PlayerEntity;
public final class TwoDESPHelper {
public PlayerEntity a;
public String b;
public float c;
public float d;
public float e;
public float f;
public float g;
public boolean h;
}
@@ -0,0 +1,130 @@
package dev.zprestige.prestige.config;
import com.google.gson.JsonObject;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ConfigHelper {
private int a;
private float b;
private float c;
private float d;
private float e;
private float f;
public ConfigHelper() {
}
public ConfigHelper(int var1, float var2, float var3, float var4, float var5, float var6) {
this.a = var1;
this.b = var2;
this.c = var3;
this.d = var4;
this.e = var5;
this.f = var6;
}
public static ConfigHelper a(Object[] var0) {
JsonObject var1 = (JsonObject)var0[0];
ConfigHelper var4 = new ConfigHelper();
var4.a = var1.get("emSize").getAsInt();
var4.b = var1.get("lineHeight").getAsFloat();
var4.c = var1.get("ascender").getAsFloat();
var4.d = var1.get("descender").getAsFloat();
var4.e = var1.get("underlineY").getAsFloat();
var4.f = var1.get("underlineThickness").getAsFloat();
return var4;
}
public int a_int_(Object[] var1) {
return this.a;
}
public float a_float_(Object[] var1) {
return this.b;
}
public float b(Object[] var1) {
return this.c;
}
public float c(Object[] var1) {
return this.d;
}
public float d(Object[] var1) {
return this.e;
}
public float e(Object[] var1) {
return this.f;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,152 @@
package dev.zprestige.prestige.config;
import com.google.gson.JsonObject;
import dev.zprestige.prestige.event.Event;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ConfigHelper2 {
private int a;
private float b;
private float c;
private float d;
private float e;
private float f;
private float g;
private float h;
private float i;
private float j;
public static ConfigHelper2 a(Object[] var0) {
JsonObject var1 = (JsonObject)var0[0];
Event.b();
ConfigHelper2 var5 = new ConfigHelper2();
var5.a = var1.get("unicode").getAsInt();
var5.b = var1.get("advance").getAsFloat();
if (var1.has("planeBounds")) {
JsonObject var6 = var1.get("planeBounds").getAsJsonObject();
var5.c = var6.get("left").getAsFloat();
var5.d = var6.get("bottom").getAsFloat();
var5.e = var6.get("right").getAsFloat();
var5.f = var6.get("top").getAsFloat();
}
if (var1.has("atlasBounds")) {
JsonObject var7 = var1.get("atlasBounds").getAsJsonObject();
var5.g = var7.get("left").getAsFloat();
var5.h = var7.get("bottom").getAsFloat();
var5.i = var7.get("right").getAsFloat();
var5.j = var7.get("top").getAsFloat();
}
return var5;
}
public int a_int__(Object[] var1) {
return this.a;
}
public float a_float__(Object[] var1) {
return this.b;
}
public float b(Object[] var1) {
return this.c;
}
public float c(Object[] var1) {
return this.d;
}
public float d(Object[] var1) {
return this.e;
}
public float e(Object[] var1) {
return this.f;
}
public float f(Object[] var1) {
return this.g;
}
public float g(Object[] var1) {
return this.h;
}
public float h(Object[] var1) {
return this.i;
}
public float i(Object[] var1) {
return this.j;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,127 @@
package dev.zprestige.prestige.config;
import dev.zprestige.prestige.event.Event;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Objects;
public class ConfigHelper3 {
private final String a;
private static final String c = "resource not found: ";
private ConfigHelper3(String var1) {
this.a = var1;
}
public static ConfigHelper3 a(Object[] var0) {
String var1 = (String)var0[0];
String var5 = var1.startsWith("/") ? var1.substring(1) : var1;
return new ConfigHelper3(var5);
}
public InputStream a_InputStream(Object[] var1) {
Event.b();
InputStream var5 = ConfigHelper3.class.getClassLoader().getResourceAsStream(this.a);
if (var5 == null) {
throw new IllegalArgumentException(c + this);
} else {
return var5;
}
}
public String a_String(Object[] var1) {
return this.a;
}
@Override
public String toString() {
return this.a;
}
@Override
public boolean equals(Object var1) {
if (this == var1) {
return true;
} else {
return !(var1 instanceof ConfigHelper3 var5) ? false : this.a.equals(var5.a);
}
}
@Override
public int hashCode() {
return Objects.hash(this.a);
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
private static IllegalArgumentException a(IllegalArgumentException var0) {
return var0;
}
}
@@ -0,0 +1,960 @@
package dev.zprestige.prestige.config;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import dev.zprestige.prestige.ColorSetting;
import dev.zprestige.prestige.KeybindSetting;
import dev.zprestige.prestige.Module;
import dev.zprestige.prestige.MultiSetting;
import dev.zprestige.prestige.RangeSetting;
import dev.zprestige.prestige.Setting;
import dev.zprestige.prestige.annotation.Chainable;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.data.ModuleStringBoolData;
import dev.zprestige.prestige.event.Event;
import dev.zprestige.prestige.hud.HudElement;
import dev.zprestige.prestige.math.MathUtil5;
import dev.zprestige.prestige.render.RenderHelper11;
import dev.zprestige.prestige.type.NotificationType;
import dev.zprestige.prestige.type.SettingFlag;
import dev.zprestige.prestige.type.TrajectoryType;
import dev.zprestige.prestige.util.TpsTimer;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Map.Entry;
import net.minecraft.client.MinecraftClient;
public class ConfigManager {
private static final Gson a = new Gson();
private static final int b = 100000;
private static final int c = 64;
private String d;
private String e;
private static final long m = 8000L;
@Chainable
public String a() {
Event.b();
RenderHelper11 var16 = new RenderHelper11("save");
JsonObject var17 = new JsonObject();
try {
if (Prestige.moduleManager == null) {
var16.b(new Object[]{"Config", "module manager is not ready", null});
} else {
HashSet var18 = new HashSet();
var18.add("Menu");
JsonObject var19 = new JsonObject();
for (Setting var21 : (Iterable<Setting>)(Prestige.moduleManager.getMenu(new Object[0]).settings)) {
this.g(new Object[]{var19, var21, "Menu", var16, 128387161211156L});
}
var17.add("Menu", var19);
for (Module var32 : (Iterable<Module>)(Prestige.moduleManager.getModules())) {
String var22 = var32.getName();
if (var22 == null || var22.isBlank()) {
var16.b(new Object[]{"Unnamed module", "module has no config name", null});
} else if (!var18.add(var22)) {
var16.b(new Object[]{var22, "duplicate config section name", null});
} else {
JsonObject var23 = new JsonObject();
for (Setting var25 : (Iterable<Setting>)(var32.getCoreSettings(new Object[0]))) {
this.g(new Object[]{var23, var25, var22, var16, 128387161211156L});
}
for (Setting var38 : (Iterable<Setting>)(var32.settings)) {
this.g(new Object[]{var23, var38, var22, var16, 128387161211156L});
}
var17.add(var22, var23);
}
}
if (Prestige.l == null) {
var16.b(new Object[]{"HUD", "HUD editor is not ready", null});
} else {
for (HudElement var35 : Prestige.l.a_HudElementArr(new Object[0])) {
String var37 = var35.a_String____(new Object[0]);
if (var37 == null || var37.isBlank()) {
var16.b(new Object[]{"HUD", "component has no config name", null});
} else if (!var18.add(var37)) {
var16.b(new Object[]{"HUD > " + var37, "duplicate config section name", null});
} else {
try {
JsonObject var39 = new JsonObject();
var39.addProperty("Enabled", var35.e_boolean(new Object[]{15166320517519L}));
var39.addProperty("X", var35.a_float_______(new Object[0]));
var39.addProperty("Y", var35.b_float___(new Object[0]));
if (var35.b_boolean____(new Object[0])) {
var16.c(new Object[]{3});
} else {
var39.addProperty("RuleX", var35.i.name());
var39.addProperty("RuleY", var35.j.name());
var39.addProperty("OffX", var35.k);
var39.addProperty("OffY", var35.l);
var16.c(new Object[]{7});
}
var17.add(var37, var39);
} catch (Throwable var27) {
j(new Object[]{var27, 77239967061762L});
var16.b(new Object[]{"HUD > " + var37, d_String(new Object[]{var27, 126091222217669L}), var27});
}
}
}
}
}
} catch (Throwable var28) {
j(new Object[]{var28, 77239967061762L});
var16.b(new Object[]{"Config", "unexpected save failure: " + d_String(new Object[]{var28, 126091222217669L}), var28});
}
String var29;
try {
var29 = var17.toString();
} catch (Throwable var26) {
j(new Object[]{var26, 77239967061762L});
var16.b(new Object[]{"Config", "could not serialize snapshot: " + d_String(new Object[]{var26, 126091222217669L}), var26});
var29 = "{}";
}
if (var16.a_boolean__________________________________________(new Object[]{17026319865315L})) {
if (this.d != null) {
var16.a(new Object[]{"Config", "save was aborted; the previous complete snapshot was kept", null});
var29 = this.d;
} else {
var16.b(new Object[]{"Config", "save was aborted; no complete fallback snapshot exists", null});
var29 = "{}";
}
} else {
this.d = var29;
}
i(new Object[]{var16, 29277096836346L});
return var29;
}
@Chainable
public void a(String var1) {
Event.b();
RenderHelper11 var25 = new RenderHelper11("load");
try {
JsonObject var26 = this.a_JsonObject(new Object[]{var1, var25, 50406667818198L});
if (var26 == null) {
return;
}
if (Prestige.moduleManager != null) {
HashSet var27 = new HashSet();
var27.add("Menu");
ArrayList var28 = new ArrayList();
Set var29 = Collections.newSetFromMap(new IdentityHashMap());
this.a(new Object[]{var26, var29, var25, 33673993163928L});
this.b(new Object[]{var26, var25, 86545728593565L});
for (Module var31 : (Iterable<Module>)(Prestige.moduleManager.getModules())) {
String var32 = var31.getName();
if (var32 != null && !var32.isBlank()) {
if (!var27.add(var32)) {
var25.b(new Object[]{var32, "duplicate module config name; section was skipped", null});
} else {
this.c(new Object[]{var26, var31, var32, var29, var28, var25, 63085766558568L});
}
}
}
if (Prestige.l == null) {
var25.a(new Object[]{"HUD", "HUD editor is not ready; HUD layout was skipped", null});
} else {
for (HudElement var33 : Prestige.l.a_HudElementArr(new Object[0])) {
String var34 = var33.a_String____(new Object[0]);
if (var34 == null || var34.isBlank()) {
var25.b(new Object[]{"HUD", "component has no config name", null});
} else if (!var27.add(var34)) {
var25.b(new Object[]{"HUD > " + var34, "duplicate config section name; section was skipped", null});
} else {
this.e(new Object[]{var26, var33, var34, var25, 5466957899849L});
}
}
}
this.h(new Object[]{var26, var27, "", "module or HUD section", var25, 9248152575382L});
for (ModuleStringBoolData var43 : (Iterable<ModuleStringBoolData>)(var28)) {
JsonElement var10001 = var43.aE();
Module var10002 = var43.aC();
String var10003 = var43.aD();
boolean var10004 = var43.aF();
Object[] var10008 = new Object[]{null, null, null, null, var25, 81130270711953L};
var10008[3] = var10004;
var10008[2] = var10003;
var10008[1] = var10002;
var10008[0] = var10001;
this.d(var10008);
}
if (var25.c == 0) {
var25.b(new Object[]{"Config", "no recognized config sections were found", null});
}
return;
}
var25.b(new Object[]{"Config", "module manager is not ready", null});
} catch (Throwable var38) {
j(new Object[]{var38, 77239967061762L});
var25.b(new Object[]{"Config", "unexpected load failure: " + d_String(new Object[]{var38, 126091222217669L}), var38});
return;
} finally {
this.e = var25.a_String_______(new Object[0]);
i(new Object[]{var25, 29277096836346L});
}
}
@Chainable
public String b() {
String var1 = this.e;
this.e = null;
return var1;
}
private void a(Object[] var1) {
JsonObject var4 = (JsonObject)var1[0];
Set var3 = (Set)var1[1];
RenderHelper11 var2 = (RenderHelper11)var1[2];
long var5 = (Long)var1[3];
var5 = 96496729806863L ^ var5;
long var7 = var5 ^ 37162905344827L;
long var9 = var5 ^ 132314134132321L;
long var11 = var5 ^ 103654541799618L;
long var13 = var5 ^ 107987087481170L;
long var15 = var5 ^ 16891702107029L;
long var17 = var5 ^ 65759533973330L;
Event.b();
HashSet var20 = new HashSet();
var20.add("Menu");
Iterator var21 = Prestige.moduleManager.getModules().iterator();
while (true) {
Module var22;
String var23;
boolean var27;
while (true) {
boolean var26;
while (true) {
if (!var21.hasNext()) {
return;
}
var22 = (Module)var21.next();
var23 = var22.getName();
if (var23 != null && !var23.isBlank() && var20.add(var23)) {
JsonElement var24 = var4.get(var23);
if (var24 != null && var24.isJsonObject()) {
JsonObject var25 = var24.getAsJsonObject();
if (var25.has("Enabled")) {
try {
var26 = MathUtil5.a_boolean________(new Object[]{this.a_String_(new Object[]{var25.get("Enabled"), var11}), var9});
break;
} catch (Throwable var32) {
j(new Object[]{var32, var15});
}
}
}
}
}
if (!var26) {
try {
var27 = var22.isEnabled();
break;
} catch (Throwable var33) {
j(new Object[]{var33, var15});
var2.b(new Object[]{var23 + " > Enabled", "could not inspect current module state: " + d_String(new Object[]{var33, var17}), var33});
}
}
}
if (var27) {
var3.add(var22);
String var28 = var23 + " > Enabled";
try {
var22.toggle(new Object[]{var7});
if (var22.isEnabled()) {
var22.toggle(new Object[]{var7});
}
if (!var22.isEnabled()) {
var2.c(new Object[]{1});
} else {
var2.a(new Object[]{var28, "module changed its own state while being disabled", null});
}
} catch (Throwable var34) {
j(new Object[]{var34, var15});
Object[] var10006 = new Object[]{null, null, var34, var13};
var10006[1] = true;
var10006[0] = var22;
boolean var30 = this.a_boolean__(var10006);
String var31 = var30 ? "disable lifecycle failed; previous state was restored" : "disable lifecycle failed; state may be inconsistent";
var2.b(new Object[]{var28, var31, var34});
}
}
}
}
private void b(Object[] var1) {
JsonObject var2 = (JsonObject)var1[0];
RenderHelper11 var3 = (RenderHelper11)var1[1];
long var4 = (Long)var1[2];
var4 = 96496729806863L ^ var4;
long var6 = var4 ^ 8706910453811L;
long var8 = var4 ^ 18813483277060L;
long var10 = var4 ^ 79939548172944L;
if (var2.has("Menu")) {
var3.c++;
JsonObject var13 = this.b_JsonObject(new Object[]{var2.get("Menu"), "Menu", var3, var6});
if (var13 != null) {
HashSet var14 = new HashSet();
for (Setting var16 : (Iterable<Setting>)(Prestige.moduleManager.getMenu(new Object[0]).settings)) {
this.f(new Object[]{var13, var16, "Menu", var14, var3, var10});
}
this.h(new Object[]{var13, var14, "Menu", "setting", var3, var8});
}
}
}
private void c(Object[] var1) {
JsonObject var7 = (JsonObject)var1[0];
Module var2 = (Module)var1[1];
String var3 = (String)var1[2];
Set var8 = (Set)var1[3];
List var9 = (List)var1[4];
RenderHelper11 var6 = (RenderHelper11)var1[5];
long var4 = (Long)var1[6];
var4 = 96496729806863L ^ var4;
long var10 = var4 ^ 123407556550086L;
long var12 = var4 ^ 113019533182705L;
long var14 = var4 ^ 69691540459365L;
if (var7.has(var3)) {
var6.c++;
JsonObject var17 = this.b_JsonObject(new Object[]{var7.get(var3), var3, var6, var10});
if (var17 != null) {
HashSet var18 = new HashSet();
boolean var19 = false;
for (Setting var21 : (Iterable<Setting>)(var2.getCoreSettings(new Object[0]))) {
if ("Enabled".equals(var21.getName())) {
var19 = true;
var18.add("Enabled");
} else {
this.f(new Object[]{var17, var21, var3, var18, var6, var14});
}
}
for (Setting var24 : (Iterable<Setting>)(var2.settings)) {
this.f(new Object[]{var17, var24, var3, var18, var6, var14});
}
this.h(new Object[]{var17, var18, var3, "setting", var6, var12});
if (var19 && var17.has("Enabled")) {
var9.add(new ModuleStringBoolData(var2, var3, var17.get("Enabled"), var8.contains(var2)));
}
}
}
}
private void d(Object[] var1) {
JsonElement var8 = (JsonElement)var1[0];
Module var2 = (Module)var1[1];
String var4 = (String)var1[2];
boolean var3 = (Boolean)var1[3];
RenderHelper11 var5 = (RenderHelper11)var1[4];
long var6 = (Long)var1[5];
var6 = 96496729806863L ^ var6;
long var9 = var6 ^ 130452708159282L;
long var11 = var6 ^ 51947669766760L;
long var13 = var6 ^ 10085635278027L;
long var15 = var6 ^ 58684175330651L;
long var17 = var6 ^ 96985419263900L;
long var19 = var6 ^ 119465039121243L;
long var21 = var6 ^ 121114916499154L;
Event.b();
String var24 = var4 + " > Enabled";
if (!var3) {
try {
boolean var25 = MathUtil5.a_boolean________(new Object[]{this.a_String_(new Object[]{var8, var13}), var11});
boolean var26 = var2.isEnabled();
if (var25 == var26) {
var5.c(new Object[]{1});
return;
}
if (var25 && !var2.b(new Object[]{var21})) {
var5.a(new Object[]{var24, "activation is blocked for downloaded configs; settings were still loaded", null});
return;
}
try {
var2.toggle(new Object[]{var9});
if (var2.isEnabled() == var25) {
var5.c(new Object[]{1});
} else {
var5.a(new Object[]{var24, "module changed its own state during activation", null});
}
} catch (Throwable var31) {
j(new Object[]{var31, var17});
Object[] var10006 = new Object[]{null, null, var31, var15};
var10006[1] = var26;
var10006[0] = var2;
boolean var29 = this.a_boolean__(var10006);
String var30 = var29 ? "module lifecycle failed; previous state was restored" : "module lifecycle failed; state may be inconsistent";
var5.b(new Object[]{var24, var30, var31});
}
} catch (Throwable var32) {
j(new Object[]{var32, var17});
var5.b(new Object[]{var24, d_String(new Object[]{var32, var19}), var32});
}
}
}
private boolean a_boolean__(Object[] var1) {
Module var4 = (Module)var1[0];
boolean var3 = (Boolean)var1[1];
Throwable var2 = (Throwable)var1[2];
long var5 = (Long)var1[3];
var5 = 96496729806863L ^ var5;
long var7 = var5 ^ 22237184105062L;
long var9 = var5 ^ 64498351692488L;
try {
if (var4.isEnabled() != var3) {
var4.toggle(new Object[]{var7});
}
return var4.isEnabled() == var3;
} catch (Throwable var13) {
j(new Object[]{var13, var9});
var2.addSuppressed(var13);
return false;
}
}
private void e(Object[] var1) {
JsonObject var7 = (JsonObject)var1[0];
HudElement var2 = (HudElement)var1[1];
String var4 = (String)var1[2];
RenderHelper11 var3 = (RenderHelper11)var1[3];
long var5 = (Long)var1[4];
var5 = 96496729806863L ^ var5;
long var8 = var5 ^ 100411059039696L;
long var10 = var5 ^ 5502290586488L;
long var12 = var5 ^ 58875693054694L;
long var14 = var5 ^ 101797762110170L;
long var16 = var5 ^ 23108292749124L;
long var18 = var5 ^ 36929804059523L;
long var20 = var5 ^ 85373803017959L;
long var22 = var5 ^ 87860093076389L;
long var24 = var5 ^ 85724311003336L;
long var26 = var5 ^ 55444573469968L;
long var28 = var5 ^ 107814391728816L;
long var30 = var5 ^ 119585972925391L;
long var32 = var5 ^ 74892457757715L;
long var34 = var5 ^ 104387745518025L;
long var36 = var5 ^ 59274824819998L;
if (var7.has(var4)) {
var3.c++;
String var39 = "HUD > " + var4;
JsonObject var40 = this.b_JsonObject(new Object[]{var7.get(var4), var39, var3, var20});
if (var40 != null) {
Set var41 = Set.of("Enabled", "X", "Y", "Anchor", "RuleX", "RuleY", "OffX", "OffY");
this.h(new Object[]{var40, var41, var39, "setting", var3, var8});
boolean var42 = var40.has("RuleX") && var40.has("RuleY") && var40.has("OffX") && var40.has("OffY");
boolean var43 = var40.has("X");
boolean var44 = var40.has("Y");
if (var42) {
try {
SettingFlag var45 = SettingFlag.valueOf(this.a_String_(new Object[]{var40.get("RuleX"), var32}));
SettingFlag var46 = SettingFlag.valueOf(this.a_String_(new Object[]{var40.get("RuleY"), var32}));
float var47 = MathUtil5.a_float_____________(new Object[]{this.a_String_(new Object[]{var40.get("OffX"), var32}), var24});
float var48 = MathUtil5.a_float_____________(new Object[]{this.a_String_(new Object[]{var40.get("OffY"), var32}), var24});
Object[] var10007 = new Object[]{null, null, null, null, var26};
var10007[3] = var48;
var10007[2] = var47;
var10007[1] = var46;
var10007[0] = var45;
var2.f_void(var10007);
var3.c(new Object[]{4});
} catch (IllegalArgumentException var52) {
var3.b(new Object[]{var39 + " > Position", "unknown positioning rule; position was skipped", null});
} catch (Throwable var53) {
j(new Object[]{var53, var16});
var3.b(new Object[]{var39 + " > Position", d_String(new Object[]{var53, var18}), var53});
}
} else if (var43 != var44) {
var3.b(new Object[]{var39 + " > Position", "X and Y must both be present; position was skipped", null});
} else if (var43) {
try {
label128: {
float var58 = MathUtil5.a_float_____________(new Object[]{this.a_String_(new Object[]{var40.get("X"), var32}), var24});
float var60 = MathUtil5.a_float_____________(new Object[]{this.a_String_(new Object[]{var40.get("Y"), var32}), var24});
label129: {
{
if (var40.has("Anchor")) {
try {
TrajectoryType var10001 = TrajectoryType.valueOf(this.a_String_(new Object[]{var40.get("Anchor"), var32}));
Object[] var10006 = new Object[]{null, null, null, var12};
var10006[2] = var60;
var10006[1] = var58;
var10006[0] = var10001;
var2.g(var10006);
var3.c(new Object[]{3});
break label128;
} catch (IllegalArgumentException var54) {
break label129;
}
}
}
Object[] var10005 = new Object[]{null, null, var10};
var10005[1] = var60;
var10005[0] = var58;
var2.a_void_______(var10005);
var3.c(new Object[]{2});
break label128;
}
var3.b(new Object[]{var39 + " > Anchor", "unknown anchor; position was skipped", null});
}
} catch (Throwable var56) {
j(new Object[]{var56, var16});
var3.b(new Object[]{var39 + " > Position", d_String(new Object[]{var56, var18}), var56});
}
}
if (var40.has("Enabled")) {
try {
boolean var59 = MathUtil5.a_boolean________(new Object[]{this.a_String_(new Object[]{var40.get("Enabled"), var32}), var28});
if (var59 != var2.e_boolean(new Object[]{var34})) {
boolean var61 = var2.e_boolean(new Object[]{var34});
try {
var2.j(new Object[]{var30});
} catch (Throwable var50) {
j(new Object[]{var50, var16});
Object[] var63 = new Object[]{null, null, var50, var14};
var63[1] = var61;
var63[0] = var2;
boolean var62 = this.b_boolean_(var63);
String var49 = var62 ? "HUD lifecycle failed; previous state was restored" : "HUD lifecycle failed; state may be inconsistent";
var3.b(new Object[]{var39 + " > Enabled", var49, var50});
return;
}
}
var3.c(new Object[]{1});
} catch (Throwable var51) {
j(new Object[]{var51, var16});
var3.b(new Object[]{var39 + " > Enabled", d_String(new Object[]{var51, var18}), var51});
}
}
}
}
}
private boolean b_boolean_(Object[] var1) {
HudElement var5 = (HudElement)var1[0];
boolean var4 = (Boolean)var1[1];
Throwable var6 = (Throwable)var1[2];
long var2 = (Long)var1[3];
var2 = 96496729806863L ^ var2;
long var7 = var2 ^ 113891817421082L;
long var9 = var2 ^ 94173269318428L;
long var11 = var2 ^ 33340080713105L;
try {
if (var5.e_boolean(new Object[]{var9}) != var4) {
var5.j(new Object[]{var7});
}
return var5.e_boolean(new Object[]{var9}) == var4;
} catch (Throwable var15) {
j(new Object[]{var15, var11});
var6.addSuppressed(var15);
return false;
}
}
private void f(Object[] var1) {
JsonObject var5 = (JsonObject)var1[0];
Setting var2 = (Setting)var1[1];
String var8 = (String)var1[2];
Set var7 = (Set)var1[3];
RenderHelper11 var6 = (RenderHelper11)var1[4];
long var3 = (Long)var1[5];
var3 = 96496729806863L ^ var3;
long var9 = var3 ^ 107052151354858L;
long var11 = var3 ^ 18849944105048L;
long var13 = var3 ^ 70634159414031L;
long var15 = var3 ^ 128299157553096L;
if (var2 != null && var2.getName() != null && !var2.getName().isBlank()) {
String var18 = var2.getName();
if (!var7.add(var18)) {
var6.b(new Object[]{var8 + " > " + var18, "duplicate registered setting name", null});
} else if (var5.has(var18)) {
String var19 = var8 + " > " + var18;
try {
MathUtil5.a(new Object[]{var2, this.a_String_(new Object[]{var5.get(var18), var11}), var9});
var6.c(new Object[]{1});
} catch (Throwable var21) {
j(new Object[]{var21, var13});
var6.b(new Object[]{var19, d_String(new Object[]{var21, var15}), var21});
}
}
} else {
var6.a(new Object[]{var8, "an unnamed setting was skipped", null});
}
}
private void g(Object[] var1) {
JsonObject var2 = (JsonObject)var1[0];
Setting var7 = (Setting)var1[1];
String var5 = (String)var1[2];
RenderHelper11 var6 = (RenderHelper11)var1[3];
long var3 = (Long)var1[4];
var3 = 96496729806863L ^ var3;
long var8 = var3 ^ 121466085324506L;
long var10 = var3 ^ 111294525115929L;
long var12 = var3 ^ 89794695424734L;
if (var7 != null && var7.getName() != null && !var7.getName().isBlank()) {
String var15 = var5 + " > " + var7.getName();
if (var2.has(var7.getName())) {
var6.b(new Object[]{var15, "duplicate registered setting name", null});
} else {
try {
var2.addProperty(var7.getName(), this.b_String(new Object[]{var7, var8}));
var6.c(new Object[]{1});
} catch (Throwable var17) {
j(new Object[]{var17, var10});
var6.b(new Object[]{var15, d_String(new Object[]{var17, var12}), var17});
}
}
} else {
var6.a(new Object[]{var5, "an unnamed setting was skipped", null});
}
}
private JsonObject a_JsonObject(Object[] var1) {
String var2 = (String)var1[0];
RenderHelper11 var5 = (RenderHelper11)var1[1];
long var3 = (Long)var1[2];
var3 = 96496729806863L ^ var3;
long var6 = var3 ^ 44758310302231L;
if (var2 != null && !var2.isBlank()) {
if (var2.length() > 100000) {
var5.b(new Object[]{"Config", "downloaded config is too large", null});
return null;
} else if (this.c_boolean(new Object[]{var2, var6})) {
var5.b(new Object[]{"Config", "downloaded config is nested too deeply", null});
return null;
} else {
JsonObject var9;
try {
var9 = a.fromJson(var2, JsonObject.class);
} catch (Exception var8) {
var5.b(new Object[]{"Config", "downloaded config is not valid JSON", var8});
return null;
}
if (var9 == null) {
var5.b(new Object[]{"Config", "downloaded config contained JSON null", null});
return null;
} else {
return var9;
}
}
} else {
var5.b(new Object[]{"Config", "downloaded config was empty", null});
return null;
}
}
private boolean c_boolean(Object[] var1) {
String var4 = (String)var1[0];
Event.b();
int var6 = 0;
boolean var7 = false;
boolean var8 = false;
for (int var9 = 0; var9 < var4.length(); var9++) {
char var10 = var4.charAt(var9);
if (var7) {
if (var8) {
var8 = false;
} else if (var10 == '\\') {
var8 = true;
} else if (var10 == '"') {
var7 = false;
}
} else if (var10 == '"') {
var7 = true;
} else if (var10 == '{' || var10 == '[') {
if (++var6 > 64) {
return true;
}
} else if (var10 == '}' || var10 == ']') {
var6--;
}
}
return false;
}
private JsonObject b_JsonObject(Object[] var1) {
JsonElement var2 = (JsonElement)var1[0];
String var6 = (String)var1[1];
RenderHelper11 var3 = (RenderHelper11)var1[2];
if (var2 == null || var2.isJsonNull()) {
var3.b(new Object[]{var6, "section is null", null});
return null;
} else if (!var2.isJsonObject()) {
var3.b(new Object[]{var6, "section must be a JSON object", null});
return null;
} else {
return var2.getAsJsonObject();
}
}
private String a_String_(Object[] var1) {
JsonElement var2 = (JsonElement)var1[0];
if (var2 == null || var2.isJsonNull()) {
throw new IllegalArgumentException("value is null");
} else if (!var2.isJsonPrimitive()) {
throw new IllegalArgumentException("expected a single value");
} else {
return var2.getAsString();
}
}
private void h(Object[] var1) {
JsonObject var3 = (JsonObject)var1[0];
Set var2 = (Set)var1[1];
String var4 = (String)var1[2];
String var7 = (String)var1[3];
RenderHelper11 var8 = (RenderHelper11)var1[4];
Event.b();
for (Entry var11 : var3.entrySet()) {
if (!var2.contains(var11.getKey())) {
String var12 = var4.isEmpty() ? (String)var11.getKey() : var4 + " > " + (String)var11.getKey();
var8.a(new Object[]{var12, var7 + " is not available in this version; skipped", null});
}
}
}
private String b_String(Object[] var1) {
Setting var2 = (Setting)var1[0];
long var3 = (Long)var1[1];
var3 = 96496729806863L ^ var3;
long var5 = var3 ^ 54118292651812L;
if (var2 instanceof ColorSetting var18) {
Color var19 = (Color)var18.getValue();
if (var19 == null) {
throw new IllegalStateException("color is null");
} else {
return var19.getRed() + "." + var19.getGreen() + "." + var19.getBlue() + "." + var19.getAlpha();
}
} else if (var2 instanceof KeybindSetting var17) {
if (var17.getValue() == null) {
throw new IllegalStateException("bind is null");
} else {
return var17.getValue() + "." + var17.isToggleMode();
}
} else if (var2 instanceof MultiSetting var16) {
StringBuilder var9 = new StringBuilder();
for (String var13 : var16.getOptions()) {
if (!var13.isEmpty()) {
var9.append(var13).append(".").append(var16.isSelected(new Object[]{var13, var5})).append("&");
}
}
return var9.toString();
} else if (var2 instanceof RangeSetting var15) {
return var15.getLow() + "|" + var15.getHigh();
} else {
Object var8 = var2.getValue();
if (var8 == null) {
throw new IllegalStateException("value is null");
} else {
return var8.toString();
}
}
}
private static void i(Object[] var0) {
RenderHelper11 var1 = (RenderHelper11)var0[0];
long var2 = (Long)var0[1];
var2 = 96496729806863L ^ var2;
long var4 = var2 ^ 72704133099798L;
long var6 = var2 ^ 12490493998071L;
if (!"load".equals(var1.a) && (var1.a_boolean__________________________________________(new Object[]{var4}) || var1.e != 0)) {
Runnable var9 = () -> {
if (Prestige.v != null) {
String var8 = "load".equals(var1.a) ? "loaded" : "saved";
TpsTimer var10000 = Prestige.v;
String var10001 = "Config " + var8;
int var10002 = var1.d;
int var10003 = var1.e;
int var10004 = var1.b;
Object[] var10008 = new Object[]{null, null, null, var8, 114751876588817L};
var10008[2] = var10004;
var10008[1] = var10003;
var10008[0] = var10002;
String var9x = c_String(var10008);
long var10x = m;
Object[] var10007 = new Object[]{
null,
null,
null,
var1.d > 0 ? NotificationType.ERROR : (var1.e > 0 ? NotificationType.WARNING : NotificationType.SUCCESS),
104881728073391L
};
var10007[2] = var10x;
var10007[1] = var9x;
var10007[0] = var10001;
var10000.a(var10007);
}
};
try {
MinecraftClient var10 = MinecraftClient.getInstance();
if (var10 != null && !var10.isOnThread()) {
var10.execute(var9);
} else {
var9.run();
}
} catch (Throwable var11) {
j(new Object[]{var11, var6});
}
}
}
public static String c_String(Object[] var0) {
int var2 = (Integer)var0[0];
int var6 = (Integer)var0[1];
int var1 = (Integer)var0[2];
String var5 = (String)var0[3];
return var2 + " errors, " + var6 + " skipped, " + var1 + " " + var5;
}
private static String d_String(Object[] var0) {
Throwable var3 = (Throwable)var0[0];
Event.b();
String var5 = var3.getMessage();
return var5 != null && !var5.isBlank() ? var5 : var3.getClass().getSimpleName();
}
private static void j(Object[] var0) {
Throwable var1 = (Throwable)var0[0];
if (var1 instanceof ThreadDeath var6) {
throw var6;
} else if (var1 instanceof VirtualMachineError var5) {
throw var5;
} else {
if (var1 instanceof InterruptedException) {
Thread.currentThread().interrupt();
}
}
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
private static Throwable a(Throwable var0) {
return var0;
}
}
@@ -0,0 +1,162 @@
package dev.zprestige.prestige.config;
import dev.zprestige.prestige.client.Prestige;
import java.io.IOException;
import java.lang.invoke.CallSite;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.invoke.MutableCallSite;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import net.minecraft.resource.InputSupplier;
import net.minecraft.resource.Resource;
import net.minecraft.resource.ResourcePack;
import net.minecraft.resource.ResourcePackInfo;
import net.minecraft.resource.ResourceType;
import net.minecraft.resource.ResourcePack.ResultConsumer;
import net.minecraft.resource.metadata.ResourceMetadataSerializer;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.Nullable;
public class ConfigUtil implements ResourcePack {
@Nullable
@Override
public InputSupplier openRoot(String[] segments) {
return null;
}
@Nullable
@Override
public InputSupplier open(ResourceType type, Identifier id) {
return null;
}
@Override
public void findResources(ResourceType type, String namespace, String prefix, ResultConsumer consumer) {
}
@Override
public Set getNamespaces(ResourceType type) {
return null;
}
@Nullable
@Override
public Object parseMetadata(ResourceMetadataSerializer metadataSerializer) throws IOException {
return null;
}
@Override
public String getId() {
return "Prestige";
}
@Override
public Optional getKnownPackInfo() {
return ResourcePack.super.getKnownPackInfo();
}
@Override
public ResourcePackInfo getInfo() {
return null;
}
@Override
public void close() {
}
public static Resource a(Object[] var0) {
Identifier var1 = (Identifier)var0[0];
return new Resource(new ConfigUtil(), () -> Prestige.class.getClassLoader().getResourceAsStream("assets/prestige/" + var1.getPath()));
}
public static Resource b(Object[] var0) {
String var1 = (String)var0[0];
return new Resource(new ConfigUtil(), () -> Prestige.class.getClassLoader().getResourceAsStream(var1));
}
public static InputSupplier a_class_7367(Object[] var0) {
String var1 = (String)var0[0];
return () -> Prestige.class.getClassLoader().getResourceAsStream(var1);
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,89 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.lwjgl.opengl.GL11;
public record BoolData(boolean bP, boolean bQ) implements Uniform {
@Override
public void a(RenderPass var1) {
GL11.glDepthMask(this.bP);
}
@Override
public void a() {
if (this.bQ != this.bP) {
GL11.glDepthMask(this.bQ);
}
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,99 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL14;
public record BoolData2(boolean b1, boolean b2) implements Uniform {
@Override
public void a(RenderPass var1) {
if (this.b1) {
GL11.glEnable(3042);
GL14.glBlendFuncSeparate(770, 771, 1, 771);
} else {
GL11.glDisable(3042);
}
}
@Override
public void a() {
if (this.b2 != this.b1) {
if (this.b2) {
GL11.glEnable(3042);
} else {
GL11.glDisable(3042);
}
}
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import java.util.ArrayList;
import net.minecraft.util.math.Vec3d;
public record BoolData3(ArrayList<Vec3d> b9, boolean b_) {
}
@@ -0,0 +1,99 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL14;
public record BoolIntData(boolean bH, boolean bI, int bJ, int bK, int bL, int bM) implements Uniform {
@Override
public void a(RenderPass var1) {
if (this.bH) {
GL11.glEnable(3042);
GL14.glBlendFuncSeparate(this.bJ, this.bK, this.bL, this.bM);
} else {
GL11.glDisable(3042);
}
}
@Override
public void a() {
if (this.bI != this.bH) {
if (this.bI) {
GL11.glEnable(3042);
} else {
GL11.glDisable(3042);
}
}
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,103 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.lwjgl.opengl.GL11;
public record BoolIntData2(boolean bU, boolean bV, int bW, int bX, int bY, int bZ) implements Uniform {
@Override
public void a(RenderPass var1) {
if (this.bU) {
GL11.glEnable(3089);
GL11.glScissor(this.bW, this.bX, this.bY, this.bZ);
} else {
GL11.glDisable(3089);
}
}
@Override
public void a() {
if (this.bV != this.bU) {
if (this.bV) {
GL11.glEnable(3089);
} else {
GL11.glDisable(3089);
}
}
}
@Override
public boolean a_boolean() {
return true;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,8 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.GpuBuffer;
import dev.zprestige.prestige.render.RenderHelper31;
import java.util.concurrent.atomic.AtomicReference;
public record BufferData(GpuBuffer au, GpuBuffer av, RenderHelper31 aw, AtomicReference ax) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.GpuBuffer;
public record BufferQuadIntData(GpuBuffer cc, IntBoolData cd, int ce, long cf) {
}
@@ -0,0 +1,131 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.world.WorldContract;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.minecraft.client.render.VertexConsumer;
public record ConsumerData(WorldContract bp) implements VertexConsumer {
@Override
public VertexConsumer vertex(float x, float y, float z) {
WorldContract var10000 = this.bp;
Object[] var10006 = new Object[]{null, null, null, 65484385065975L};
var10006[2] = z;
var10006[1] = y;
var10006[0] = x;
var10000.c_WorldContract(var10006);
return this;
}
@Override
public VertexConsumer color(int red, int green, int blue, int alpha) {
WorldContract var10000 = this.bp;
Object[] var10004 = new Object[]{null, 106573078251021L};
var10004[0] = -16776961;
var10000.e(var10004);
return this;
}
@Override
public VertexConsumer color(int argb) {
WorldContract var10000 = this.bp;
Object[] var10004 = new Object[]{null, 106573078251021L};
var10004[0] = -16776961;
var10000.e(var10004);
return this;
}
@Override
public VertexConsumer lineWidth(float width) {
return null;
}
@Override
public VertexConsumer texture(float u, float v) {
this.bp.b_WorldContract(new Object[]{new float[]{u, v}, 118034685045795L});
return this;
}
@Override
public VertexConsumer overlay(int u, int v) {
return this;
}
@Override
public VertexConsumer light(int u, int v) {
return this;
}
@Override
public VertexConsumer normal(float x, float y, float z) {
return this;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,87 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.Consumer;
public record ConsumerData2(Consumer b4) implements Uniform {
@Override
public void a(RenderPass var1) {
this.b4.accept(IntData.a(var1.d.a(new Object[0])));
}
@Override
public boolean a_boolean() {
return true;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.BlockPos;
public record DoubleBoolData(LivingEntity aG, double aH, double aI, double aJ, boolean aK, BlockPos aL, boolean aM) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos;
public record DoubleData(BlockPos al, BlockHitResult am, double an) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderContract4;
public record DrawFloatData(RenderContract4 ca, float cb) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import net.minecraft.entity.Entity;
public record FloatData(Entity ag, float ah, float ai) {
}
@@ -0,0 +1,4 @@
package dev.zprestige.prestige.data;
public record FloatDoubleIntData(float bt, double bu, int bv, double bw) {
}
@@ -0,0 +1,102 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.FontRenderer;
import dev.zprestige.prestige.render.RenderHelper22;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Shader;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL13C;
import org.lwjgl.opengl.GL20;
public record FontFloatData(FontRenderer bc, float bd, float be) implements Uniform {
private static final int a;
@Override
public void a(RenderPass var1) {
GL13C.glActiveTexture(33984);
GL11.glBindTexture(3553, this.bc.a);
GL20.glUniform2f(a, this.bd, this.be);
}
static {
Object var11 = new String[]{"msdfTexture", "unitRange"};
a = RenderHelper22.e.d(new Object[]{((Object[])var11)[1], 0L});
Shader var10000 = RenderHelper22.e;
Object var10001 = ((Object[])var11)[0];
Object[] var10005 = new Object[]{null, null, 0L};
var10005[1] = 0;
var10005[0] = var10001;
var10000.a_void_____________________________(var10005);
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,4 @@
package dev.zprestige.prestige.data;
public record IntBoolData(int cg, int ch, int ci, boolean cj) {
}
@@ -0,0 +1,106 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.lwjgl.opengl.GL11;
public record IntBoolData2(int bR, boolean bS, boolean bT) implements Uniform {
public IntBoolData2(int var1, boolean var2) {
this(var1, var2, var2);
}
@Override
public void a(RenderPass var1) {
if (this.bS) {
GL11.glEnable(this.bR);
} else {
GL11.glDisable(this.bR);
}
}
@Override
public void a() {
if (this.bT != this.bS) {
if (this.bT) {
GL11.glEnable(this.bR);
} else {
GL11.glDisable(this.bR);
}
}
}
@Override
public boolean a_boolean() {
return true;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,153 @@
package dev.zprestige.prestige.data;
import java.awt.Color;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import org.lwjgl.opengl.GL20;
public record IntData(int bz) {
private static final Map a = new HashMap();
public static IntData a(int var0) {
return new IntData(var0);
}
private int a(String var1) {
return (Integer)((Map)a.computeIfAbsent(this.bz, lpL401_0 -> new HashMap<>())).computeIfAbsent(var1, lpL400_0 -> GL20.glGetUniformLocation(this.bz, ((java.lang.String)lpL400_0)));
}
public IntData a(String var1, int var2) {
GL20.glUniform1i(this.a(var1), var2);
return this;
}
public IntData a(String var1, int var2, int var3) {
GL20.glUniform2i(this.a(var1), var2, var3);
return this;
}
public IntData a(String var1, int var2, int var3, int var4) {
GL20.glUniform3i(this.a(var1), var2, var3, var4);
return this;
}
public IntData a(String var1, int var2, int var3, int var4, int var5) {
GL20.glUniform4i(this.a(var1), var2, var3, var4, var5);
return this;
}
public IntData a(String var1, float var2) {
GL20.glUniform1f(this.a(var1), var2);
return this;
}
public IntData a(String var1, float var2, float var3) {
GL20.glUniform2f(this.a(var1), var2, var3);
return this;
}
public IntData a(String var1, float var2, float var3, float var4) {
GL20.glUniform3f(this.a(var1), var2, var3, var4);
return this;
}
public IntData a(String var1, float var2, float var3, float var4, float var5) {
GL20.glUniform4f(this.a(var1), var2, var3, var4, var5);
return this;
}
public IntData a(String var1, boolean var2, float[] var3) {
GL20.glUniformMatrix4fv(this.a(var1), var2, var3);
return this;
}
public IntData b(String var1, boolean var2, float[] var3) {
GL20.glUniformMatrix3fv(this.a(var1), var2, var3);
return this;
}
public IntData c(String var1, boolean var2, float[] var3) {
GL20.glUniformMatrix2fv(this.a(var1), var2, var3);
return this;
}
public IntData a(String var1, Color var2) {
GL20.glUniform4f(this.a(var1), var2.getRed() / 255.0F, var2.getGreen() / 255.0F, var2.getBlue() / 255.0F, var2.getAlpha() / 255.0F);
return this;
}
public IntData b(String var1, float var2, float var3, float var4, float var5) {
GL20.glUniform4f(this.a(var1), var2, var3, var4, var5);
return this;
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,89 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.lwjgl.opengl.GL11;
public record IntData2(int bN, int bO) implements Uniform {
@Override
public void a(RenderPass var1) {
GL11.glDepthFunc(this.bN);
}
@Override
public void a() {
if (this.bO != this.bN) {
GL11.glDepthFunc(this.bO);
}
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,4 @@
package dev.zprestige.prestige.data;
public record IntData3(int b5, int b6, int b7, int b8) {
}
@@ -0,0 +1,86 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.DrawContext;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.function.IntSupplier;
public record IntSupplierData(IntSupplier b3) implements Uniform {
public IntSupplierData(int var1) {
this(() -> var1);
}
@Override
public void a(DrawContext var1) {
var1.a(new Object[]{this.b3.getAsInt()});
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.registry.RegistryKey;
import net.minecraft.world.World;
public record LongData(RegistryKey<World> bn, long bo) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.BlockPos;
public record LongData2(BlockPos aj, long ak) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import net.minecraft.network.packet.Packet;
public record LongData3(Packet<?> as, long at) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.BlockPos;
public record LongData4(BlockPos ay, long az) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.client.render.Camera;
import org.joml.Matrix4f;
public record MatrixCameraData(Matrix4f bA, Matrix4f bB, Camera bC) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import com.google.gson.JsonElement;
import dev.zprestige.prestige.Module;
public record ModuleStringBoolData(Module aC, String aD, JsonElement aE, boolean aF) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.Module;
public record ModuleStringFloatData(Module a_, String ba, float bb) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.RenderPass;
import java.util.function.Consumer;
public record PassConsumerData(RenderPass bx, Consumer by) {
}
@@ -0,0 +1,82 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.DrawContext;
import dev.zprestige.prestige.render.Shader;
import dev.zprestige.prestige.render.Uniform;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public record ShaderData(Shader b0) implements Uniform {
@Override
public void a(DrawContext var1) {
var1.e(new Object[]{this.b0});
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,114 @@
package dev.zprestige.prestige.data;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
public record StringData(Class<?> bi, String bj, Class<?> bk, Class<?>[] bl, Class<?> bm) {
@Override
public boolean equals(Object var1) {
if (this == var1) {
return true;
} else if (var1 != null && this.getClass() == var1.getClass()) {
StringData var5 = (StringData)var1;
if (!this.bi.equals(var5.bi)) {
return false;
} else if (!this.bm.equals(var5.bm)) {
return false;
} else if (!this.bj.equals(var5.bj)) {
return false;
} else if (!this.bk.equals(var5.bk)) {
return false;
} else if (this.bl.length != var5.bl.length) {
return false;
} else {
for (int var6 = 0; var6 < this.bl.length; var6++) {
if (!this.bl[var6].equals(var5.bl[var6])) {
return false;
}
}
return true;
}
} else {
return false;
}
}
@Override
public int hashCode() {
int var3 = this.bi.hashCode();
var3 = 31 * var3 + this.bj.hashCode();
var3 = 31 * var3 + this.bk.hashCode();
var3 = 31 * var3 + this.bm.hashCode();
return 31 * var3 + Arrays.hashCode((Object[])this.bl);
}
private static Field a(Class var0, String var1, Class var2) {
for (Field var6 : var0.getDeclaredFields()) {
if (var6.getName().equals(var1) && var6.getType() == var2) {
return var6;
}
}
return null;
}
private static Field b(Class var0, String var1, Class var2) {
Field var3 = a(var0, var1, var2);
if (var3 != null) {
return var3;
} else {
Class[] var4 = var0.getInterfaces();
if (var4 != null) {
for (int var5 = 0; var5 < var4.length; var5++) {
var3 = b(var4[var5], var1, var2);
if (var3 != null) {
return var3;
}
}
}
return null;
}
}
private static Method a(Class var0, String var1, Class var2, int var3, Class[] var4) {
label33:
for (Method var8 : var0.getDeclaredMethods()) {
if (var8.getName().equals(var1) && var8.getReturnType() == var2) {
Class[] var9 = var8.getParameterTypes();
if (var9.length == var3) {
for (int var10 = 0; var10 < var3; var10++) {
if (var9[var10] != var4[var10]) {
continue label33;
}
}
return var8;
}
}
}
return null;
}
private static Method b(Class var0, String var1, Class var2, int var3, Class[] var4) {
Method var5 = a(var0, var1, var2, var3, var4);
if (var5 != null) {
return var5;
} else {
Class[] var6 = var0.getInterfaces();
if (var6 != null) {
for (int var7 = 0; var7 < var6.length; var7++) {
var5 = b(var6[var7], var1, var2, var3, var4);
if (var5 != null) {
return var5;
}
}
}
return null;
}
}
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
public record VecBoolData(BlockPos c, BlockPos d, Vec3d e, BlockPos f, BlockPos g, Vec3d h, boolean i) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
public record VecBoolData2(BlockPos l, BlockPos m, Vec3d n, boolean o, BlockPos p, BlockPos q, Vec3d r) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
public record VecBoolIntData(BlockPos s, BlockPos t, Vec3d u, boolean v, int w, double x, boolean y, boolean z, int aa, double ab, double ac, double ad) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
public record VecData(BlockPos j, Vec3d k) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
public record VecData2(BlockPos ae, Vec3d af) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import net.minecraft.entity.vehicle.TntMinecartEntity;
import net.minecraft.util.math.Vec3d;
public record VecDoubleData(TntMinecartEntity ao, Vec3d ap, double aq, double ar) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.Vec3d;
public record VecIntData(Vec3d a, int b) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.Vec3d;
public record VecIntData2(Vec3d aA, int aB) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import net.minecraft.util.math.Vec3d;
public record VecIntDoubleData(Vec3d bq, int br, double bs) {
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.DrawMode;
import org.joml.Vector4f;
public record VectorData(Vector4f bD, DrawMode bE) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import org.joml.Vector4f;
public record VectorFloatData(Vector4f bF, float bG) {
}
@@ -0,0 +1,6 @@
package dev.zprestige.prestige.data;
import dev.zprestige.prestige.render.VertexFormat;
public record VertexIntData(VertexFormat bf, int bg, int bh) {
}
@@ -0,0 +1,197 @@
package dev.zprestige.prestige.engine;
import dev.zprestige.prestige.ui.DevCmd;
import dev.zprestige.prestige.ui.bridge.Bridge;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.world.CreateWorldScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.util.ScreenshotRecorder;
/**
* Dev/test driver for the game hooks. Inactive unless -Dprestige.engine.cmd=&lt;file&gt; is set (gradle: -PengineCmd=&lt;file&gt;).
* The file is polled every client tick; its lines are queued and executed one per tick:
* <pre>
* wait &lt;ticks&gt; report listeners [OwnerSimpleName]
* loadtargets enable|disable|toggle &lt;module&gt;
* set &lt;module&gt;|&lt;setting&gt;|&lt;value&gt; get &lt;module&gt;|&lt;setting&gt; modstate &lt;module&gt;
* newworld &lt;name&gt; world &lt;name&gt; server &lt;command&gt; (integrated server command, no cheats needed)
* shot &lt;file&gt; screen exit
* </pre>
*/
public final class EngineDev implements ClientModInitializer {
private static final String CMD = System.getProperty("prestige.engine.cmd");
private static final List<String> QUEUE = new ArrayList<>();
private static int waitTicks, newWorldStage;
private static String newWorldName;
private static long reportEvery = Long.getLong("prestige.engine.report", 0L) * 20L, ticks;
@Override public void onInitializeClient() {
if (CMD == null && reportEvery == 0) return;
ClientTickEvents.END_CLIENT_TICK.register(EngineDev::tick);
System.out.println("[Engine] dev driver active: " + CMD);
}
private static void log(String s) { System.out.println("[Engine] " + s); }
static void tick(MinecraftClient mc) {
try {
ticks++;
if (reportEvery > 0 && ticks % reportEvery == 0) log(EngineState.details());
if (CMD == null) return;
Path p = Path.of(CMD);
if (Files.exists(p)) { QUEUE.addAll(Files.readAllLines(p)); Files.delete(p); }
if (newWorldStage > 0) { newWorld(mc); return; }
if (waitTicks > 0) { waitTicks--; return; }
if (QUEUE.isEmpty()) return;
String l = QUEUE.remove(0).trim();
if (l.isEmpty() || l.startsWith("#")) return;
run(mc, l);
} catch (Throwable t) {
log("command failed: " + t);
t.printStackTrace(System.out);
}
}
private static void run(MinecraftClient mc, String line) throws Exception {
String cmd = line.contains(" ") ? line.substring(0, line.indexOf(' ')) : line;
String arg = line.length() > cmd.length() ? line.substring(cmd.length() + 1).trim() : "";
switch (cmd) {
case "wait" -> waitTicks = Integer.parseInt(arg);
case "report" -> log(EngineState.details());
case "listeners" -> {
String text = DevCmd.listeners();
if (!arg.isEmpty()) {
StringBuilder sb = new StringBuilder("LISTENERS owned by " + arg + ":");
for (String s : text.split("\n")) if (s.contains(arg) && s.startsWith(" ")) sb.append("\n").append(s);
text = sb.toString();
}
log(text);
}
case "loadtargets" -> {
ClassLoader cl = EngineDev.class.getClassLoader();
List<String> missing = new ArrayList<>();
var in = EngineDev.class.getClassLoader().getResourceAsStream("prestige-engine/targets.named.list");
for (String t : new String(in.readAllBytes()).split("\\R")) {
if (t.isBlank()) continue;
try { Class.forName(t.trim(), false, cl); } catch (Throwable e) { missing.add(t + " (" + e + ")"); }
}
log("loadtargets: transformed=" + EngineState.transformed.size() + " failed=" + missing);
}
case "enable", "disable", "toggle" -> {
Bridge.LiveModule m = Bridge.byName(arg);
if (m == null) { log("no such module: " + arg); return; }
boolean target = cmd.equals("toggle") ? !m.enabled() : cmd.equals("enable");
m.setEnabled(target);
log("module " + m.name + " enabled=" + m.enabled());
}
case "set" -> {
String[] a = arg.split("\\|", 3);
Bridge.LiveModule m = Bridge.byName(a[0]);
Bridge.LiveSetting s = m == null ? null : m.setting(a[1]);
if (s == null) { log("no such setting: " + arg); return; }
Object cur = s.value(), v;
if (cur instanceof Boolean) v = Boolean.parseBoolean(a[2]);
else if (cur instanceof Integer) v = Integer.parseInt(a[2]);
else if (cur instanceof Float) v = Float.parseFloat(a[2]);
else if (cur instanceof Double) v = Double.parseDouble(a[2]);
else v = a[2];
s.set(v);
log("set " + a[0] + "." + a[1] + " " + cur + " -> " + s.value() + " (" + s.type + ")");
}
case "get" -> {
String[] a = arg.split("\\|", 2);
Bridge.LiveModule m = Bridge.byName(a[0]);
if (m == null) { log("no such module: " + a[0]); return; }
if (a.length == 1) {
StringBuilder sb = new StringBuilder(m.name + " enabled=" + m.enabled() + " settings:");
for (Bridge.LiveSetting s : m.settings()) sb.append("\n ").append(s.name).append(" = ").append(s.value()).append(" [").append(s.type).append("]");
log(sb.toString());
} else {
Bridge.LiveSetting s = m.setting(a[1]);
log(a[0] + "." + a[1] + " = " + (s == null ? "<none>" : s.value()));
}
}
case "modstate" -> {
Bridge.LiveModule m = Bridge.byName(arg);
if (m == null) { log("no such module: " + arg); return; }
String owner = m.handle.getClass().getSimpleName();
int n = 0;
for (String s : DevCmd.listeners().split("\n")) if (s.startsWith(" ") && s.contains(owner)) n++;
log("modstate " + m.name + " class=" + owner + " enabled=" + m.enabled() + " eventTypesWithListener=" + n
+ " world=" + (mc.world != null));
}
case "server" -> {
var server = mc.getServer();
if (server == null) { log("no integrated server"); return; }
server.execute(() -> server.getCommandManager().parseAndExecute(server.getCommandSource(), arg));
log("server command: " + arg);
}
case "newworld" -> { newWorldName = arg.isEmpty() ? "engine-test" : arg; newWorldStage = 1; }
case "world" -> {
mc.createIntegratedServerLoader().start(arg, () -> log("world load cancelled/failed"));
log("loading world " + arg);
}
case "screen" -> log("screen=" + (mc.currentScreen == null ? null : mc.currentScreen.getClass().getName()) + " world=" + (mc.world != null)
+ " player=" + (mc.player != null));
case "shot" -> {
Path out = Path.of(arg).toAbsolutePath();
Files.createDirectories(out.getParent());
ScreenshotRecorder.takeScreenshot(mc.getFramebuffer(), img -> {
try { img.writeTo(out); log("shot written " + out); } catch (Exception e) { log("shot failed " + e); } finally { img.close(); }
});
}
case "exit" -> { log("final: " + EngineState.details()); mc.scheduleStop(); }
default -> log("unknown command: " + line);
}
}
/** Creates a world through the vanilla Create World screen (default settings) and waits until the player exists. */
private static void newWorld(MinecraftClient mc) {
Screen s = mc.currentScreen;
switch (newWorldStage) {
case 1 -> { CreateWorldScreen.show(mc, () -> {}); newWorldStage = 2; waitTicks = 0; newWorldDelay = 40; }
case 2 -> {
if (newWorldDelay-- > 0) return;
if (s instanceof CreateWorldScreen) {
for (var c : s.children()) {
if (c instanceof ButtonWidget b && b.getMessage().getString().toLowerCase().contains("create new world")) {
try { ((net.minecraft.client.gui.widget.TextFieldWidget) findName(s)).setText(newWorldName); } catch (Throwable t) { log("name field: " + t); }
b.onPress(null);
log("create world pressed: " + newWorldName);
newWorldStage = 3;
newWorldDelay = 20 * 120;
return;
}
}
log("create button not found; screen children=" + s.children().size());
newWorldStage = 0;
} else { log("expected CreateWorldScreen, got " + (s == null ? null : s.getClass().getName())); newWorldStage = 0; }
}
case 3 -> {
if (mc.world != null && mc.player != null) { log("world ready (player in world)"); newWorldStage = 0; }
else if (newWorldDelay-- < 0) { log("world creation timed out"); newWorldStage = 0; }
}
default -> newWorldStage = 0;
}
}
private static int newWorldDelay;
private static Object findName(Screen s) {
// the world name field is the first TextFieldWidget in the tree of the create-world screen
List<Object> todo = new ArrayList<>(s.children());
for (int i = 0; i < todo.size(); i++) {
Object o = todo.get(i);
if (o instanceof net.minecraft.client.gui.widget.TextFieldWidget t) return t;
if (o instanceof net.minecraft.client.gui.ParentElement pe) todo.addAll(pe.children());
}
throw new IllegalStateException("world name field not found");
}
}
@@ -0,0 +1,190 @@
package dev.zprestige.prestige.engine;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Supplier;
import net.fabricmc.loader.api.FabricLoader;
import net.lenni0451.classtransform.TransformerManager;
import net.lenni0451.classtransform.utils.FailStrategy;
import net.lenni0451.classtransform.utils.tree.IClassProvider;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.AnnotationNode;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.FieldInsnNode;
import org.objectweb.asm.tree.FrameNode;
import org.objectweb.asm.tree.InsnList;
import org.objectweb.asm.tree.InsnNode;
import org.objectweb.asm.tree.JumpInsnNode;
import org.objectweb.asm.tree.LabelNode;
import org.objectweb.asm.tree.LdcInsnNode;
import org.objectweb.asm.tree.MethodInsnNode;
import org.objectweb.asm.tree.MethodNode;
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
/**
* Applies the ClassTransform transformers of the Prestige client (the original native loader installed them through an agent)
* to the Minecraft classes, from inside Sponge Mixin: for every target class one anchor mixin (dev.zprestige.prestige.engine.mixin.N../I..)
* makes Mixin call {@link #preApply}, which runs the ClassTransform transformation on the live Mixin ClassNode.
*
* Namespaces: the transformer classes reference Minecraft by Yarn names in strings (annotation values) and by the names of the
* jar variant in bytecode. In the Gradle dev client the runtime names are Yarn ("named": the mapper is void), in a production
* install they are Intermediary (the bundled Yarn tiny maps the Yarn strings to Intermediary).
*/
public final class EnginePlugin implements IMixinConfigPlugin {
private static final String HOOKS = "Lnet/lenni0451/classtransform/annotations/injection/";
private TransformerManager manager;
private String namespace = "named";
private int expectedTargets;
@Override public void onLoad(String mixinPackage) {
try {
String forced = System.getProperty("prestige.engine.namespace"); // test override ("named" / "intermediary")
if (forced != null) namespace = forced;
else try { namespace = FabricLoader.getInstance().getMappingResolver().getCurrentRuntimeNamespace(); } catch (Throwable t) { namespace = "named"; }
boolean named = namespace.equals("named");
ClassLoader loader = EnginePlugin.class.getClassLoader();
byte[] tiny = named ? null : resource("prestige-engine/mappings.tiny");
List<String> transformers = lines("prestige-engine/transformers.list");
expectedTargets = lines(named ? "prestige-engine/targets.named.list" : "prestige-engine/targets.intermediary.list").size();
manager = new TransformerManager(new ResourceClassProvider(loader, new HashSet<>(transformers)), tiny == null ? null : new ByteArrayInputStream(tiny));
manager.setFailStrategy(FailStrategy.CANCEL);
for (String name : transformers) manager.addTransformer(name);
if (manager.getTransformedClasses().size() != expectedTargets)
throw new IllegalStateException("Expected " + expectedTargets + " Minecraft targets, got " + manager.getTransformedClasses().size());
EngineState.installed = true;
System.out.println("[Engine] namespace=" + namespace + " REGISTERED=" + transformers.size() + " TARGETS=" + expectedTargets);
} catch (Exception e) {
throw new IllegalStateException("Unable to prepare the Prestige game hooks", e);
}
}
/** Class bytes from the mod class path; the callbacks (void CInject/CModifyArgs handlers) get the readiness gate on the way. */
private static final class ResourceClassProvider implements IClassProvider {
private final ClassLoader loader;
private final Set<String> transformers;
ResourceClassProvider(ClassLoader loader, Set<String> transformers) { this.loader = loader; this.transformers = transformers; }
@Override public byte[] getClass(String name) throws ClassNotFoundException {
String path = name.replace('.', '/') + ".class";
try (InputStream in = loader.getResourceAsStream(path)) {
if (in == null) throw new ClassNotFoundException(name + " (missing resource " + path + ")");
byte[] bytes = in.readAllBytes();
return transformers.contains(name.replace('/', '.')) ? gate(bytes) : bytes;
} catch (IOException e) {
throw new ClassNotFoundException(name, e);
}
}
@Override public Map<String, Supplier<byte[]>> getAllClasses() {
throw new UnsupportedOperationException("Wildcard class enumeration is not used by the engine");
}
/** Prepends "if (!EngineState.ready) return; EngineState.onCallback(id);" to every void callback. */
private static byte[] gate(byte[] bytes) {
ClassNode node = new ClassNode();
new ClassReader(bytes).accept(node, 0);
int count = 0;
for (MethodNode method : node.methods) {
if (!hasHook(method)) continue;
if (Type.getReturnType(method.desc).getSort() != Type.VOID) {
System.out.println("[Engine] note: non-void callback not gated: " + node.name + "." + method.name);
continue;
}
InsnList gate = new InsnList();
LabelNode run = new LabelNode();
gate.add(new FieldInsnNode(Opcodes.GETSTATIC, "dev/zprestige/prestige/engine/EngineState", "ready", "Z"));
gate.add(new JumpInsnNode(Opcodes.IFNE, run));
gate.add(new InsnNode(Opcodes.RETURN));
gate.add(run);
gate.add(new FrameNode(Opcodes.F_SAME, 0, null, 0, null));
gate.add(new LdcInsnNode(node.name.substring(node.name.lastIndexOf('/') + 1) + "." + method.name));
gate.add(new MethodInsnNode(Opcodes.INVOKESTATIC, "dev/zprestige/prestige/engine/EngineState", "onCallback", "(Ljava/lang/String;)V", false));
method.instructions.insert(gate);
count++;
}
if (count == 0) return bytes;
ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS);
node.accept(writer);
return writer.toByteArray();
}
private static boolean hasHook(MethodNode m) {
return hasHook(m.visibleAnnotations) || hasHook(m.invisibleAnnotations);
}
private static boolean hasHook(List<AnnotationNode> list) {
if (list == null) return false;
for (AnnotationNode a : list)
if (a.desc.equals(HOOKS + "CInject;") || a.desc.equals(HOOKS + "CModifyArgs;")) return true;
return false;
}
}
private static byte[] resource(String name) throws IOException {
try (InputStream in = EnginePlugin.class.getClassLoader().getResourceAsStream(name)) {
if (in == null) throw new IllegalStateException("Missing engine resource: " + name);
return in.readAllBytes();
}
}
private static List<String> lines(String name) throws IOException {
return new String(resource(name), StandardCharsets.UTF_8).lines().map(String::trim).filter(s -> !s.isEmpty()).toList();
}
@Override public void preApply(String targetName, ClassNode target, String mixin, IMixinInfo info) {
if (!manager.getTransformedClasses().contains(targetName)) throw new IllegalStateException("Unexpected target: " + targetName);
if (!EngineState.transformed.add(targetName)) throw new IllegalStateException("Duplicate transformation: " + targetName);
// ClassTransform parses the bytes it is given; hand it a copy but let its output land in the LIVE Mixin node, so the method
// nodes Mixin (and MixinExtras) already reference stay valid.
ClassWriter writer = new ClassWriter(0);
target.accept(writer);
ClassNode[] liveTarget = {target};
manager.addRawTransformer(targetName, (engine, parsed) -> {
if (liveTarget[0] == null) return parsed;
if (!parsed.name.equals(liveTarget[0].name)) throw new IllegalStateException("Unexpected target for " + targetName);
ClassNode live = liveTarget[0];
liveTarget[0] = null;
return live;
});
try {
byte[] verified = manager.transform(targetName, writer.toByteArray(), true);
if (verified == null) throw new IllegalStateException("Transformation failed for " + targetName + "; see ClassTransform diagnostics");
// the transformed live node needs new max stack/locals: take them from the re-serialised class
ClassNode calculated = new ClassNode();
new ClassReader(verified).accept(calculated, ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES);
for (MethodNode method : target.methods) {
MethodNode sizing = calculated.methods.stream().filter(m -> m.name.equals(method.name) && m.desc.equals(method.desc)).findFirst().orElseThrow();
method.maxLocals = sizing.maxLocals;
method.maxStack = sizing.maxStack;
}
} finally {
liveTarget[0] = null;
}
System.out.println("[Engine] TRANSFORMED=" + targetName);
}
/** The anchor mixins for the runtime namespace (Yarn "N" set in the dev client, Intermediary "I" set in production). */
@Override public List<String> getMixins() {
String prefix = namespace.equals("named") ? "N" : "I";
List<String> out = new ArrayList<>();
for (int i = 0; i < expectedTargets; i++) out.add(String.format("%s%02d", prefix, i));
return out;
}
@Override public String getRefMapperConfig() { return null; }
@Override public boolean shouldApplyMixin(String target, String mixin) { return true; }
@Override public void acceptTargets(Set<String> own, Set<String> other) {}
@Override public void postApply(String target, ClassNode node, String mixin, IMixinInfo info) {}
}
@@ -0,0 +1,74 @@
package dev.zprestige.prestige.engine;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.LongAdder;
/**
* Shared state of the game-hook engine. Loaded by the Mixin config plugin (very early) and referenced from the gate that is
* injected into every ClassTransform callback, so it must stay free of Minecraft and Prestige-client types.
*/
public final class EngineState {
private EngineState() {}
/** The transformers are registered and the Mixin plugin is installed. */
public static volatile boolean installed;
/** Callbacks only run once the client is initialised (Prestige.init finished, modules registered). */
public static volatile boolean ready;
/** Target classes that were transformed (dotted runtime names). */
public static final Set<String> transformed = ConcurrentHashMap.newKeySet();
/** Callback hit counters keyed by "MixinClass.method". */
public static final ConcurrentHashMap<String, LongAdder> callbacks = new ConcurrentHashMap<>();
/** Events posted on the client EventBus by event class simple name (see EventBusStatsMixin). */
public static final ConcurrentHashMap<String, LongAdder> events = new ConcurrentHashMap<>();
/** Called from the injected gate of every callback that passed the readiness check. */
public static void onCallback(String name) {
LongAdder a = callbacks.get(name);
if (a == null) {
a = callbacks.computeIfAbsent(name, k -> {
System.out.println("[Engine] FIRST_CALLBACK=" + k);
return new LongAdder();
});
}
a.increment();
}
public static void onEvent(Class<?> type) {
String n = type.getSimpleName();
LongAdder a = events.get(n);
if (a == null) a = events.computeIfAbsent(n, k -> new LongAdder());
a.increment();
}
public static void markReady(String why) {
if (!ready) {
ready = true;
System.out.println("[Engine] READY (" + why + ") targets transformed=" + transformed.size());
}
}
public static String summary() {
StringBuilder sb = new StringBuilder("ENGINE installed=").append(installed).append(" ready=").append(ready)
.append(" transformed=").append(transformed.size()).append(" callbacksSeen=").append(callbacks.size())
.append(" eventTypesSeen=").append(events.size());
long cb = 0, ev = 0;
for (LongAdder a : callbacks.values()) cb += a.sum();
for (LongAdder a : events.values()) ev += a.sum();
sb.append(" callbackTotal=").append(cb).append(" eventTotal=").append(ev);
return sb.toString();
}
public static String details() {
StringBuilder sb = new StringBuilder(summary());
Map<String, Long> c = new TreeMap<>();
callbacks.forEach((k, v) -> c.put(k, v.sum()));
sb.append("\n callbacks: ").append(c);
Map<String, Long> e = new TreeMap<>();
events.forEach((k, v) -> e.put(k, v.sum()));
sb.append("\n events: ").append(e);
return sb.toString();
}
}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_4970$class_4971: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_4970$class_4971", remap = false, priority = 2000)
public abstract class I00 {}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_2248: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_2248", remap = false, priority = 2000)
public abstract class I01 {}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_309: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_309", remap = false, priority = 2000)
public abstract class I02 {}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_310: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_310", remap = false, priority = 2000)
public abstract class I03 {}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_312: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_312", remap = false, priority = 2000)
public abstract class I04 {}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_279: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_279", remap = false, priority = 2000)
public abstract class I05 {}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_329: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_329", remap = false, priority = 2000)
public abstract class I06 {}
@@ -0,0 +1,7 @@
package dev.zprestige.prestige.engine.mixin;
import org.spongepowered.asm.mixin.Mixin;
/** Engine anchor for net.minecraft.class_4603: gives Mixin a target so EnginePlugin.preApply runs the ClassTransform hooks on it. */
@Mixin(targets = "net.minecraft.class_4603", remap = false, priority = 2000)
public abstract class I07 {}
Loaded 100 of 774 files, more files were not shown because too many files have changed in this diff. Show more