232 lines
5.1 KiB
Java
232 lines
5.1 KiB
Java
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;
|
|
}
|
|
}
|