Files
runelite/runescape-client/src/main/java/ChatChannel.java
Lucwousin 596689a4f7 rs-client: Cleanup (#1087)
* rs-client: name SpriteBuffer

* rs-client: (re)name spritebuffer methods

* rs-client/deob: Add missed @Export's, make updatemappings fix this next time

* rs-client: run intellij redundant else inspection

* rs-client: invert some script interpreter if's

* deob: checkstyle fixes

* rs-client: SpriteBuffer_loadSprite -> SpriteBuffer_bufferFile
2019-07-23 19:43:31 +02:00

261 lines
6.6 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.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.Reflection;
@ObfuscatedName("cs")
@Implements("ChatChannel")
public class ChatChannel {
@ObfuscatedName("gr")
@ObfuscatedGetter(
intValue = 1055466439
)
static int field1306;
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "[Lbj;"
)
@Export("messages")
Message[] messages;
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = 754027225
)
@Export("count")
int count;
ChatChannel() {
this.messages = new Message[100];
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;B)Lbj;",
garbageValue = "0"
)
@Export("addMessage")
Message addMessage(int var1, String var2, String var3, String var4) {
Message var5 = this.messages[99];
for (int var6 = this.count; var6 > 0; --var6) {
if (var6 != 100) {
this.messages[var6] = this.messages[var6 - 1];
}
}
if (var5 == null) {
var5 = new Message(var1, var2, var4, var3);
} else {
var5.remove();
var5.removeDual();
var5.set(var1, var2, var4, var3);
}
this.messages[0] = var5;
if (this.count < 100) {
++this.count;
}
return var5;
}
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "(II)Lbj;",
garbageValue = "-55997964"
)
@Export("getMessage")
Message getMessage(int var1) {
return var1 >= 0 && var1 < this.count ? this.messages[var1] : null;
}
@ObfuscatedName("e")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "-410884165"
)
@Export("size")
int size() {
return this.count;
}
@ObfuscatedName("p")
@ObfuscatedSignature(
signature = "(Lkf;IB)V",
garbageValue = "67"
)
public static void method2213(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 var20 = var0.readStringCp1252NullTerminated();
byte[][] var10 = new byte[var7][];
int var12;
if (var4 == 3) {
for (int var11 = 0; var11 < var7; ++var11) {
var12 = var0.readInt();
var10[var11] = new byte[var12];
var0.readBytes(var10[var11], 0, var12);
}
}
var2.operations[var3] = var4;
Class[] var21 = new Class[var7];
for (var12 = 0; var12 < var7; ++var12) {
var21[var12] = User.loadClassFromDescriptor(var8[var12]);
}
Class var22 = User.loadClassFromDescriptor(var20);
if (User.loadClassFromDescriptor(var5).getClassLoader() == null) {
throw new SecurityException();
}
Method[] var13 = User.loadClassFromDescriptor(var5).getDeclaredMethods();
Method[] var14 = var13;
for (int var15 = 0; var15 < var14.length; ++var15) {
Method var16 = var14[var15];
if (Reflection.getMethodName(var16).equals(var6)) {
Class[] var17 = Reflection.getParameterTypes(var16);
if (var17.length == var21.length) {
boolean var18 = true;
for (int var19 = 0; var19 < var21.length; ++var19) {
if (var17[var19] != var21[var19]) {
var18 = false;
break;
}
}
if (var18 && var22 == var16.getReturnType()) {
var2.methods[var3] = var16;
}
}
}
}
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 (User.loadClassFromDescriptor(var5).getClassLoader() == null) {
throw new SecurityException();
}
var2.fields[var3] = Reflection.findField(User.loadClassFromDescriptor(var5), var6);
}
} catch (ClassNotFoundException var24) {
var2.creationErrors[var3] = -1;
} catch (SecurityException var25) {
var2.creationErrors[var3] = -2;
} catch (NullPointerException var26) {
var2.creationErrors[var3] = -3;
} catch (Exception var27) {
var2.creationErrors[var3] = -4;
} catch (Throwable var28) {
var2.creationErrors[var3] = -5;
}
}
class96.reflectionChecks.addFirst(var2);
}
@ObfuscatedName("r")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "-4"
)
static void method2214() {
if (UserComparator3.loadWorlds()) {
Login.worldSelectOpen = true;
Login.worldSelectPage = 0;
Login.worldSelectPagesCount = 0;
}
}
@ObfuscatedName("hh")
@ObfuscatedSignature(
signature = "(IIIII)V",
garbageValue = "-2069013220"
)
static final void method2215(int var0, int var1, int var2, int var3) {
for (int var4 = 0; var4 < Client.rootWidgetCount; ++var4) {
if (Client.rootWidgetXs[var4] + Client.rootWidgetWidths[var4] > var0 && Client.rootWidgetXs[var4] < var0 + var2 && Client.rootWidgetHeights[var4] + Client.rootWidgetYs[var4] > var1 && Client.rootWidgetYs[var4] < var3 + var1) {
Client.field843[var4] = true;
}
}
}
@ObfuscatedName("ie")
@ObfuscatedSignature(
signature = "(Lhj;I)Z",
garbageValue = "-1045685499"
)
@Export("runCs1")
static final boolean runCs1(Widget var0) {
if (var0.cs1Comparisons == null) {
return false;
}
for (int var1 = 0; var1 < var0.cs1Comparisons.length; ++var1) {
int var2 = Varps.method3969(var0, var1);
int var3 = var0.cs1ComparisonValues[var1];
if (var0.cs1Comparisons[var1] == 2) {
if (var2 >= var3) {
return false;
}
} else if (var0.cs1Comparisons[var1] == 3) {
if (var2 <= var3) {
return false;
}
} else if (var0.cs1Comparisons[var1] == 4) {
if (var2 == var3) {
return false;
}
} else if (var2 != var3) {
return false;
}
}
return true;
}
}