a8bff11380e6d32bd13bc352871cc22d1a04f1a0
1 package net
.encode
.wurmesp
.feature
.hook
;
3 import com
.wurmonline
.client
.game
.PlayerPosition
;
4 import java
.util
.logging
.Level
;
5 import java
.util
.logging
.Logger
;
6 import javassist
.CannotCompileException
;
7 import javassist
.ClassPool
;
8 import javassist
.CtClass
;
9 import javassist
.NotFoundException
;
10 import net
.encode
.wurmesp
.WurmEspMod
;
11 import net
.encode
.wurmesp
.util
.ConfigUtils
;
12 import org
.gotti
.wurmunlimited
.modloader
.classhooks
.HookManager
;
14 public class HandleDevInput
{
15 public HandleDevInput() {
17 ClassPool classPool
= HookManager
.getInstance().getClassPool();
18 CtClass ctWurmConsole
= classPool
.getCtClass("com.wurmonline.client.console.WurmConsole");
19 ctWurmConsole
.getMethod("handleDevInput", "(Ljava/lang/String;[Ljava/lang/String;)Z").insertBefore("if (net.encode.wurmesp.feature.hook.HandleDevInput.handleInput($1,$2)) return true;");
20 WurmEspMod
.logger
.log(Level
.INFO
, "[WurmEspMod] Return inserted on handleDevInput");
22 catch (CannotCompileException
| NotFoundException ex
) {
23 Logger
.getLogger(HandleDevInput
.class.getName()).log(Level
.SEVERE
, null, ex
);
25 WurmEspMod
.logger
.log(Level
.INFO
, "[WurmEspMod] Return inserted on handleDevInput");
28 public static boolean handleInput(String cmd
, String
[] data
) {
29 if (cmd
.equals("esp")) {
30 if (data
.length
== 2) {
33 WurmEspMod
.players
= !WurmEspMod
.players
;
34 WurmEspMod
.hud
.consoleOutput("ESP players changed to: " + Boolean
.toString(WurmEspMod
.players
));
38 WurmEspMod
.mobs
= !WurmEspMod
.mobs
;
39 WurmEspMod
.hud
.consoleOutput("ESP mobs changed to: " + Boolean
.toString(WurmEspMod
.mobs
));
43 WurmEspMod
.specials
= !WurmEspMod
.specials
;
44 WurmEspMod
.hud
.consoleOutput("ESP specials changed to: " + Boolean
.toString(WurmEspMod
.specials
));
48 WurmEspMod
.uniques
= !WurmEspMod
.uniques
;
49 WurmEspMod
.hud
.consoleOutput("ESP uniques changed to: " + Boolean
.toString(WurmEspMod
.uniques
));
53 WurmEspMod
.conditioned
= !WurmEspMod
.conditioned
;
54 WurmEspMod
.hud
.consoleOutput("ESP champions changed to: " + Boolean
.toString(WurmEspMod
.conditioned
));
58 WurmEspMod
.xray
= !WurmEspMod
.xray
;
59 WurmEspMod
.hud
.consoleOutput("ESP xray changed to: " + Boolean
.toString(WurmEspMod
.xray
));
62 case "tilescloseby": {
63 WurmEspMod
.tilescloseby
= !WurmEspMod
.tilescloseby
;
64 WurmEspMod
.hud
.consoleOutput("ESP tilescloseby changed to: " + Boolean
.toString(WurmEspMod
.tilescloseby
));
68 WurmEspMod
.deedsize
= !WurmEspMod
.deedsize
;
69 WurmEspMod
.hud
.consoleOutput("ESP deedsize changed to: " + Boolean
.toString(WurmEspMod
.deedsize
));
73 WurmEspMod
.hud
.consoleOutput("Usage: esp search {h/m/hm/off} <name>");
77 WurmEspMod
.hud
.consoleOutput("Usage: esp planner {n/s/e/w} <tiles> <times> <space>");
78 WurmEspMod
.hud
.consoleOutput("Usage: esp planner square <startX> <startY> <endX> <endY>");
79 WurmEspMod
.hud
.consoleOutput("Usage: esp planner square <radius>");
80 WurmEspMod
.hud
.consoleOutput("Usage: esp planner tile <tileX> <tileY>");
81 WurmEspMod
.hud
.consoleOutput("Usage: esp planner clear");
85 ConfigUtils
.loadProperties("wurmesp");
86 ConfigUtils
.DoConfig(WurmEspMod
.modProperties
);
87 WurmEspMod
.hud
.consoleOutput("[WurmEspMod] Config Reloaded");
91 WurmEspMod
.hud
.consoleOutput("Usage: esp {players|mobs|specials|uniques|conditioned|xray|tilescloseby|deedsize|reload}");
96 if (data
.length
> 2) {
99 if (data
[2].equals("h")) {
100 WurmEspMod
.search
= data
[3];
101 WurmEspMod
.searchType
= WurmEspMod
.SEARCHTYPE
.HOVER
;
102 WurmEspMod
.hud
.consoleOutput("Searching for " + WurmEspMod
.search
+ " in HoverName");
105 if (data
[2].equals("m")) {
106 WurmEspMod
.search
= data
[3];
107 WurmEspMod
.searchType
= WurmEspMod
.SEARCHTYPE
.MODEL
;
108 WurmEspMod
.hud
.consoleOutput("Searching for " + WurmEspMod
.search
+ " in ModelName");
111 if (data
[2].equals("hm")) {
112 WurmEspMod
.search
= data
[3];
113 WurmEspMod
.searchType
= WurmEspMod
.SEARCHTYPE
.BOTH
;
114 WurmEspMod
.hud
.consoleOutput("Searching for " + WurmEspMod
.search
+ " in HoverName and ModelName");
117 if (data
[2].equals("off")) {
118 WurmEspMod
.search
= "";
119 WurmEspMod
.searchType
= WurmEspMod
.SEARCHTYPE
.NONE
;
120 WurmEspMod
.hud
.consoleOutput("Searching off");
123 WurmEspMod
.hud
.consoleOutput("Usage: esp search {h/m/hm/off} <name>");
127 if (data
.length
== 3 && data
[2].equals("clear")) {
128 WurmEspMod
._tilesHighlightBase
.clear();
129 WurmEspMod
.tileshighlight
= false;
130 WurmEspMod
.hud
.consoleOutput("Planner data cleared.");
133 if (data
.length
== 3 && data
[2].equals("tile")) {
134 PlayerPosition pos
= WurmEspMod
.hud
.getWorld().getPlayer().getPos();
135 int tileX
= pos
.getTileX();
136 int tileY
= pos
.getTileY();
137 WurmEspMod
.tilesHighlightManager
.addData(tileX
, tileY
);
138 WurmEspMod
.tileshighlight
= true;
139 WurmEspMod
.hud
.consoleOutput("Added planner data. [TileX: " + String
.valueOf(tileX
) + "][tileY: " + String
.valueOf(tileY
) + "]");
142 if (data
.length
== 4 && data
[2].equals("square")) {
143 int radius
= Integer
.parseInt(data
[3]);
144 WurmEspMod
.tilesHighlightManager
.addData(radius
);
145 WurmEspMod
.tileshighlight
= true;
146 WurmEspMod
.hud
.consoleOutput("Added planner data. [radius: " + data
[3] + "]");
149 if (data
.length
== 5 && data
[2].equals("tile")) {
150 int tileX
= Integer
.parseInt(data
[3]);
151 int tileY
= Integer
.parseInt(data
[4]);
152 WurmEspMod
.tilesHighlightManager
.addData(tileX
, tileY
);
153 WurmEspMod
.tileshighlight
= true;
154 WurmEspMod
.hud
.consoleOutput("Added planner data. [TileX: " + data
[3] + "][tileY: " + data
[4] + "]");
157 if (data
.length
== 6 && "nsew".contains(data
[2])) {
158 String direction
= data
[2];
159 int tiles
= Integer
.parseInt(data
[3]);
160 int times
= Integer
.parseInt(data
[4]);
161 int space
= Integer
.parseInt(data
[5]);
162 WurmEspMod
.tilesHighlightManager
.addData(direction
, tiles
, times
, space
);
163 WurmEspMod
.tileshighlight
= true;
164 WurmEspMod
.hud
.consoleOutput("Added planner data. [direction: " + direction
+ "][tiles: " + data
[3] + "][times: " + data
[4] + "][space: " + data
[5] + "]");
167 if (data
.length
== 7 && data
[2].equals("square")) {
168 int startX
= Integer
.parseInt(data
[3]);
169 int startY
= Integer
.parseInt(data
[4]);
170 int endX
= Integer
.parseInt(data
[5]);
171 int endY
= Integer
.parseInt(data
[6]);
172 WurmEspMod
.tilesHighlightManager
.addData(startX
, startY
, endX
, endY
);
173 WurmEspMod
.tileshighlight
= true;
174 WurmEspMod
.hud
.consoleOutput("Added planner data. [startX: " + data
[3] + "][startY: " + data
[4] + "][endX: " + data
[5] + "][endY: " + data
[6] + "]");
177 WurmEspMod
.hud
.consoleOutput("Usage: esp planner {n/s/e/w} <tiles> <times> <space>");
178 WurmEspMod
.hud
.consoleOutput("Usage: esp planner square <startX> <startY> <endX> <endY>");
179 WurmEspMod
.hud
.consoleOutput("Usage: esp planner square <radius>");
180 WurmEspMod
.hud
.consoleOutput("Usage: esp planner tile <tileX> <tileY>");
181 WurmEspMod
.hud
.consoleOutput("Usage: esp planner clear");
185 WurmEspMod
.hud
.consoleOutput("Error.");
190 WurmEspMod
.hud
.consoleOutput("Error.");