Skip to content

Commit 00fbf9b

Browse files
authored
fix: unregister npc overlay on shutdown (#2)
1 parent 9591872 commit 00fbf9b

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/main/java/com/pickpockethelper/HighlightManager.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import javax.inject.Inject;
99
import javax.inject.Singleton;
1010
import java.util.HashMap;
11+
import java.util.Map;
12+
import java.util.function.Function;
1113

1214
/**
1315
* Simplifies interaction with Runelite's overlay service.
@@ -20,17 +22,25 @@ public class HighlightManager {
2022

2123
private final NpcOverlayService npcOverlayService;
2224

23-
private final HashMap<NPC, HighlightedNpc> targets = new HashMap<>();
25+
private final Map<NPC, HighlightedNpc> targets = new HashMap<>();
26+
private final Function<NPC, HighlightedNpc> isTarget = targets::get;
2427

2528
@Inject
2629
public HighlightManager(PickpocketHelperConfig config, NpcOverlayService npcOverlayService, ClientThread clientThread) {
2730
this.config = config;
2831
this.npcOverlayService = npcOverlayService;
29-
npcOverlayService.registerHighlighter(targets::get);
3032

3133
clientThread.invoke(this::refresh);
3234
}
3335

36+
public void register() {
37+
npcOverlayService.registerHighlighter(isTarget);
38+
}
39+
40+
public void unregister() {
41+
npcOverlayService.unregisterHighlighter(isTarget);
42+
}
43+
3444
/**
3545
* Format an NPC as a highlightedNPC, so it can be highlighted.
3646
* @param npc the NPC to be highlighted.

src/main/java/com/pickpockethelper/PickpocketHelperPlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,15 @@ protected void startUp() {
147147
overlayManager.add(statisticOverlay);
148148
overlayManager.add(timerOverlay);
149149
audioManager.init();
150+
highlightManager.register();
150151
hooks.registerRenderableDrawListener(this::shouldRenderEntity);
151152
}
152153

153154
@Override
154155
protected void shutDown() {
155156
hooks.unregisterRenderableDrawListener(this::shouldRenderEntity);
156157
highlightManager.clearTargets();
158+
highlightManager.unregister();
157159
overlayManager.remove(statusOverlay);
158160
overlayManager.remove(splasherOverlay);
159161
overlayManager.remove(statisticOverlay);

0 commit comments

Comments
 (0)