166 lines
5.7 KiB
Java
166 lines
5.7 KiB
Java
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Method;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
import net.runelite.rs.Reflection;
|
|
|
|
@ObfuscatedName("ez")
|
|
@Implements("UserComparator7")
|
|
public class UserComparator7 extends AbstractUserComparator {
|
|
@ObfuscatedName("m")
|
|
final boolean field939;
|
|
|
|
public UserComparator7(boolean var1) {
|
|
this.field939 = var1;
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lke;Lke;I)I",
|
|
garbageValue = "-9252550"
|
|
)
|
|
int method349(Buddy var1, Buddy var2) {
|
|
return var1.world0 != 0 && var2.world0 != 0 ? (this.field939 ? var1.int2 - var2.int2 : var2.int2 - var1.int2) : this.method12(var1, var2);
|
|
}
|
|
|
|
@Export("compare")
|
|
@ObfuscatedName("compare")
|
|
public int compare(Object var1, Object var2) {
|
|
return this.method349((Buddy)var1, (Buddy)var2);
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lgr;II)V",
|
|
garbageValue = "-88211227"
|
|
)
|
|
public static void method3360(Buffer var0, int var1) {
|
|
ReflectionCheck var2 = new ReflectionCheck();
|
|
var2.size = var0.readUnsignedByte();
|
|
var2.id = var0.readInt();
|
|
var2.operations = new int[var2.size];
|
|
var2.creationErrors = new int[var2.size];
|
|
var2.fields = new Field[var2.size];
|
|
var2.intReplaceValues = new int[var2.size];
|
|
var2.methods = new Method[var2.size];
|
|
var2.arguments = new byte[var2.size][][];
|
|
|
|
for (int var3 = 0; var3 < var2.size; ++var3) {
|
|
try {
|
|
int var4 = var0.readUnsignedByte();
|
|
String var5;
|
|
String var6;
|
|
int var7;
|
|
if (var4 != 0 && var4 != 1 && var4 != 2) {
|
|
if (var4 == 3 || var4 == 4) {
|
|
var5 = var0.readStringCp1252NullTerminated();
|
|
var6 = var0.readStringCp1252NullTerminated();
|
|
var7 = var0.readUnsignedByte();
|
|
String[] var8 = new String[var7];
|
|
|
|
for (int var9 = 0; var9 < var7; ++var9) {
|
|
var8[var9] = var0.readStringCp1252NullTerminated();
|
|
}
|
|
|
|
String var26 = var0.readStringCp1252NullTerminated();
|
|
byte[][] var10 = new byte[var7][];
|
|
int var11;
|
|
if (var4 == 3) {
|
|
for (int var12 = 0; var12 < var7; ++var12) {
|
|
var11 = var0.readInt();
|
|
var10[var12] = new byte[var11];
|
|
var0.method46(var10[var12], 0, var11);
|
|
}
|
|
}
|
|
|
|
var2.operations[var3] = var4;
|
|
Class[] var27 = new Class[var7];
|
|
|
|
for (var11 = 0; var11 < var7; ++var11) {
|
|
var27[var11] = VarcInt.loadClassFromDescriptor(var8[var11]);
|
|
}
|
|
|
|
Class var13 = VarcInt.loadClassFromDescriptor(var26);
|
|
if (VarcInt.loadClassFromDescriptor(var5).getClassLoader() == null) {
|
|
throw new SecurityException();
|
|
}
|
|
|
|
Method[] var14 = VarcInt.loadClassFromDescriptor(var5).getDeclaredMethods();
|
|
Method[] var15 = var14;
|
|
|
|
for (int var16 = 0; var16 < var15.length; ++var16) {
|
|
Method var17 = var15[var16];
|
|
if (Reflection.getMethodName(var17).equals(var6)) {
|
|
Class[] var18 = Reflection.getParameterTypes(var17);
|
|
if (var27.length == var18.length) {
|
|
boolean var19 = true;
|
|
|
|
for (int var20 = 0; var20 < var27.length; ++var20) {
|
|
if (var27[var20] != var18[var20]) {
|
|
var19 = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (var19 && var13 == var17.getReturnType()) {
|
|
var2.methods[var3] = var17;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var2.arguments[var3] = var10;
|
|
}
|
|
} else {
|
|
var5 = var0.readStringCp1252NullTerminated();
|
|
var6 = var0.readStringCp1252NullTerminated();
|
|
var7 = 0;
|
|
if (var4 == 1) {
|
|
var7 = var0.readInt();
|
|
}
|
|
|
|
var2.operations[var3] = var4;
|
|
var2.intReplaceValues[var3] = var7;
|
|
if (VarcInt.loadClassFromDescriptor(var5).getClassLoader() == null) {
|
|
throw new SecurityException();
|
|
}
|
|
|
|
var2.fields[var3] = Reflection.findField(VarcInt.loadClassFromDescriptor(var5), var6);
|
|
}
|
|
} catch (ClassNotFoundException var21) {
|
|
var2.creationErrors[var3] = -1;
|
|
} catch (SecurityException var22) {
|
|
var2.creationErrors[var3] = -2;
|
|
} catch (NullPointerException var23) {
|
|
var2.creationErrors[var3] = -3;
|
|
} catch (Exception var24) {
|
|
var2.creationErrors[var3] = -4;
|
|
} catch (Throwable var25) {
|
|
var2.creationErrors[var3] = -5;
|
|
}
|
|
}
|
|
|
|
class322.reflectionChecks.addFirst(var2);
|
|
}
|
|
|
|
@ObfuscatedName("ho")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)Z",
|
|
garbageValue = "2084569794"
|
|
)
|
|
static final boolean method3364(int var0) {
|
|
if (var0 < 0) {
|
|
return false;
|
|
} else {
|
|
int var1 = Client.menuOpcodes[var0];
|
|
if (var1 >= 2000) {
|
|
var1 -= 2000;
|
|
}
|
|
|
|
return var1 == 1007;
|
|
}
|
|
}
|
|
}
|