Clean
[esp.git] / src / net / encode / wurmesp / feature / hook / GroundItemCellRenderableRemove.java
CommitLineData
82327c1d 1package net.encode.wurmesp.feature.hook;
2
3import java.lang.reflect.Field;
4import java.util.logging.Level;
5
6import org.gotti.wurmunlimited.modloader.ReflectionUtil;
7
8import com.wurmonline.client.renderer.GroundItemData;
9
10import net.encode.wurmesp.Unit;
11import net.encode.wurmesp.WurmEspMod;
12
13public class GroundItemCellRenderableRemove
14extends Hook {
15 public GroundItemCellRenderableRemove() {
16 this.prepareHook("com.wurmonline.client.renderer.cell.GroundItemCellRenderable", "removed", "(Z)V", () -> (proxy, method, args) -> {
17 method.invoke(proxy, args);
18 Class<?> cls = proxy.getClass();
19 GroundItemData item = (GroundItemData)ReflectionUtil.getPrivateField((Object)proxy, (Field)ReflectionUtil.getField(cls, (String)"item"));
20 for (Unit unit : WurmEspMod.pickableUnits) {
21 if (unit.getId() != item.getId()) continue;
22 WurmEspMod.toRemove.add(unit);
23 }
24 for (Unit unit : WurmEspMod.toRemove) {
25 if (unit.getId() != item.getId()) continue;
26 WurmEspMod.pickableUnits.remove(unit);
27 }
28 WurmEspMod.toRemove.clear();
29 return null;
30 });
31 WurmEspMod.logger.log(Level.INFO, "[WurmEspMod] GroundItemCellRenderable.removed hooked");
32 }
33}
34