From 2dd9bbbf5eb68aa88e234b1f22ef95356d939d06 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 15 Jun 2020 21:44:09 -0400 Subject: [PATCH] cannon plugin: move spot scene check to game state change event --- .../client/plugins/cannon/CannonCounter.java | 2 +- .../client/plugins/cannon/CannonPlugin.java | 21 +++++++------------ .../plugins/cannon/CannonSpotOverlay.java | 9 +++++--- .../client/plugins/cannon/CannonSpots.java | 2 +- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java index bd13e194be..a4b8028e47 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java @@ -28,7 +28,7 @@ import java.awt.Color; import java.awt.image.BufferedImage; import net.runelite.client.ui.overlay.infobox.InfoBox; -public class CannonCounter extends InfoBox +class CannonCounter extends InfoBox { private final CannonPlugin plugin; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 39bcc3b01c..7492978edf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -26,7 +26,6 @@ package net.runelite.client.plugins.cannon; import com.google.inject.Provides; import java.awt.Color; -import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; @@ -37,6 +36,7 @@ import net.runelite.api.AnimationID; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GameObject; +import net.runelite.api.GameState; import net.runelite.api.InventoryID; import net.runelite.api.Item; import net.runelite.api.ItemID; @@ -47,8 +47,8 @@ import static net.runelite.api.ProjectileID.CANNONBALL; import static net.runelite.api.ProjectileID.GRANITE_CANNONBALL; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.ChatMessage; -import net.runelite.client.events.ConfigChanged; import net.runelite.api.events.GameObjectSpawned; +import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.ProjectileMoved; @@ -56,10 +56,10 @@ import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @@ -217,13 +217,10 @@ public class CannonPlugin extends Plugin } - @Schedule( - period = 1, - unit = ChronoUnit.SECONDS - ) - public void checkSpots() + @Subscribe + public void onGameStateChanged(GameStateChanged gameStateChanged) { - if (!config.showCannonSpots()) + if (gameStateChanged.getGameState() != GameState.LOGGED_IN) { return; } @@ -231,12 +228,10 @@ public class CannonPlugin extends Plugin spotPoints.clear(); for (WorldPoint spot : CannonSpots.getCannonSpots()) { - if (spot.getPlane() != client.getPlane() || !spot.isInScene(client)) + if (WorldPoint.isInScene(client, spot.getX(), spot.getY())) { - continue; + spotPoints.add(spot); } - - spotPoints.add(spot); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpotOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpotOverlay.java index 01c3eff871..b7774855b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpotOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpotOverlay.java @@ -29,6 +29,7 @@ import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Polygon; import java.awt.image.BufferedImage; +import java.util.List; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Setter; @@ -43,7 +44,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; -public class CannonSpotOverlay extends Overlay +class CannonSpotOverlay extends Overlay { private static final int MAX_DISTANCE = 2350; @@ -69,12 +70,14 @@ public class CannonSpotOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (hidden || !config.showCannonSpots() || plugin.isCannonPlaced()) + List spotPoints = plugin.getSpotPoints(); + + if (hidden || spotPoints.isEmpty() || !config.showCannonSpots() || plugin.isCannonPlaced()) { return null; } - for (WorldPoint spot : plugin.getSpotPoints()) + for (WorldPoint spot : spotPoints) { if (spot.getPlane() != client.getPlane()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpots.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpots.java index 85bc05f217..764a149520 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpots.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonSpots.java @@ -30,7 +30,7 @@ import java.util.List; import lombok.Getter; import net.runelite.api.coords.WorldPoint; -public enum CannonSpots +enum CannonSpots { BLOODVELDS(new WorldPoint(2439, 9821, 0), new WorldPoint(2448, 9821, 0), new WorldPoint(2472, 9832, 0), new WorldPoint(2453, 9817, 0)),