206 lines
5.7 KiB
Java
206 lines
5.7 KiB
Java
import java.io.ByteArrayInputStream;
|
|
import java.io.IOException;
|
|
import java.io.InvalidClassException;
|
|
import java.io.ObjectInputStream;
|
|
import java.io.OptionalDataException;
|
|
import java.io.StreamCorruptedException;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import java.lang.reflect.Method;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedGetter;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
import net.runelite.rs.Reflection;
|
|
|
|
@ObfuscatedName("ed")
|
|
@Implements("UserComparator10")
|
|
public class UserComparator10 extends AbstractUserComparator {
|
|
@ObfuscatedName("ss")
|
|
@ObfuscatedSignature(
|
|
signature = "Lbs;"
|
|
)
|
|
@Export("clientPreferences")
|
|
static ClientPreferences clientPreferences;
|
|
@ObfuscatedName("st")
|
|
@ObfuscatedGetter(
|
|
intValue = -2089079301
|
|
)
|
|
@Export("foundItemIdCount")
|
|
static int foundItemIdCount;
|
|
@ObfuscatedName("u")
|
|
@Export("reversed")
|
|
final boolean reversed;
|
|
|
|
public UserComparator10(boolean var1) {
|
|
this.reversed = var1;
|
|
}
|
|
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedSignature(
|
|
signature = "(Ljt;Ljt;S)I",
|
|
garbageValue = "-31573"
|
|
)
|
|
@Export("compareBuddy")
|
|
int compareBuddy(Buddy var1, Buddy var2) {
|
|
if (Client.worldId == var1.world && var2.world == Client.worldId) {
|
|
return this.reversed ? var1.int2 - var2.int2 : var2.int2 - var1.int2;
|
|
} else {
|
|
return this.compareUser(var1, var2);
|
|
}
|
|
}
|
|
|
|
public int compare(Object var1, Object var2) {
|
|
return this.compareBuddy((Buddy)var1, (Buddy)var2);
|
|
}
|
|
|
|
@ObfuscatedName("b")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lkj;B)V",
|
|
garbageValue = "-114"
|
|
)
|
|
@Export("performReflectionCheck")
|
|
public static void performReflectionCheck(PacketBuffer var0) {
|
|
ReflectionCheck var1 = (ReflectionCheck)class96.reflectionChecks.last();
|
|
if (var1 != null) {
|
|
int var2 = var0.offset;
|
|
var0.writeInt(var1.id);
|
|
|
|
for (int var3 = 0; var3 < var1.size; ++var3) {
|
|
if (var1.creationErrors[var3] != 0) {
|
|
var0.writeByte(var1.creationErrors[var3]);
|
|
} else {
|
|
try {
|
|
int var4 = var1.operations[var3];
|
|
Field var5;
|
|
int var6;
|
|
if (var4 == 0) {
|
|
var5 = var1.fields[var3];
|
|
var6 = Reflection.getInt(var5, (Object)null);
|
|
var0.writeByte(0);
|
|
var0.writeInt(var6);
|
|
} else if (var4 == 1) {
|
|
var5 = var1.fields[var3];
|
|
Reflection.setInt(var5, (Object)null, var1.intReplaceValues[var3]);
|
|
var0.writeByte(0);
|
|
} else if (var4 == 2) {
|
|
var5 = var1.fields[var3];
|
|
var6 = var5.getModifiers();
|
|
var0.writeByte(0);
|
|
var0.writeInt(var6);
|
|
}
|
|
|
|
Method var25;
|
|
if (var4 != 3) {
|
|
if (var4 == 4) {
|
|
var25 = var1.methods[var3];
|
|
var6 = var25.getModifiers();
|
|
var0.writeByte(0);
|
|
var0.writeInt(var6);
|
|
}
|
|
} else {
|
|
var25 = var1.methods[var3];
|
|
byte[][] var10 = var1.arguments[var3];
|
|
Object[] var7 = new Object[var10.length];
|
|
|
|
for (int var8 = 0; var8 < var10.length; ++var8) {
|
|
ObjectInputStream var9 = new ObjectInputStream(new ByteArrayInputStream(var10[var8]));
|
|
var7[var8] = var9.readObject();
|
|
}
|
|
|
|
Object var11 = Reflection.invoke(var25, (Object)null, var7);
|
|
if (var11 == null) {
|
|
var0.writeByte(0);
|
|
} else if (var11 instanceof Number) {
|
|
var0.writeByte(1);
|
|
var0.writeLong(((Number)var11).longValue());
|
|
} else if (var11 instanceof String) {
|
|
var0.writeByte(2);
|
|
var0.writeStringCp1252NullTerminated((String)var11);
|
|
} else {
|
|
var0.writeByte(4);
|
|
}
|
|
}
|
|
} catch (ClassNotFoundException var13) {
|
|
var0.writeByte(-10);
|
|
} catch (InvalidClassException var14) {
|
|
var0.writeByte(-11);
|
|
} catch (StreamCorruptedException var15) {
|
|
var0.writeByte(-12);
|
|
} catch (OptionalDataException var16) {
|
|
var0.writeByte(-13);
|
|
} catch (IllegalAccessException var17) {
|
|
var0.writeByte(-14);
|
|
} catch (IllegalArgumentException var18) {
|
|
var0.writeByte(-15);
|
|
} catch (InvocationTargetException var19) {
|
|
var0.writeByte(-16);
|
|
} catch (SecurityException var20) {
|
|
var0.writeByte(-17);
|
|
} catch (IOException var21) {
|
|
var0.writeByte(-18);
|
|
} catch (NullPointerException var22) {
|
|
var0.writeByte(-19);
|
|
} catch (Exception var23) {
|
|
var0.writeByte(-20);
|
|
} catch (Throwable var24) {
|
|
var0.writeByte(-21);
|
|
}
|
|
}
|
|
}
|
|
|
|
var0.writeCrc(var2);
|
|
var1.remove();
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("h")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lbp;Lbp;IZB)I",
|
|
garbageValue = "12"
|
|
)
|
|
@Export("compareWorlds")
|
|
static int compareWorlds(World var0, World var1, int var2, boolean var3) {
|
|
if (var2 == 1) {
|
|
int var4 = var0.population;
|
|
int var5 = var1.population;
|
|
if (!var3) {
|
|
if (var4 == -1) {
|
|
var4 = 2001;
|
|
}
|
|
|
|
if (var5 == -1) {
|
|
var5 = 2001;
|
|
}
|
|
}
|
|
|
|
return var4 - var5;
|
|
} else if (var2 == 2) {
|
|
return var0.location - var1.location;
|
|
} else if (var2 == 3) {
|
|
if (var0.activity.equals("-")) {
|
|
if (var1.activity.equals("-")) {
|
|
return 0;
|
|
} else {
|
|
return var3 ? -1 : 1;
|
|
}
|
|
} else if (var1.activity.equals("-")) {
|
|
return var3 ? 1 : -1;
|
|
} else {
|
|
return var0.activity.compareTo(var1.activity);
|
|
}
|
|
} else if (var2 == 4) {
|
|
return var0.method1785() ? (var1.method1785() ? 0 : 1) : (var1.method1785() ? -1 : 0);
|
|
} else if (var2 == 5) {
|
|
return var0.method1802() ? (var1.method1802() ? 0 : 1) : (var1.method1802() ? -1 : 0);
|
|
} else if (var2 == 6) {
|
|
return var0.isPvp() ? (var1.isPvp() ? 0 : 1) : (var1.isPvp() ? -1 : 0);
|
|
} else if (var2 == 7) {
|
|
return var0.isMembersOnly() ? (var1.isMembersOnly() ? 0 : 1) : (var1.isMembersOnly() ? -1 : 0);
|
|
} else {
|
|
return var0.id - var1.id;
|
|
}
|
|
}
|
|
}
|