diff --git a/gradle.properties b/gradle.properties index a55e70d708..d9f735496b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,7 @@ project.build.group=net.runelite project.build.version=1.12.26.2 glslang.path= -microbot.version=2.5.9 +microbot.version=2.6.0 microbot.commit.sha=nogit microbot.repo.url=http://138.201.81.246:8081/repository/microbot-snapshot/ microbot.repo.username= diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/dialogues/Rs2Dialogue.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/dialogues/Rs2Dialogue.java index 04c2223c0b..ab7b0122c8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/dialogues/Rs2Dialogue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/dialogues/Rs2Dialogue.java @@ -17,6 +17,7 @@ import static net.runelite.client.plugins.microbot.util.Global.sleepUntilTrue; public class Rs2Dialogue { + private static final String CLICK_HERE_TO_CONTINUE = "Click here to continue"; /** * Checks if the player is currently in a dialogue state. @@ -112,13 +113,20 @@ private static boolean hasBarrowsContinue() { /** * Checks if there is a "Continue" option in the spell filter dialogue. * - *
This method verifies the visibility of the widget associated with the spell filter continue option. - * It checks the widget with interface ID 162 and child ID 43 to determine if the "Continue" option is present.
+ *This method verifies the chatbox widget used by spell filter continue prompts. + * It checks the widget text because the same chatbox child is also used for text inputs.
* * @return true if the spell filter continue option is visible, false otherwise. */ private static boolean hasSpellFilterContinue() { - return Rs2Widget.isWidgetVisible(162, 44); + return Microbot.getClientThread().runOnClientThreadOptional(() -> { + Widget widget = Microbot.getClient().getWidget(162, 44); + return widget != null && !widget.isHidden() && isContinuePromptText(widget.getText()); + }).orElse(false); + } + + static boolean isContinuePromptText(String text) { + return text != null && Rs2UiHelper.stripTagsToSpace(text).equalsIgnoreCase(CLICK_HERE_TO_CONTINUE); } /** diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/collision-map.zip b/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/collision-map.zip index dc77b7fc80..309dfd5817 100644 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/collision-map.zip and b/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/collision-map.zip differ diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/dialogues/Rs2DialogueTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/dialogues/Rs2DialogueTest.java new file mode 100644 index 0000000000..de226dcf94 --- /dev/null +++ b/runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/dialogues/Rs2DialogueTest.java @@ -0,0 +1,20 @@ +package net.runelite.client.plugins.microbot.util.dialogues; + +import org.junit.Test; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class Rs2DialogueTest { + @Test + public void isContinuePromptTextAcceptsContinuePrompt() { + assertTrue(Rs2Dialogue.isContinuePromptText("