2 * Decompiled with CFR 0.151.
4 * Could not load the following classes:
5 * com.wurmonline.client.game.World
6 * com.wurmonline.client.renderer.PickRenderer
7 * com.wurmonline.client.renderer.backend.Queue
8 * org.gotti.wurmunlimited.modloader.ReflectionUtil
10 package net
.encode
.wurmesp
.feature
.hook
;
12 import java
.lang
.reflect
.Field
;
13 import java
.util
.logging
.Level
;
15 import org
.gotti
.wurmunlimited
.modloader
.ReflectionUtil
;
17 import com
.wurmonline
.client
.game
.World
;
18 import com
.wurmonline
.client
.renderer
.PickRenderer
;
19 import com
.wurmonline
.client
.renderer
.backend
.Queue
;
21 import net
.encode
.wurmesp
.WurmEspMod
;
23 public class RenderPickedItem
26 public RenderPickedItem() {
27 this.prepareHook("com.wurmonline.client.renderer.WorldRender", "renderPickedItem", "(Lcom/wurmonline/client/renderer/backend/Queue;)V", () -> (proxy
, method
, args
) -> {
28 method
.invoke(proxy
, args
);
29 Class
<?
> cls
= proxy
.getClass();
30 World world
= (World
)ReflectionUtil
.getPrivateField((Object
)proxy
, (Field
)ReflectionUtil
.getField(cls
, (String
)"world"));
31 WurmEspMod
._pickRenderer
= (PickRenderer
)ReflectionUtil
.getPrivateField((Object
)proxy
, (Field
)ReflectionUtil
.getField(cls
, (String
)"pickRenderer"));
32 Queue queuePick
= (Queue
)ReflectionUtil
.getPrivateField((Object
)proxy
, (Field
)ReflectionUtil
.getField(cls
, (String
)"queuePick"));
33 WurmEspMod
.pickableUnits
.stream().filter(unit
-> WurmEspMod
.players
&& unit
.isPlayer() || WurmEspMod
.uniques
&& unit
.isUnique() || WurmEspMod
.conditioned
&& unit
.isConditioned() || WurmEspMod
.animals
&& (unit
.isMob() && !unit
.isAggroMob()) || WurmEspMod
.mobs
&& unit
.isAggroMob() || WurmEspMod
.specials
&& unit
.isSpecial() || WurmEspMod
.items
&& unit
.isSpotted()).forEachOrdered(unit
-> {
34 if (unit
.isConditioned() && WurmEspMod
.conditioned
|| unit
.isConditioned() && WurmEspMod
.conditionedcolorsallways
|| unit
.isChampion() && WurmEspMod
.championmcoloralways
) {
35 unit
.renderUnit(queuePick
, true);
37 unit
.renderUnit(queuePick
, false);
40 if (WurmEspMod
.tileshighlight
) {
41 WurmEspMod
.tilesHighlightManager
.setWorldQueue(world
, queuePick
);
42 if (WurmEspMod
.tilesHighlightManager
.first
) {
43 WurmEspMod
.tilesHighlightManager
.refresh();
44 WurmEspMod
.tilesHighlightManager
.first
= false;
45 } else if (WurmEspMod
.tilesHighlightCronoManager
.hasEnded()) {
46 WurmEspMod
.tilesHighlightManager
.refresh();
47 WurmEspMod
.tilesHighlightCronoManager
.restart(5000L);
49 Thread tilesHighlightThread
= new Thread(() -> WurmEspMod
.tilesHighlightManager
.queue());
50 tilesHighlightThread
.setPriority(10);
51 tilesHighlightThread
.start();
53 WurmEspMod
.tilesHighlightManager
.setWorld(world
);
55 if (WurmEspMod
.tilescloseby
&& world
.getPlayer().getPos().getLayer() >= 0) {
56 WurmEspMod
.tilesCloseByManager
.setWorldQueue(world
, queuePick
);
57 if (WurmEspMod
.tilesCloseByManager
.first
) {
58 WurmEspMod
.tilesCloseByManager
.refresh();
59 WurmEspMod
.tilesCloseByManager
.first
= false;
60 } else if (WurmEspMod
.tilesCloseByCronoManager
.hasEnded()) {
61 WurmEspMod
.tilesCloseByManager
.refresh();
62 WurmEspMod
.tilesCloseByCronoManager
.restart(1000L);
64 Thread tilesThread
= new Thread(() -> WurmEspMod
.tilesCloseByManager
.queue());
65 tilesThread
.setPriority(10);
68 if (WurmEspMod
.tilesclosebynotrideable
&& world
.getPlayer().getPos().getLayer() >= 0) {
69 WurmEspMod
.tilesCloseByWalkableManager
.setWorldQueue(world
, queuePick
);
70 if (WurmEspMod
.tilesCloseByWalkableManager
.first
) {
71 WurmEspMod
.tilesCloseByWalkableManager
.refresh();
72 WurmEspMod
.tilesCloseByWalkableManager
.first
= false;
73 } else if (WurmEspMod
.tilesCloseByWalkableCronoManager
.hasEnded()) {
74 WurmEspMod
.tilesCloseByWalkableManager
.refresh();
75 WurmEspMod
.tilesCloseByWalkableCronoManager
.restart(1000L);
77 Thread tilesWalkableThread
= new Thread(() -> WurmEspMod
.tilesCloseByWalkableManager
.queue());
78 tilesWalkableThread
.setPriority(10);
79 tilesWalkableThread
.start();
81 if (WurmEspMod
.tilesFlower
&& world
.getPlayer().getPos().getLayer() >= 0) {
82 WurmEspMod
.tilesFlowerManager
.setWorldQueue(world
, queuePick
);
83 if (WurmEspMod
.tilesFlowerManager
.first
) {
84 WurmEspMod
.tilesFlowerManager
.refresh();
85 WurmEspMod
.tilesFlowerManager
.first
= false;
86 } else if (WurmEspMod
.tilesFlowerCronoManager
.hasEnded()) {
87 WurmEspMod
.tilesFlowerManager
.refresh();
88 WurmEspMod
.tilesFlowerCronoManager
.restart(1000L);
90 Thread tilesFlowerThread
= new Thread(() -> WurmEspMod
.tilesFlowerManager
.queue());
91 tilesFlowerThread
.setPriority(10);
92 tilesFlowerThread
.start();
94 if (WurmEspMod
.xray
&& world
.getPlayer().getPos().getLayer() < 0) {
96 WurmEspMod
.xrayManager
.setWorldQueue(world
, queuePick
);
97 if (WurmEspMod
.xrayManager
.first
) {
98 if (WurmEspMod
.xrayrefreshthread
) {
99 refreshThread
= new Thread(() -> WurmEspMod
.xrayManager
.refresh());
100 refreshThread
.setPriority(10);
101 refreshThread
.start();
103 WurmEspMod
.xrayManager
.refresh();
105 WurmEspMod
.xrayManager
.first
= false;
106 } else if (WurmEspMod
.xrayCronoManager
.hasEnded()) {
107 if (WurmEspMod
.xrayrefreshthread
) {
108 refreshThread
= new Thread(() -> WurmEspMod
.xrayManager
.refresh());
109 refreshThread
.setPriority(10);
110 refreshThread
.start();
112 WurmEspMod
.xrayManager
.refresh();
114 WurmEspMod
.xrayCronoManager
.restart(WurmEspMod
.xrayrefreshrate
* 1000);
116 if (WurmEspMod
.xraythread
) {
117 Thread xrayThread
= new Thread(() -> WurmEspMod
.xrayManager
.queue());
118 xrayThread
.setPriority(10);
121 WurmEspMod
.xrayManager
.queue();
126 WurmEspMod
.logger
.log(Level
.INFO
, "[WurmEspMod] WorldRender.renderPickedItem hooked");