diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/Implings.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/Implings.java index b579049542..b78d64e4e4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/Implings.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/Implings.java @@ -24,9 +24,11 @@ */ package net.runelite.client.plugins.implings; +import com.google.common.eventbus.Subscribe; import java.awt.Font; import java.awt.GraphicsEnvironment; import net.runelite.client.RuneLite; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.Overlay; @@ -69,4 +71,10 @@ public class Implings extends Plugin return overlay; } + @Subscribe + public void updateConfig(ConfigChanged event) + { + overlay.updateConfig(); + } + } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java index 4cee2b54da..a7c584942d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java @@ -24,18 +24,14 @@ */ package net.runelite.client.plugins.implings; -import com.google.common.base.Suppliers; import com.google.common.primitives.Ints; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Polygon; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import java.util.concurrent.TimeUnit; -import java.util.function.Supplier; import net.runelite.api.Actor; import net.runelite.api.Client; import net.runelite.api.GameState; @@ -59,7 +55,7 @@ public class ImplingsOverlay extends Overlay private static final int DYNAMIC_SPAWN = 1633; private final ImplingsConfig config; - private final Supplier> ids = Suppliers.memoizeWithExpiration(this::checkConfig, 1, TimeUnit.SECONDS); + private final List ids; private final Client client = RuneLite.getClient(); @@ -67,6 +63,7 @@ public class ImplingsOverlay extends Overlay { super(OverlayPosition.DYNAMIC); this.config = plugin.getConfig(); + ids = new LinkedList<>(); } @Override @@ -77,7 +74,7 @@ public class ImplingsOverlay extends Overlay return null; } - NPCQuery implingQuery = new NPCQuery().idEquals(Ints.toArray(ids.get())); + NPCQuery implingQuery = new NPCQuery().idEquals(Ints.toArray(ids)); NPC[] implings = client.runQuery(implingQuery); for (NPC imp : implings) { @@ -90,9 +87,9 @@ public class ImplingsOverlay extends Overlay } // I am aware this is ugly. As always, feedback is welcome - private List checkConfig() + public void updateConfig() { - List ids = new LinkedList<>(); + ids.clear(); if (config.showBaby()) { ids.add(NpcID.BABY_IMPLING); @@ -153,7 +150,6 @@ public class ImplingsOverlay extends Overlay ids.add(STATIC_SPAWN); ids.add(DYNAMIC_SPAWN); } - return ids; } private void drawImp(Graphics2D graphics, Actor actor, String text, Color color)