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()
{