import java.io.DataInputStream; import java.io.File; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.net.URL; import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("fu") @Implements("TaskHandler") public class TaskHandler implements Runnable { @ObfuscatedName("s") @Export("javaVendor") public static String javaVendor; @ObfuscatedName("j") @Export("javaVersion") public static String javaVersion; @ObfuscatedName("i") @ObfuscatedSignature( signature = "Lft;" ) @Export("current") Task current; @ObfuscatedName("k") @ObfuscatedSignature( signature = "Lft;" ) @Export("task") Task task; @ObfuscatedName("u") @Export("thread") Thread thread; @ObfuscatedName("n") @Export("isClosed") boolean isClosed; public TaskHandler() { this.current = null; this.task = null; this.isClosed = false; javaVendor = "Unknown"; javaVersion = "1.6"; try { javaVendor = System.getProperty("java.vendor"); javaVersion = System.getProperty("java.version"); } catch (Exception var2) { } this.isClosed = false; this.thread = new Thread(this); this.thread.setPriority(10); this.thread.setDaemon(true); this.thread.start(); } @ObfuscatedName("s") @ObfuscatedSignature( signature = "(I)V", garbageValue = "1887947364" ) @Export("close") public final void close() { synchronized(this) { this.isClosed = true; this.notifyAll(); } try { this.thread.join(); } catch (InterruptedException var3) { } } @ObfuscatedName("j") @ObfuscatedSignature( signature = "(IIILjava/lang/Object;I)Lft;", garbageValue = "1177256583" ) @Export("newTask") final Task newTask(int var1, int var2, int var3, Object var4) { Task var5 = new Task(); var5.type = var1; var5.intArgument = var2; var5.objectArgument = var4; synchronized(this) { if (this.task != null) { this.task.next = var5; this.task = var5; } else { this.task = this.current = var5; } this.notify(); return var5; } } @ObfuscatedName("i") @ObfuscatedSignature( signature = "(Ljava/lang/String;IB)Lft;", garbageValue = "-49" ) @Export("newSocketTask") public final Task newSocketTask(String var1, int var2) { return this.newTask(1, var2, 0, var1); } @ObfuscatedName("k") @ObfuscatedSignature( signature = "(Ljava/lang/Runnable;IB)Lft;", garbageValue = "1" ) @Export("newThreadTask") public final Task newThreadTask(Runnable var1, int var2) { return this.newTask(2, var2, 0, var1); } public final void run() { while (true) { Task var1; synchronized(this) { while (true) { if (this.isClosed) { return; } if (this.current != null) { var1 = this.current; this.current = this.current.next; if (this.current == null) { this.task = null; } break; } try { this.wait(); } catch (InterruptedException var8) { } } } try { int var5 = var1.type; if (var5 == 1) { var1.result = new Socket(InetAddress.getByName((String)var1.objectArgument), var1.intArgument); } else if (var5 == 2) { Thread var3 = new Thread((Runnable)var1.objectArgument); var3.setDaemon(true); var3.start(); var3.setPriority(var1.intArgument); var1.result = var3; } else if (var5 == 4) { var1.result = new DataInputStream(((URL)var1.objectArgument).openStream()); } var1.status = 1; } catch (ThreadDeath var6) { throw var6; } catch (Throwable var7) { var1.status = 2; } } } @ObfuscatedName("j") @ObfuscatedSignature( signature = "(Ljava/lang/CharSequence;I)Z", garbageValue = "-641292083" ) @Export("isNumber") public static boolean isNumber(CharSequence var0) { return class219.method4022(var0, 10, true); } @ObfuscatedName("k") @ObfuscatedSignature( signature = "(Ljava/lang/String;Ljava/lang/String;ZI)Lmm;", garbageValue = "929231118" ) @Export("getPreferencesFile") public static AccessFile getPreferencesFile(String var0, String var1, boolean var2) { File var3 = new File(JagexCache.cacheDir, "preferences" + var0 + ".dat"); if (var3.exists()) { try { AccessFile var10 = new AccessFile(var3, "rw", 10000L); return var10; } catch (IOException var9) { } } String var4 = ""; if (InterfaceParent.cacheGamebuild == 33) { var4 = "_rc"; } else if (InterfaceParent.cacheGamebuild == 34) { var4 = "_wip"; } File var5 = new File(FontName.userHomeDirectory, "jagex_" + var1 + "_preferences" + var0 + var4 + ".dat"); AccessFile var6; if (!var2 && var5.exists()) { try { var6 = new AccessFile(var5, "rw", 10000L); return var6; } catch (IOException var8) { } } try { var6 = new AccessFile(var3, "rw", 10000L); return var6; } catch (IOException var7) { throw new RuntimeException(); } } @ObfuscatedName("k") @ObfuscatedSignature( signature = "(IIB)I", garbageValue = "-6" ) public static int method3411(int var0, int var1) { int var2 = var0 >>> 31; return (var0 + var2) / var1 - var2; } }