From 36bb7c8401fdd9ae88a185e9e193b4f7183aed54 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Tue, 10 Sep 2019 16:58:27 -0700 Subject: [PATCH] cluescrolls: Reset clue on new beginner/master step When receiving a new beginner or master clue step (which can be detected by checking the item ID shown in the chat dialog), the clue ID does not change, because all beginner and master clues share a single ID. Hence, we can reset the current clue when the "You've found a new clue!" dialog appears to prevent stale clue information from persisting between steps. Closes runelite/runelite#9830 --- .../plugins/cluescrolls/ClueScrollPlugin.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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 cd3dbed6c6..47c64a5488 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 @@ -233,14 +233,6 @@ public class ClueScrollPlugin extends Plugin ((SkillChallengeClue) clue).setChallengeCompleted(true); } } - - if (!event.getMessage().equals("The strange device cools as you find your treasure.") - && !event.getMessage().equals("Well done, you've completed the Treasure Trail!")) - { - return; - } - - resetClue(true); } @Subscribe @@ -408,6 +400,15 @@ public class ClueScrollPlugin extends Plugin } } + // Reset clue when receiving a new beginner or master clue + // These clues use a single item ID, so we cannot detect step changes based on the item ID changing + final Widget chatDialogClueItem = client.getWidget(WidgetInfo.DIALOG_SPRITE_SPRITE); + if (chatDialogClueItem != null + && (chatDialogClueItem.getItemId() == ItemID.CLUE_SCROLL_BEGINNER || chatDialogClueItem.getItemId() == ItemID.CLUE_SCROLL_MASTER)) + { + resetClue(true); + } + // If we have a clue, save that knowledge // so the clue window doesn't have to be open. updateClue(findClueScroll());