From d3ebcbd7a132a2d180e1ea23d1acba6db7f68b8b Mon Sep 17 00:00:00 2001 From: Cas van Dongen Date: Wed, 21 Mar 2018 00:47:10 +0100 Subject: [PATCH] Slayer plugin: Added support for slayer bracelets. --- .../client/plugins/slayer/SlayerPlugin.java | 15 ++++++++++- .../plugins/slayer/SlayerPluginTest.java | 27 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) 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 4dd6f22573..99f5a82c8d 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,6 +78,8 @@ public class SlayerPlugin extends Plugin private static final Pattern CHAT_COMPLETE_MESSAGE = Pattern.compile("[\\d]+(?:,[\\d]+)?"); private static final String CHAT_CANCEL_MESSAGE = "Your task has been cancelled."; private static final String CHAT_SUPERIOR_MESSAGE = "A superior foe has appeared..."; + private static final String CHAT_BRACELET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer count decreasing."; + private static final String CHAT_BRACELET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your slayer task faster."; //NPC messages private static final Pattern NPC_ASSIGN_MESSAGE = Pattern.compile(".*Your new task is to kill (\\d*) (.*)\\."); @@ -243,12 +245,23 @@ public class SlayerPlugin extends Plugin @Subscribe public void onChatMessage(ChatMessage event) { - if (event.getType() != ChatMessageType.SERVER) + if (event.getType() != ChatMessageType.SERVER && event.getType() != ChatMessageType.FILTERED) { return; } String chatMsg = Text.removeTags(event.getMessage()); //remove color and linebreaks + + if (chatMsg.startsWith(CHAT_BRACELET_SLAUGHTER)) + { + amount++; + } + + if (chatMsg.startsWith(CHAT_BRACELET_EXPEDITIOUS)) + { + amount--; + } + if (chatMsg.endsWith("; return to a Slayer master.")) { Matcher mComplete = CHAT_COMPLETE_MESSAGE.matcher(chatMsg); 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 df6759165d..c5d9820dea 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 @@ -57,6 +57,9 @@ public class SlayerPluginTest private static final String SUPERIOR_MESSAGE = "A superior foe has appeared..."; + private static final String BRACLET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer count decreasing."; + private static final String BRACLET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your slayer task faster."; + @Mock @Bind Client client; @@ -163,4 +166,28 @@ public class SlayerPluginTest slayerPlugin.onChatMessage(chatMessageEvent); verifyNoMoreInteractions(notifier); } + + @Test + public void testBracletSlaughter() + { + ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_SLAUGHTER, null); + + slayerPlugin.setAmount(42); + + slayerPlugin.onChatMessage(chatMessageEvent); + + assertEquals(43, slayerPlugin.getAmount()); + } + + @Test + public void testBraceletExpeditious() + { + ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_EXPEDITIOUS, null); + + slayerPlugin.setAmount(42); + + slayerPlugin.onChatMessage(chatMessageEvent); + + assertEquals(41, slayerPlugin.getAmount()); + } }