Files
runelite/runescape-client/src/main/java/Messages.java
Owain van Brakel add4ca8005 chore: rev 188
2020-01-29 14:20:08 +01:00

179 lines
5.0 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 java.util.HashMap;
import java.util.Map;
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("cy")
@Implements("Messages")
public class Messages {
@ObfuscatedName("c")
@Export("Messages_channels")
static final Map Messages_channels;
@ObfuscatedName("t")
@ObfuscatedSignature(
signature = "Llp;"
)
@Export("Messages_hashTable")
static final IterableNodeHashTable Messages_hashTable;
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "Ljb;"
)
@Export("Messages_queue")
static final IterableDualNodeQueue Messages_queue;
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = 679666473
)
@Export("Messages_count")
static int Messages_count;
@ObfuscatedName("fa")
@ObfuscatedGetter(
intValue = -334817875
)
@Export("baseX")
static int baseX;
static {
Messages_channels = new HashMap();
Messages_hashTable = new IterableNodeHashTable(1024);
Messages_queue = new IterableDualNodeQueue();
Messages_count = 0;
}
@ObfuscatedName("c")
@ObfuscatedSignature(
signature = "(IB)Lij;",
garbageValue = "126"
)
@Export("VarpDefinition_get")
public static VarpDefinition VarpDefinition_get(int var0) {
VarpDefinition var1 = (VarpDefinition)VarpDefinition.VarpDefinition_cached.get((long)var0);
if (var1 != null) {
return var1;
} else {
byte[] var2 = VarpDefinition.VarpDefinition_archive.takeFile(16, var0);
var1 = new VarpDefinition();
if (var2 != null) {
var1.decode(new Buffer(var2));
}
VarpDefinition.VarpDefinition_cached.put(var1, (long)var0);
return var1;
}
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "(Lks;I)V",
garbageValue = "1739946612"
)
@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();
}
}
}