diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryOverlay.java index b459016f88..17a107553e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryOverlay.java @@ -53,7 +53,6 @@ public class KourendLibraryOverlay extends Overlay { private final static WorldPoint LIBRARY_CENTER = new WorldPoint(1632, 3807, 1); private final static int MAXIMUM_DISTANCE = 24; - private final static int ROUGH_ENABLE_DISTANCE = 45; private final Library library; private final Client client; @@ -79,7 +78,7 @@ public class KourendLibraryOverlay extends Overlay WorldPoint playerLoc = player.getWorldLocation(); - if (playerLoc.distanceTo2D(LIBRARY_CENTER) > ROUGH_ENABLE_DISTANCE) + if (playerLoc.getRegionID() != KourendLibraryPlugin.REGION) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java index f46571e397..65c949cbd1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java @@ -30,6 +30,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.imageio.ImageIO; import javax.inject.Inject; +import javax.swing.SwingUtilities; import lombok.extern.slf4j.Slf4j; import net.runelite.api.AnimationID; import net.runelite.api.ChatMessageType; @@ -55,6 +56,8 @@ import net.runelite.client.ui.overlay.OverlayManager; @Slf4j public class KourendLibraryPlugin extends Plugin { + final static int REGION = 6459; + final static boolean debug = false; @Inject @@ -77,6 +80,7 @@ public class KourendLibraryPlugin extends Plugin private KourendLibraryPanel panel; private NavigationButton navButton; + private boolean buttonAttached = false; private WorldPoint lastBookcaseClick = null; private WorldPoint lastBookcaseAnimatedOn = null; @@ -102,14 +106,13 @@ public class KourendLibraryPlugin extends Plugin .icon(icon) .panel(panel) .build(); - - pluginToolbar.addNavigation(navButton); } @Override protected void shutDown() { overlayManager.remove(overlay); + pluginToolbar.removeNavigation(navButton); } @@ -151,6 +154,28 @@ public class KourendLibraryPlugin extends Plugin @Subscribe void onTick(GameTick tick) { + boolean inRegion = client.getLocalPlayer().getWorldLocation().getRegionID() == REGION; + if (inRegion != buttonAttached) + { + SwingUtilities.invokeLater(() -> + { + if (inRegion) + { + pluginToolbar.addNavigation(navButton); + } + else + { + pluginToolbar.removeNavigation(navButton); + } + }); + buttonAttached = inRegion; + } + + if (!inRegion) + { + return; + } + if (lastBookcaseAnimatedOn != null) { Widget find = client.getWidget(WidgetInfo.DIALOG_SPRITE_SPRITE);