From 2adb760f02a73e2e0e8bbd600fb60e2928be6ae7 Mon Sep 17 00:00:00 2001 From: robinwithes Date: Wed, 3 Oct 2018 15:00:20 +0200 Subject: [PATCH] Add support for parsing Wilderness assignment updates to slayer plugin (#5757) Fixes #5687 --- .../client/plugins/slayer/SlayerPlugin.java | 4 ++-- .../plugins/slayer/SlayerPluginTest.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 384eaa41b7..0a12b34a34 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -78,7 +78,7 @@ import net.runelite.client.util.Text; public class SlayerPlugin extends Plugin { //Chat messages - private static final Pattern CHAT_GEM_PROGRESS_MESSAGE = Pattern.compile("You're assigned to kill (.*); only (\\d*) more to go\\."); + private static final Pattern CHAT_GEM_PROGRESS_MESSAGE = Pattern.compile("You're assigned to kill (.*?)(?: in the Wilderness)?; only (\\d*) more to go\\."); private static final String CHAT_GEM_COMPLETE_MESSAGE = "You need something new to hunt."; private static final Pattern CHAT_COMPLETE_MESSAGE = Pattern.compile("(?:\\d+,)*\\d+"); private static final String CHAT_CANCEL_MESSAGE = "Your task has been cancelled."; @@ -418,13 +418,13 @@ public class SlayerPlugin extends Plugin } Matcher mProgress = CHAT_GEM_PROGRESS_MESSAGE.matcher(chatMsg); + if (!mProgress.find()) { return; } String taskName = mProgress.group(1); int amount = Integer.parseInt(mProgress.group(2)); - setTask(taskName, amount); } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java index bca703dffd..eaa0b1843b 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java @@ -55,6 +55,8 @@ public class SlayerPluginTest { private static final String TASK_NEW = "Your new task is to kill 231 Suqahs."; private static final String TASK_NEW_NPC_CONTACT = "Excellent, you're doing great. Your new task is to kill
211 Suqahs."; + private static final String TASK_CHECKSLAYERGEM_WILDERNESS = "You're assigned to kill Suqahs in the Wilderness; only 211 more to go."; + private static final String TASK_CHECKSLAYERGEM = "You're assigned to kill Suqahs; only 211 more to go."; private static final String TASK_BOSS_NEW = "Excellent. You're now assigned to kill Vet'ion 3 times.
Your reward point tally is 914."; @@ -164,6 +166,24 @@ public class SlayerPluginTest assertEquals(914, slayerPlugin.getPoints()); } + @Test + public void testCheckSlayerGem() + { + ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", TASK_CHECKSLAYERGEM, null); + slayerPlugin.onChatMessage(chatMessageEvent); + assertEquals("Suqahs", slayerPlugin.getTaskName()); + assertEquals(211, slayerPlugin.getAmount()); + } + + @Test + public void testCheckSlayerGemWildernessTask() + { + ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", TASK_CHECKSLAYERGEM_WILDERNESS, null); + slayerPlugin.onChatMessage(chatMessageEvent); + assertEquals("Suqahs", slayerPlugin.getTaskName()); + assertEquals(211, slayerPlugin.getAmount()); + } + @Test public void testExistingTask() {