Files
runelite/runescape-client/src/main/java/UserComparator9.java
Owain van Brakel 74726ae17a project: Rev update
2019-11-28 16:31:53 +01:00

720 lines
24 KiB
Java

import java.io.IOException;
import java.lang.management.GarbageCollectorMXBean;
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("eb")
@Implements("UserComparator9")
public class UserComparator9 extends AbstractUserComparator {
@ObfuscatedName("b")
@ObfuscatedGetter(
intValue = -614413985
)
@Export("SpriteBuffer_spriteHeight")
static int SpriteBuffer_spriteHeight;
@ObfuscatedName("al")
@Export("garbageCollector")
static GarbageCollectorMXBean garbageCollector;
@ObfuscatedName("dy")
@ObfuscatedSignature(
signature = "Lij;"
)
@Export("archive18")
static Archive archive18;
@ObfuscatedName("u")
@Export("reversed")
final boolean reversed;
public UserComparator9(boolean var1) {
this.reversed = var1;
}
@ObfuscatedName("u")
@ObfuscatedSignature(
signature = "(Ljt;Ljt;B)I",
garbageValue = "-1"
)
@Export("compareBuddy")
int compareBuddy(Buddy var1, Buddy var2) {
if (Client.worldId == var1.world && var2.world == Client.worldId) {
return this.reversed ? var1.getUsername().compareToTyped(var2.getUsername()) : var2.getUsername().compareToTyped(var1.getUsername());
} else {
return this.compareUser(var1, var2);
}
}
public int compare(Object var1, Object var2) {
return this.compareBuddy((Buddy)var1, (Buddy)var2);
}
@ObfuscatedName("f")
@ObfuscatedSignature(
signature = "(Lkn;ZB)V",
garbageValue = "-115"
)
public static void method3436(AbstractSocket var0, boolean var1) {
if (NetCache.NetCache_socket != null) {
try {
NetCache.NetCache_socket.close();
} catch (Exception var8) {
}
NetCache.NetCache_socket = null;
}
NetCache.NetCache_socket = var0;
Buffer var2;
if (NetCache.NetCache_socket != null) {
try {
var2 = new Buffer(4);
var2.writeByte(var1 ? 2 : 3);
var2.writeMedium(0);
NetCache.NetCache_socket.write(var2.array, 0, 4);
} catch (IOException var7) {
try {
NetCache.NetCache_socket.close();
} catch (Exception var6) {
}
++NetCache.NetCache_ioExceptions;
NetCache.NetCache_socket = null;
}
}
NetCache.NetCache_responseHeaderBuffer.offset = 0;
NetCache.NetCache_currentResponse = null;
class32.NetCache_responseArchiveBuffer = null;
NetCache.field3188 = 0;
while (true) {
NetFileRequest var9 = (NetFileRequest)NetCache.NetCache_pendingPriorityResponses.first();
if (var9 == null) {
while (true) {
var9 = (NetFileRequest)NetCache.NetCache_pendingResponses.first();
if (var9 == null) {
if (NetCache.field3184 != 0) {
try {
var2 = new Buffer(4);
var2.writeByte(4);
var2.writeByte(NetCache.field3184);
var2.writeShort(0);
NetCache.NetCache_socket.write(var2.array, 0, 4);
} catch (IOException var5) {
try {
NetCache.NetCache_socket.close();
} catch (Exception var4) {
}
++NetCache.NetCache_ioExceptions;
NetCache.NetCache_socket = null;
}
}
NetCache.NetCache_loadTime = 0;
NetCache.field3171 = TaskHandler.currentTimeMillis();
return;
}
NetCache.NetCache_pendingWritesQueue.addLast(var9);
NetCache.NetCache_pendingWrites.put(var9, var9.key);
++NetCache.NetCache_pendingWritesCount;
--NetCache.NetCache_pendingResponsesCount;
}
}
NetCache.NetCache_pendingPriorityWrites.put(var9, var9.key);
++NetCache.NetCache_pendingPriorityWritesCount;
--NetCache.NetCache_pendingPriorityResponsesCount;
}
}
@ObfuscatedName("b")
@ObfuscatedSignature(
signature = "(II)[B",
garbageValue = "1705481710"
)
@Export("ByteArrayPool_getArray")
public static synchronized byte[] ByteArrayPool_getArray(int var0) {
return ByteArrayPool.ByteArrayPool_getArrayBool(var0, false);
}
@ObfuscatedName("aj")
@ObfuscatedSignature(
signature = "(IB)V",
garbageValue = "33"
)
@Export("runWidgetOnLoadListener")
static void runWidgetOnLoadListener(int var0) {
if (var0 != -1) {
if (UserComparator3.loadInterface(var0)) {
Widget[] var1 = FloorDecoration.Widget_interfaceComponents[var0];
for (int var2 = 0; var2 < var1.length; ++var2) {
Widget var3 = var1[var2];
if (var3.onLoad != null) {
ScriptEvent var4 = new ScriptEvent();
var4.widget = var3;
var4.args = var3.onLoad;
GrandExchangeOfferNameComparator.runScript(var4, 5000000);
}
}
}
}
}
@ObfuscatedName("jo")
@ObfuscatedSignature(
signature = "([Lhl;IIIIIIIB)V",
garbageValue = "-75"
)
@Export("updateInterface")
static final void updateInterface(Widget[] var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
for (int var8 = 0; var8 < var0.length; ++var8) {
Widget var9 = var0[var8];
if (var9 != null && var9.parentId == var1 && (!var9.isIf3 || var9.type == 0 || var9.hasListener || MenuAction.getWidgetClickMask(var9) != 0 || var9 == Client.clickedWidgetParent || var9.contentType == 1338)) {
if (var9.isIf3) {
if (AbstractByteArrayCopier.isComponentHidden(var9)) {
continue;
}
} else if (var9.type == 0 && var9 != class185.mousedOverWidgetIf1 && AbstractByteArrayCopier.isComponentHidden(var9)) {
continue;
}
int var10 = var9.x + var6;
int var11 = var7 + var9.y;
int var12;
int var13;
int var14;
int var15;
int var17;
int var18;
if (var9.type == 2) {
var12 = var2;
var13 = var3;
var14 = var4;
var15 = var5;
} else {
int var16;
if (var9.type == 9) {
var16 = var10;
var17 = var11;
var18 = var10 + var9.width;
int var19 = var11 + var9.height;
if (var18 < var10) {
var16 = var18;
var18 = var10;
}
if (var19 < var11) {
var17 = var19;
var19 = var11;
}
++var18;
++var19;
var12 = var16 > var2 ? var16 : var2;
var13 = var17 > var3 ? var17 : var3;
var14 = var18 < var4 ? var18 : var4;
var15 = var19 < var5 ? var19 : var5;
} else {
var16 = var10 + var9.width;
var17 = var11 + var9.height;
var12 = var10 > var2 ? var10 : var2;
var13 = var11 > var3 ? var11 : var3;
var14 = var16 < var4 ? var16 : var4;
var15 = var17 < var5 ? var17 : var5;
}
}
if (var9 == Client.clickedWidget) {
Client.field823 = true;
Client.field808 = var10;
Client.field825 = var11;
}
boolean var32 = false;
if (var9.field2651) {
switch(Client.field804) {
case 0:
var32 = true;
case 1:
default:
break;
case 2:
if (Client.field805 == var9.id >>> 16) {
var32 = true;
}
break;
case 3:
if (var9.id == Client.field805) {
var32 = true;
}
}
}
if (var32 || !var9.isIf3 || var12 < var14 && var13 < var15) {
if (var9.isIf3) {
ScriptEvent var26;
if (var9.noClickThrough) {
if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var26.isMouseInputEvent) {
var26.remove();
var26.widget.containsMouse = false;
}
}
if (class3.widgetDragDuration == 0) {
Client.clickedWidget = null;
Client.clickedWidgetParent = null;
}
if (!Client.isMenuOpen) {
class2.addCancelMenuEntry();
}
}
} else if (var9.noScrollThrough && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var26.isMouseInputEvent && var26.widget.onScroll == var26.args) {
var26.remove();
}
}
}
}
var17 = MouseHandler.MouseHandler_x;
var18 = MouseHandler.MouseHandler_y;
if (MouseHandler.MouseHandler_lastButton != 0) {
var17 = MouseHandler.MouseHandler_lastPressedX;
var18 = MouseHandler.MouseHandler_lastPressedY;
}
boolean var33 = var17 >= var12 && var18 >= var13 && var17 < var14 && var18 < var15;
if (var9.contentType == 1337) {
if (!Client.isLoading && !Client.isMenuOpen && var33) {
Varcs.addSceneMenuOptions(var17, var18, var12, var13);
}
} else if (var9.contentType == 1338) {
UrlRequester.checkIfMinimapClicked(var9, var10, var11);
} else {
if (var9.contentType == 1400) {
WorldMapRegion.worldMap.onCycle(MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y, var33, var10, var11, var9.width, var9.height);
}
if (!Client.isMenuOpen && var33) {
if (var9.contentType == 1400) {
WorldMapRegion.worldMap.addElementMenuOptions(var10, var11, var9.width, var9.height, var17, var18);
} else {
PlayerAppearance.method4079(var9, var17 - var10, var18 - var11);
}
}
boolean var21;
int var23;
if (var32) {
for (int var20 = 0; var20 < var9.field2592.length; ++var20) {
var21 = false;
boolean var22 = false;
if (!var21 && var9.field2592[var20] != null) {
for (var23 = 0; var23 < var9.field2592[var20].length; ++var23) {
boolean var24 = false;
if (var9.field2695 != null) {
var24 = KeyHandler.KeyHandler_pressedKeys[var9.field2592[var20][var23]];
}
if (UserComparator3.method3476(var9.field2592[var20][var23]) || var24) {
var21 = true;
if (var9.field2695 != null && var9.field2695[var20] > Client.cycle) {
break;
}
byte var25 = var9.field2653[var20][var23];
if (var25 == 0 || ((var25 & 8) == 0 || !KeyHandler.KeyHandler_pressedKeys[86] && !KeyHandler.KeyHandler_pressedKeys[82] && !KeyHandler.KeyHandler_pressedKeys[81]) && ((var25 & 2) == 0 || KeyHandler.KeyHandler_pressedKeys[86]) && ((var25 & 1) == 0 || KeyHandler.KeyHandler_pressedKeys[82]) && ((var25 & 4) == 0 || KeyHandler.KeyHandler_pressedKeys[81])) {
var22 = true;
break;
}
}
}
}
if (var22) {
if (var20 < 10) {
WorldMapData_1.widgetDefaultMenuAction(var20 + 1, var9.id, var9.childIndex, var9.itemId, "");
} else if (var20 == 10) {
Actor.Widget_runOnTargetLeave();
TextureProvider.selectSpell(var9.id, var9.childIndex, Client.method1655(MenuAction.getWidgetClickMask(var9)), var9.itemId);
Client.selectedSpellActionName = LoginPacket.method3662(var9);
if (Client.selectedSpellActionName == null) {
Client.selectedSpellActionName = "null";
}
Client.selectedSpellName = var9.dataText + class222.colorStartTag(16777215);
}
var23 = var9.field2654[var20];
if (var9.field2695 == null) {
var9.field2695 = new int[var9.field2592.length];
}
if (var9.field2655 == null) {
var9.field2655 = new int[var9.field2592.length];
}
if (var23 != 0) {
if (var9.field2695[var20] == 0) {
var9.field2695[var20] = var23 + Client.cycle + var9.field2655[var20];
} else {
var9.field2695[var20] = var23 + Client.cycle;
}
} else {
var9.field2695[var20] = Integer.MAX_VALUE;
}
}
if (!var21 && var9.field2695 != null) {
var9.field2695[var20] = 0;
}
}
}
if (var9.isIf3) {
if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
var33 = true;
} else {
var33 = false;
}
boolean var34 = false;
if ((MouseHandler.MouseHandler_currentButton == 1 || !JagexCache.mouseCam && MouseHandler.MouseHandler_currentButton == 4) && var33) {
var34 = true;
}
var21 = false;
if ((MouseHandler.MouseHandler_lastButton == 1 || !JagexCache.mouseCam && MouseHandler.MouseHandler_lastButton == 4) && MouseHandler.MouseHandler_lastPressedX >= var12 && MouseHandler.MouseHandler_lastPressedY >= var13 && MouseHandler.MouseHandler_lastPressedX < var14 && MouseHandler.MouseHandler_lastPressedY < var15) {
var21 = true;
}
if (var21) {
UserComparator3.clickWidget(var9, MouseHandler.MouseHandler_lastPressedX - var10, MouseHandler.MouseHandler_lastPressedY - var11);
}
if (var9.contentType == 1400) {
WorldMapRegion.worldMap.method6378(var17, var18, var33 & var34, var33 & var21);
}
if (Client.clickedWidget != null && var9 != Client.clickedWidget && var33 && WorldMapData_0.method192(MenuAction.getWidgetClickMask(var9))) {
Client.draggedOnWidget = var9;
}
if (var9 == Client.clickedWidgetParent) {
Client.field820 = true;
Client.field698 = var10;
Client.field822 = var11;
}
if (var9.hasListener) {
ScriptEvent var29;
if (var33 && Client.mouseWheelRotation != 0 && var9.onScroll != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseY = Client.mouseWheelRotation;
var29.args = var9.onScroll;
Client.scriptEvents.addFirst(var29);
}
if (Client.clickedWidget != null || DevicePcmPlayerProvider.dragInventoryWidget != null || Client.isMenuOpen) {
var21 = false;
var34 = false;
var33 = false;
}
if (!var9.isClicked && var21) {
var9.isClicked = true;
if (var9.onClick != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_lastPressedX - var10;
var29.mouseY = MouseHandler.MouseHandler_lastPressedY - var11;
var29.args = var9.onClick;
Client.scriptEvents.addFirst(var29);
}
}
if (var9.isClicked && var34 && var9.onClickRepeat != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onClickRepeat;
Client.scriptEvents.addFirst(var29);
}
if (var9.isClicked && !var34) {
var9.isClicked = false;
if (var9.onRelease != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onRelease;
Client.field843.addFirst(var29);
}
}
if (var34 && var9.onHold != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onHold;
Client.scriptEvents.addFirst(var29);
}
if (!var9.containsMouse && var33) {
var9.containsMouse = true;
if (var9.onMouseOver != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onMouseOver;
Client.scriptEvents.addFirst(var29);
}
}
if (var9.containsMouse && var33 && var9.onMouseRepeat != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onMouseRepeat;
Client.scriptEvents.addFirst(var29);
}
if (var9.containsMouse && !var33) {
var9.containsMouse = false;
if (var9.onMouseLeave != null) {
var29 = new ScriptEvent();
var29.isMouseInputEvent = true;
var29.widget = var9;
var29.mouseX = MouseHandler.MouseHandler_x - var10;
var29.mouseY = MouseHandler.MouseHandler_y - var11;
var29.args = var9.onMouseLeave;
Client.field843.addFirst(var29);
}
}
if (var9.onTimer != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onTimer;
Client.field900.addFirst(var29);
}
ScriptEvent var30;
int var35;
int var36;
if (var9.onVarTransmit != null && Client.field829 > var9.field2652) {
if (var9.varTransmitTriggers != null && Client.field829 - var9.field2652 <= 32) {
label880:
for (var35 = var9.field2652; var35 < Client.field829; ++var35) {
var23 = Client.field828[var35 & 31];
for (var36 = 0; var36 < var9.varTransmitTriggers.length; ++var36) {
if (var23 == var9.varTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onVarTransmit;
Client.scriptEvents.addFirst(var30);
break label880;
}
}
}
} else {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onVarTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2652 = Client.field829;
}
if (var9.onInvTransmit != null && Client.field898 > var9.field2585) {
if (var9.invTransmitTriggers != null && Client.field898 - var9.field2585 <= 32) {
label856:
for (var35 = var9.field2585; var35 < Client.field898; ++var35) {
var23 = Client.changedItemContainers[var35 & 31];
for (var36 = 0; var36 < var9.invTransmitTriggers.length; ++var36) {
if (var23 == var9.invTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onInvTransmit;
Client.scriptEvents.addFirst(var30);
break label856;
}
}
}
} else {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onInvTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2585 = Client.field898;
}
if (var9.onStatTransmit != null && Client.changedSkillsCount > var9.field2565) {
if (var9.statTransmitTriggers != null && Client.changedSkillsCount - var9.field2565 <= 32) {
label832:
for (var35 = var9.field2565; var35 < Client.changedSkillsCount; ++var35) {
var23 = Client.changedSkills[var35 & 31];
for (var36 = 0; var36 < var9.statTransmitTriggers.length; ++var36) {
if (var23 == var9.statTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onStatTransmit;
Client.scriptEvents.addFirst(var30);
break label832;
}
}
}
} else {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onStatTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2565 = Client.changedSkillsCount;
}
if (Client.chatCycle > var9.field2631 && var9.onChatTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onChatTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field833 > var9.field2631 && var9.onFriendTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onFriendTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field836 > var9.field2631 && var9.onClanTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onClanTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field645 > var9.field2631 && var9.onStockTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onStockTransmit;
Client.scriptEvents.addFirst(var29);
}
if (Client.field734 > var9.field2631 && var9.field2689 != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.field2689;
Client.scriptEvents.addFirst(var29);
}
if (Client.field834 > var9.field2631 && var9.onMiscTransmit != null) {
var29 = new ScriptEvent();
var29.widget = var9;
var29.args = var9.onMiscTransmit;
Client.scriptEvents.addFirst(var29);
}
var9.field2631 = Client.cycleCntr;
if (var9.onKey != null) {
for (var35 = 0; var35 < Client.field889; ++var35) {
ScriptEvent var31 = new ScriptEvent();
var31.widget = var9;
var31.keyTyped = Client.field865[var35];
var31.keyPressed = Client.field864[var35];
var31.args = var9.onKey;
Client.scriptEvents.addFirst(var31);
}
}
}
}
if (!var9.isIf3) {
if (Client.clickedWidget != null || DevicePcmPlayerProvider.dragInventoryWidget != null || Client.isMenuOpen) {
continue;
}
if ((var9.mouseOverRedirect >= 0 || var9.mouseOverColor != 0) && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
if (var9.mouseOverRedirect >= 0) {
class185.mousedOverWidgetIf1 = var0[var9.mouseOverRedirect];
} else {
class185.mousedOverWidgetIf1 = var9;
}
}
if (var9.type == 8 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
GrandExchangeOfferWorldComparator.field31 = var9;
}
if (var9.scrollHeight > var9.height) {
GrandExchangeEvents.method82(var9, var10 + var9.width, var11, var9.height, var9.scrollHeight, MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y);
}
}
if (var9.type == 0) {
updateInterface(var0, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY);
if (var9.children != null) {
updateInterface(var9.children, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY);
}
InterfaceParent var27 = (InterfaceParent)Client.interfaceParents.get((long)var9.id);
if (var27 != null) {
if (var27.type == 0 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15 && !Client.isMenuOpen) {
for (ScriptEvent var28 = (ScriptEvent)Client.scriptEvents.last(); var28 != null; var28 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var28.isMouseInputEvent) {
var28.remove();
var28.widget.containsMouse = false;
}
}
if (class3.widgetDragDuration == 0) {
Client.clickedWidget = null;
Client.clickedWidgetParent = null;
}
if (!Client.isMenuOpen) {
class2.addCancelMenuEntry();
}
}
Script.updateRootInterface(var27.group, var12, var13, var14, var15, var10, var11);
}
}
}
}
}
}
}
}