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 41080747e7..328fba553b 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 @@ -25,6 +25,7 @@ */ package net.runelite.client.plugins.slayer; +import com.google.common.annotations.VisibleForTesting; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; import java.awt.Color; @@ -438,7 +439,9 @@ public class SlayerPlugin extends Plugin { final int taskAmount = Integer.parseInt(bracerProgress.group(1)); setTask(taskName, taskAmount); - return; + + // Avoid race condition (combat brace message goes through first before XP drop) + amount++; } } @@ -486,7 +489,8 @@ public class SlayerPlugin extends Plugin } } - private void killedOne() + @VisibleForTesting + void killedOne() { if (amount == 0) { 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 4728f9507b..e9b240d8b6 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 @@ -429,6 +429,7 @@ public class SlayerPluginTest slayerPlugin.onChatMessage(chatMessage); assertEquals("Suqahs", slayerPlugin.getTaskName()); + slayerPlugin.killedOne(); assertEquals(30, slayerPlugin.getAmount()); } }