diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java index daf6cb3785..04d0bf2289 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java @@ -215,34 +215,32 @@ public class ClueScrollPlugin extends Plugin if (clue instanceof ObjectClueScroll) { - int objectId = ((ObjectClueScroll) clue).getObjectId(); + final ObjectClueScroll objectClueScroll = (ObjectClueScroll) clue; + int objectId = objectClueScroll.getObjectId(); if (objectId != -1) { - if (clue instanceof LocationClueScroll) + // Match object with location every time + final WorldPoint location = objectClueScroll.getLocation(); + + if (location != null) { - // Match object with location every time - final WorldPoint location = ((LocationClueScroll) clue).getLocation(); + final LocalPoint localLocation = LocalPoint.fromWorld(client, location); - if (location != null) + if (localLocation != null) { - final LocalPoint localLocation = LocalPoint.fromWorld(client, location); + final Region region = client.getRegion(); + final Tile[][][] tiles = region.getTiles(); + final Tile tile = tiles[client.getPlane()][localLocation.getRegionX()][localLocation.getRegionY()]; - if (localLocation != null) + objectsToMark = Arrays.stream(tile.getGameObjects()) + .filter(object -> object != null && object.getId() == objectId) + .toArray(GameObject[]::new); + + // Set hint arrow to first object found as there can only be 1 hint arrow + if (objectsToMark.length >= 1) { - final Region region = client.getRegion(); - final Tile[][][] tiles = region.getTiles(); - final Tile tile = tiles[client.getPlane()][localLocation.getRegionX()][localLocation.getRegionY()]; - - objectsToMark = Arrays.stream(tile.getGameObjects()) - .filter(object -> object != null && object.getId() == objectId) - .toArray(GameObject[]::new); - - // Set hint arrow to first object found as there can only be 1 hint arrow - if (objectsToMark.length >= 1) - { - client.setHintArrow(objectsToMark[0].getWorldLocation()); - } + client.setHintArrow(objectsToMark[0].getWorldLocation()); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java index 23f3bf5fd9..a0dc33124c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java @@ -47,7 +47,7 @@ import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMA import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.SPADE_IMAGE; @Getter -public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueScroll, ObjectClueScroll, LocationClueScroll +public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueScroll, ObjectClueScroll { private static final Set CLUES = ImmutableSet.of( new CrypticClue("Show this to Sherlock.", "Sherlock", new WorldPoint(2733, 3415, 0), "Sherlock is located to the east of the Sorcerer's tower in Seers' Village."), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java index b9c04c39c1..2603cfa35d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java @@ -46,7 +46,7 @@ import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.components.PanelComponent; @Getter -public class MapClue extends ClueScroll implements ObjectClueScroll, LocationClueScroll +public class MapClue extends ClueScroll implements ObjectClueScroll { private static final Set CLUES = ImmutableSet.of( new MapClue(CLUE_SCROLL_EASY_12179, new WorldPoint(3300, 3291, 0)), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ObjectClueScroll.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ObjectClueScroll.java index 87149e6a67..605fab1042 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ObjectClueScroll.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ObjectClueScroll.java @@ -24,7 +24,7 @@ */ package net.runelite.client.plugins.cluescrolls.clues; -public interface ObjectClueScroll +public interface ObjectClueScroll extends LocationClueScroll { int getObjectId(); }