diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index a983bd90..2464c08a 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -25,7 +25,7 @@ */ object ProjectVersions { - const val openosrsVersion = "4.6.0" + const val openosrsVersion = "4.8.1" const val apiVersion = "^1.0.0" } diff --git a/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java b/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java index d42be8b3..7f779a8b 100644 --- a/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java +++ b/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java @@ -307,6 +307,16 @@ public abstract class UtilsScript extends Plugin { game.tick(); } + protected void chatOptionalNpc(Area area, String npcName, String... chatOptions) { + if (area != null && !area.contains(game.localPlayer().position())) { + walking.walkTo(area); + } + + game.npcs().withName(npcName).nearest().interact("Talk-to"); + chatbox.chats(Arrays.asList(chatOptions)); + game.tick(); + } + protected void unequip(String item, EquipmentSlot slot) { if (game.equipment().withName(item).exists()) { game.widget(slot.widgetID, slot.widgetChild).interact(0); diff --git a/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/Chatbox.java b/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/Chatbox.java index 1108f678..91d02a9d 100644 --- a/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/Chatbox.java +++ b/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/Chatbox.java @@ -50,6 +50,9 @@ public class Chatbox { continueChats(); } + /** + * Choose chat option in order of given chat options. Will fail if chat option isn't found. + */ public void chat(String... options) { game.waitUntil(() -> chatState() != ChatState.CLOSED, 100); @@ -72,6 +75,9 @@ public class Chatbox { continueChats(); } + /** + * Choose chat option from any given chat options + */ public void chats(Collection options) { game.waitUntil(() -> chatState() != ChatState.CLOSED); @@ -195,7 +201,7 @@ public class Chatbox { public String findFromOptions(Collection options) { if (chatState() == ChatState.CLOSED || chatState() != ChatState.OPTIONS_CHAT) { - return ""; + return ""; } for (var i = 0; i < game.widget(219, 1).items().size(); i++) {