import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.IOException; 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; @ObfuscatedName("ay") @Implements("KeyHandler") public final class KeyHandler implements KeyListener, FocusListener { @ObfuscatedName("oh") @ObfuscatedSignature( signature = "Lch;" ) @Export("varcs") static Varcs varcs; @ObfuscatedName("s") @ObfuscatedSignature( signature = "Lay;" ) @Export("KeyHandler_instance") public static KeyHandler KeyHandler_instance; @ObfuscatedName("t") public static short[] field387; @ObfuscatedName("cp") @Export("KeyHandler_pressedKeys") public static boolean[] KeyHandler_pressedKeys; @ObfuscatedName("cb") public static int[] field374; @ObfuscatedName("ch") @ObfuscatedGetter( intValue = 495485409 ) public static int field375; @ObfuscatedName("cn") @ObfuscatedGetter( intValue = -2076273353 ) public static int field378; @ObfuscatedName("cr") static char[] field377; @ObfuscatedName("cl") static int[] field376; @ObfuscatedName("cg") public static int[] field379; @ObfuscatedName("cy") @ObfuscatedGetter( intValue = -1379841439 ) public static int field380; @ObfuscatedName("cz") @ObfuscatedGetter( intValue = -1494145321 ) public static int field385; @ObfuscatedName("cv") @ObfuscatedGetter( intValue = 1845463833 ) public static int field382; @ObfuscatedName("cq") @ObfuscatedGetter( intValue = 1982695045 ) public static int field383; @ObfuscatedName("ct") @ObfuscatedGetter( intValue = 1884223821 ) @Export("KeyHandler_idleCycles") public static volatile int KeyHandler_idleCycles; @ObfuscatedName("cx") @Export("KeyHandler_keyCodes") static int[] KeyHandler_keyCodes; static { KeyHandler_instance = new KeyHandler(); KeyHandler_pressedKeys = new boolean[112]; field374 = new int[128]; field375 = 0; field378 = 0; field377 = new char[128]; field376 = new int[128]; field379 = new int[128]; field380 = 0; field385 = 0; field382 = 0; field383 = 0; KeyHandler_idleCycles = 0; KeyHandler_keyCodes = new int[]{-1, -1, -1, -1, -1, -1, -1, -1, 85, 80, 84, -1, 91, -1, -1, -1, 81, 82, 86, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, 83, 104, 105, 103, 102, 96, 98, 97, 99, -1, -1, -1, -1, -1, -1, -1, 25, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, -1, 48, 68, 66, 50, 34, 51, 52, 53, 39, 54, 55, 56, 70, 69, 40, 41, 32, 35, 49, 36, 38, 67, 33, 65, 37, 64, -1, -1, -1, -1, -1, 228, 231, 227, 233, 224, 219, 225, 230, 226, 232, 89, 87, -1, 88, 229, 90, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; } KeyHandler() { } public final synchronized void keyPressed(KeyEvent var1) { if (KeyHandler_instance != null) { int var2 = var1.getKeyCode(); if (var2 >= 0 && var2 < KeyHandler_keyCodes.length) { var2 = KeyHandler_keyCodes[var2]; if ((var2 & 128) != 0) { var2 = -1; } } else { var2 = -1; } if (field378 >= 0 && var2 >= 0) { field374[field378] = var2; field378 = field378 + 1 & 127; if (field375 == field378) { field378 = -1; } } int var3; if (var2 >= 0) { var3 = field382 + 1 & 127; if (var3 != field385) { field376[field382] = var2; field377[field382] = 0; field382 = var3; } } var3 = var1.getModifiers(); if ((var3 & 10) != 0 || var2 == 85 || var2 == 10) { var1.consume(); } } } public final synchronized void keyReleased(KeyEvent var1) { if (KeyHandler_instance != null) { int var2 = var1.getKeyCode(); if (var2 >= 0 && var2 < KeyHandler_keyCodes.length) { var2 = KeyHandler_keyCodes[var2] & -129; } else { var2 = -1; } if (field378 >= 0 && var2 >= 0) { field374[field378] = ~var2; field378 = field378 + 1 & 127; if (field375 == field378) { field378 = -1; } } } var1.consume(); } public final synchronized void focusLost(FocusEvent var1) { if (KeyHandler_instance != null) { field378 = -1; } } public final void focusGained(FocusEvent var1) { } public final void keyTyped(KeyEvent var1) { if (KeyHandler_instance != null) { char var2 = var1.getKeyChar(); if (var2 != 0 && var2 != '\uffff' && class218.method4019(var2)) { int var3 = field382 + 1 & 127; if (var3 != field385) { field376[field382] = -1; field377[field382] = var2; field382 = var3; } } } var1.consume(); } @ObfuscatedName("s") @ObfuscatedSignature( signature = "([BIII)Ljava/lang/String;", garbageValue = "1700061188" ) public static String method786(byte[] var0, int var1, int var2) { char[] var3 = new char[var2]; int var4 = 0; int var5 = var1; int var8; for (int var6 = var2 + var1; var5 < var6; var3[var4++] = (char)var8) { int var7 = var0[var5++] & 255; if (var7 < 128) { if (var7 == 0) { var8 = 65533; } else { var8 = var7; } } else if (var7 < 192) { var8 = 65533; } else if (var7 < 224) { if (var5 < var6 && (var0[var5] & 192) == 128) { var8 = (var7 & 31) << 6 | var0[var5++] & 63; if (var8 < 128) { var8 = 65533; } } else { var8 = 65533; } } else if (var7 < 240) { if (var5 + 1 < var6 && (var0[var5] & 192) == 128 && (var0[var5 + 1] & 192) == 128) { var8 = (var7 & 15) << 12 | (var0[var5++] & 63) << 6 | var0[var5++] & 63; if (var8 < 2048) { var8 = 65533; } } else { var8 = 65533; } } else if (var7 < 248) { if (var5 + 2 < var6 && (var0[var5] & 192) == 128 && (var0[var5 + 1] & 192) == 128 && (var0[var5 + 2] & 192) == 128) { var8 = (var7 & 7) << 18 | (var0[var5++] & 63) << 12 | (var0[var5++] & 63) << 6 | var0[var5++] & 63; if (var8 >= 65536 && var8 <= 1114111) { var8 = 65533; } else { var8 = 65533; } } else { var8 = 65533; } } else { var8 = 65533; } } return new String(var3, 0, var4); } @ObfuscatedName("s") @ObfuscatedSignature( signature = "(Lhz;B)V", garbageValue = "-71" ) @Export("InvDefinition_setArchives") public static void InvDefinition_setArchives(AbstractArchive var0) { InvDefinition.InvDefinition_archive = var0; } @ObfuscatedName("gk") @ObfuscatedSignature( signature = "(ZI)V", garbageValue = "2136399840" ) @Export("addNpcsToScene") static final void addNpcsToScene(boolean var0) { for (int var1 = 0; var1 < Client.npcCount; ++var1) { NPC var2 = Client.npcs[Client.npcIndices[var1]]; if (var2 != null && var2.isVisible() && var2.definition.isVisible == var0 && var2.definition.transformIsVisible()) { int var3 = var2.x >> 7; int var4 = var2.y >> 7; if (var3 >= 0 && var3 < 104 && var4 >= 0 && var4 < 104) { if (var2.size * -1143635904 == 1 && (var2.x & 127) == 64 && (var2.y & 127) == 64) { if (Client.tileLastDrawnActor[var3][var4] == Client.viewportDrawCount) { continue; } Client.tileLastDrawnActor[var3][var4] = Client.viewportDrawCount; } long var5 = WorldMapSprite.calculateTag(0, 0, 1, !var2.definition.isInteractable, Client.npcIndices[var1]); var2.playerCycle = Client.cycle; Player.scene.drawEntity(ItemContainer.plane, var2.x, var2.y, GrandExchangeOfferTotalQuantityComparator.getTileHeight(var2.size * -178253824 - 64 + var2.x, var2.size * -178253824 - 64 + var2.y, ItemContainer.plane), var2.size * -178253824 - 64 + 60, var2, var2.rotation, var5, var2.isWalking); } } } } @ObfuscatedName("gl") @ObfuscatedSignature( signature = "(ZI)V", garbageValue = "2032247175" ) static final void method787(boolean var0) { WorldMapSectionType.playPcmPlayers(); ++Client.packetWriter.pendingWrites; if (Client.packetWriter.pendingWrites >= 50 || var0) { Client.packetWriter.pendingWrites = 0; if (!Client.field672 && Client.packetWriter.getSocket() != null) { PacketBufferNode var1 = MenuAction.getPacketBufferNode(ClientPacket.field2207, Client.packetWriter.isaacCipher); Client.packetWriter.addNode(var1); try { Client.packetWriter.flush(); } catch (IOException var3) { Client.field672 = true; } } } } }