1 package net
.encode
.wurmesp
.feature
.hook
;
3 import com
.wurmonline
.client
.comm
.SimpleServerConnectionClass
;
4 import java
.lang
.reflect
.Method
;
5 import java
.nio
.ByteBuffer
;
6 import java
.util
.logging
.Level
;
7 import net
.encode
.wurmesp
.WurmEspMod
;
9 public class CmdShowDeedPlan
11 public CmdShowDeedPlan() {
12 this.prepareHook("com.wurmonline.client.comm.SimpleServerConnectionClass", "reallyHandleCmdShowDeedPlan", "(Ljava/nio/ByteBuffer;)V", () -> (proxy
, method
, args
) -> {
13 if (WurmEspMod
.deedsize
) {
14 ByteBuffer bb
= (ByteBuffer
)args
[0];
18 int qId
= bb
.getInt();
19 SimpleServerConnectionClass simpleServerConnectionClass
= (SimpleServerConnectionClass
)proxy
;
20 Method readStringByteLengthMethod
= simpleServerConnectionClass
.getClass().getDeclaredMethod("readStringByteLength", ByteBuffer
.class);
21 readStringByteLengthMethod
.setAccessible(true);
22 Object
[] readStringByteLengthArgs
= new Object
[]{bb
};
23 String deedName
= (String
)readStringByteLengthMethod
.invoke(simpleServerConnectionClass
, readStringByteLengthArgs
);
24 int tokenX
= bb
.getInt();
25 int tokenY
= bb
.getInt();
26 int startX
= bb
.getInt();
27 int startY
= bb
.getInt();
28 int endX
= bb
.getInt();
29 int endY
= bb
.getInt();
30 int perimSize
= bb
.getInt();
31 WurmEspMod
.tilesHighlightManager
.addData(startX
, startY
, endX
, endY
);
32 WurmEspMod
.tileshighlight
= true;
36 method
.invoke(proxy
, args
);
40 WurmEspMod
.logger
.log(Level
.INFO
, "[WurmEspMod] SimpleServerConnectionClass.reallyHandleCmdShowDeedPlan hooked");