npchighlight: Don't iterate npcs off the client thread

This commit is contained in:
Max Weber
2020-07-10 19:29:59 -06:00
committed by Adam
parent f0a8b67820
commit 4308d433a2
2 changed files with 16 additions and 18 deletions

View File

@@ -187,7 +187,6 @@ public class NpcIndicatorsPlugin extends Plugin
{
overlayManager.add(npcSceneOverlay);
overlayManager.add(npcMinimapOverlay);
highlights = getHighlights();
clientThread.invoke(() ->
{
skipNextSpawnCheck = true;
@@ -200,13 +199,16 @@ public class NpcIndicatorsPlugin extends Plugin
{
overlayManager.remove(npcSceneOverlay);
overlayManager.remove(npcMinimapOverlay);
deadNpcsToDisplay.clear();
memorizedNpcs.clear();
spawnedNpcsThisTick.clear();
despawnedNpcsThisTick.clear();
teleportGraphicsObjectSpawnedThisTick.clear();
npcTags.clear();
highlightedNpcs.clear();
clientThread.invoke(() ->
{
deadNpcsToDisplay.clear();
memorizedNpcs.clear();
spawnedNpcsThisTick.clear();
despawnedNpcsThisTick.clear();
teleportGraphicsObjectSpawnedThisTick.clear();
npcTags.clear();
highlightedNpcs.clear();
});
}
@Subscribe
@@ -231,8 +233,7 @@ public class NpcIndicatorsPlugin extends Plugin
return;
}
highlights = getHighlights();
rebuildAllNpcs();
clientThread.invoke(this::rebuildAllNpcs);
}
@Subscribe
@@ -516,8 +517,10 @@ public class NpcIndicatorsPlugin extends Plugin
return Text.fromCSV(configNpcs);
}
private void rebuildAllNpcs()
@VisibleForTesting
void rebuildAllNpcs()
{
highlights = getHighlights();
highlightedNpcs.clear();
if (client.getGameState() != GameState.LOGGED_IN &&