Files
runelite/runescape-client/src/main/java/TaskHandler.java
Owain van Brakel 5e9375bc8b project: rev 200
2021-10-06 13:56:56 +02:00

395 lines
11 KiB
Java

import java.io.DataInputStream;
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("ew")
@Implements("TaskHandler")
public class TaskHandler implements Runnable {
@ObfuscatedName("l")
@Export("javaVendor")
public static String javaVendor;
@ObfuscatedName("q")
@Export("javaVersion")
public static String javaVersion;
@ObfuscatedName("f")
@ObfuscatedSignature(
descriptor = "Lep;"
)
@Export("current")
Task current;
@ObfuscatedName("j")
@ObfuscatedSignature(
descriptor = "Lep;"
)
@Export("task")
Task task;
@ObfuscatedName("m")
@Export("thread")
Thread thread;
@ObfuscatedName("k")
@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("l")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-2080769600"
)
@Export("close")
public final void close() {
synchronized(this) {
this.isClosed = true;
this.notifyAll();
}
try {
this.thread.join();
} catch (InterruptedException var3) {
}
}
@ObfuscatedName("q")
@ObfuscatedSignature(
descriptor = "(IIILjava/lang/Object;S)Lep;",
garbageValue = "3207"
)
@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("f")
@ObfuscatedSignature(
descriptor = "(Ljava/lang/String;II)Lep;",
garbageValue = "-1536302643"
)
@Export("newSocketTask")
public final Task newSocketTask(String var1, int var2) {
return this.newTask(1, var2, 0, var1);
}
@ObfuscatedName("j")
@ObfuscatedSignature(
descriptor = "(Ljava/lang/Runnable;II)Lep;",
garbageValue = "1508388325"
)
@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("it")
@ObfuscatedSignature(
descriptor = "(IIIIB)V",
garbageValue = "-117"
)
@Export("addSceneMenuOptions")
static final void addSceneMenuOptions(int var0, int var1, int var2, int var3) {
if (Client.isItemSelected == 0 && !Client.isSpellSelected) {
GameBuild.insertMenuItemNoShift("Walk here", "", 23, 0, var0 - var2, var1 - var3);
}
long var4 = -1L;
long var6 = -1L;
int var8;
for (var8 = 0; var8 < BuddyRankComparator.method2458(); ++var8) {
long var24 = WorldMapSection1.method3912(var8);
if (var24 != var6) {
var6 = var24;
int var11 = UserComparator1.method7162(var8);
int var12 = ItemComposition.method3327(ViewportMouse.ViewportMouse_entityTags[var8]);
int var13 = var12;
long var16 = ViewportMouse.ViewportMouse_entityTags[var8];
int var15 = (int)(var16 >>> 14 & 3L);
int var26 = InterfaceParent.Entity_unpackID(ViewportMouse.ViewportMouse_entityTags[var8]);
int var17 = var26;
if (var15 == 2 && PlayerComposition.scene.getObjectFlags(VertexNormal.Client_plane, var11, var12, var24) >= 0) {
ObjectComposition var18 = class245.getObjectDefinition(var26);
if (var18.transforms != null) {
var18 = var18.transform();
}
if (var18 == null) {
continue;
}
if (Client.isItemSelected == 1) {
GameBuild.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + FloorUnderlayDefinition.colorStartTag(65535) + var18.name, 1, var26, var11, var12);
} else if (Client.isSpellSelected) {
if ((ObjectComposition.selectedSpellFlags & 4) == 4) {
GameBuild.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + FloorUnderlayDefinition.colorStartTag(65535) + var18.name, 2, var26, var11, var12);
}
} else {
String[] var19 = var18.actions;
if (var19 != null) {
for (int var20 = 4; var20 >= 0; --var20) {
if (var19[var20] != null) {
short var21 = 0;
if (var20 == 0) {
var21 = 3;
}
if (var20 == 1) {
var21 = 4;
}
if (var20 == 2) {
var21 = 5;
}
if (var20 == 3) {
var21 = 6;
}
if (var20 == 4) {
var21 = 1001;
}
GameBuild.insertMenuItemNoShift(var19[var20], FloorUnderlayDefinition.colorStartTag(65535) + var18.name, var21, var17, var11, var13);
}
}
}
GameBuild.insertMenuItemNoShift("Examine", FloorUnderlayDefinition.colorStartTag(65535) + var18.name, 1002, var18.id, var11, var13);
}
}
Player var22;
int var27;
NPC var28;
int var35;
int[] var36;
if (var15 == 1) {
NPC var31 = Client.npcs[var17];
if (var31 == null) {
continue;
}
if (var31.definition.size == 1 && (var31.x & 127) == 64 && (var31.y & 127) == 64) {
for (var27 = 0; var27 < Client.npcCount; ++var27) {
var28 = Client.npcs[Client.npcIndices[var27]];
if (var28 != null && var31 != var28 && var28.definition.size == 1 && var31.x == var28.x && var31.y == var28.y) {
class275.addNpcToMenu(var28.definition, Client.npcIndices[var27], var11, var13);
}
}
var27 = Players.Players_count;
var36 = Players.Players_indices;
for (var35 = 0; var35 < var27; ++var35) {
var22 = Client.players[var36[var35]];
if (var22 != null && var31.x == var22.x && var22.y == var31.y) {
ScriptFrame.addPlayerToMenu(var22, var36[var35], var11, var13);
}
}
}
class275.addNpcToMenu(var31.definition, var17, var11, var13);
}
if (var15 == 0) {
Player var32 = Client.players[var17];
if (var32 == null) {
continue;
}
if ((var32.x & 127) == 64 && (var32.y & 127) == 64) {
for (var27 = 0; var27 < Client.npcCount; ++var27) {
var28 = Client.npcs[Client.npcIndices[var27]];
if (var28 != null && var28.definition.size == 1 && var32.x == var28.x && var28.y == var32.y) {
class275.addNpcToMenu(var28.definition, Client.npcIndices[var27], var11, var13);
}
}
var27 = Players.Players_count;
var36 = Players.Players_indices;
for (var35 = 0; var35 < var27; ++var35) {
var22 = Client.players[var36[var35]];
if (var22 != null && var22 != var32 && var22.x == var32.x && var22.y == var32.y) {
ScriptFrame.addPlayerToMenu(var22, var36[var35], var11, var13);
}
}
}
if (var17 != Client.combatTargetPlayerIndex) {
ScriptFrame.addPlayerToMenu(var32, var17, var11, var13);
} else {
var4 = var24;
}
}
if (var15 == 3) {
NodeDeque var34 = Client.groundItems[VertexNormal.Client_plane][var11][var13];
if (var34 != null) {
for (TileItem var33 = (TileItem)var34.first(); var33 != null; var33 = (TileItem)var34.next()) {
ItemComposition var37 = class87.ItemDefinition_get(var33.id);
if (Client.isItemSelected == 1) {
GameBuild.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + FloorUnderlayDefinition.colorStartTag(16748608) + var37.name, 16, var33.id, var11, var13);
} else if (Client.isSpellSelected) {
if ((ObjectComposition.selectedSpellFlags & 1) == 1) {
GameBuild.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + FloorUnderlayDefinition.colorStartTag(16748608) + var37.name, 17, var33.id, var11, var13);
}
} else {
String[] var29 = var37.groundActions;
for (int var30 = 4; var30 >= 0; --var30) {
if (var29 != null && var29[var30] != null) {
byte var23 = 0;
if (var30 == 0) {
var23 = 18;
}
if (var30 == 1) {
var23 = 19;
}
if (var30 == 2) {
var23 = 20;
}
if (var30 == 3) {
var23 = 21;
}
if (var30 == 4) {
var23 = 22;
}
GameBuild.insertMenuItemNoShift(var29[var30], FloorUnderlayDefinition.colorStartTag(16748608) + var37.name, var23, var33.id, var11, var13);
} else if (var30 == 2) {
GameBuild.insertMenuItemNoShift("Take", FloorUnderlayDefinition.colorStartTag(16748608) + var37.name, 20, var33.id, var11, var13);
}
}
GameBuild.insertMenuItemNoShift("Examine", FloorUnderlayDefinition.colorStartTag(16748608) + var37.name, 1004, var33.id, var11, var13);
}
}
}
}
}
}
if (-1L != var4) {
var8 = Widget.method5030(var4);
int var9 = ItemComposition.method3327(var4);
Player var10 = Client.players[Client.combatTargetPlayerIndex];
ScriptFrame.addPlayerToMenu(var10, Client.combatTargetPlayerIndex, var8, var9);
}
}
@ObfuscatedName("il")
@ObfuscatedSignature(
descriptor = "([Ljt;Ljt;ZB)V",
garbageValue = "8"
)
@Export("revalidateWidgetScroll")
static void revalidateWidgetScroll(Widget[] var0, Widget var1, boolean var2) {
int var3 = var1.scrollWidth != 0 ? var1.scrollWidth * -1993150083 * 873320405 : var1.width * -2019463933 * -351378005;
int var4 = var1.scrollHeight != 0 ? var1.scrollHeight * 1068415699 * -118379173 : var1.height * 1232982299 * -1955651309;
WorldMapSection1.resizeInterface(var0, var1.id, var3, var4, var2);
if (var1.children != null) {
WorldMapSection1.resizeInterface(var1.children, var1.id, var3, var4, var2);
}
InterfaceParent var5 = (InterfaceParent)Client.interfaceParents.get((long)var1.id);
if (var5 != null) {
Canvas.method380(var5.group, var3, var4, var2);
}
if (var1.contentType == 1337) {
}
}
}