From 14cd865d075414ee9dd75e201abeb68590cc41e4 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Wed, 30 Jan 2019 02:09:28 +0100 Subject: [PATCH 1/2] Remove anymatch regex from chat commands plugin patterns To avoid breaking existing plugins instead of properly escaping anymatch (dot) just remove it as it do not changes the functionality. Fixes #7615 Signed-off-by: Tomas Slusny --- .../plugins/chatcommands/ChatCommandsPlugin.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 5155cdecdd..06c374ddd5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -82,12 +82,12 @@ import org.apache.commons.text.WordUtils; public class ChatCommandsPlugin extends Plugin { private static final float HIGH_ALCHEMY_CONSTANT = 0.6f; - private static final Pattern KILLCOUNT_PATTERN = Pattern.compile("Your (.+) kill count is: (\\d+)."); - private static final Pattern RAIDS_PATTERN = Pattern.compile("Your completed (.+) count is: (\\d+)."); - private static final Pattern WINTERTODT_PATTERN = Pattern.compile("Your subdued Wintertodt count is: (\\d+)."); - private static final Pattern BARROWS_PATTERN = Pattern.compile("Your Barrows chest count is: (\\d+)."); - private static final Pattern KILL_DURATION_PATTERN = Pattern.compile("Fight duration: [0-9:]+. Personal best: ([0-9:]+)."); - private static final Pattern NEW_PB_PATTERN = Pattern.compile("Fight duration: ([0-9:]+) \\(new personal best\\)."); + private static final Pattern KILLCOUNT_PATTERN = Pattern.compile("Your (.+) kill count is: (\\d+)"); + private static final Pattern RAIDS_PATTERN = Pattern.compile("Your completed (.+) count is: (\\d+)"); + private static final Pattern WINTERTODT_PATTERN = Pattern.compile("Your subdued Wintertodt count is: (\\d+)"); + private static final Pattern BARROWS_PATTERN = Pattern.compile("Your Barrows chest count is: (\\d+)"); + private static final Pattern KILL_DURATION_PATTERN = Pattern.compile("Fight duration: [0-9:]+. Personal best: ([0-9:]+)"); + private static final Pattern NEW_PB_PATTERN = Pattern.compile("Fight duration: ([0-9:]+) \\(new personal best\\)"); private static final String TOTAL_LEVEL_COMMAND_STRING = "!total"; private static final String PRICE_COMMAND_STRING = "!price"; private static final String LEVEL_COMMAND_STRING = "!lvl"; From b559fd859be4cff97213fb7a8ea028a7fd1c3c41 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Tue, 29 Jan 2019 17:26:06 -0800 Subject: [PATCH 2/2] chat commands: Add test case for PB without trailing period --- .../chatcommands/ChatCommandsPluginTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java index a553b73f89..74e5fc25ae 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java @@ -147,6 +147,23 @@ public class ChatCommandsPluginTest verify(configManager).setConfiguration(eq("personalbest.adam"), eq("kree'arra"), eq(79)); } + @Test + public void testPersonalBestNoTrailingPeriod() + { + final String FIGHT_DURATION = "Fight duration: 0:59. Personal best: 0:55"; + + when(client.getUsername()).thenReturn("Adam"); + + // This sets lastBoss + ChatMessage chatMessage = new ChatMessage(SERVER, "", "Your Zulrah kill count is: 4.", null); + chatCommandsPlugin.onChatMessage(chatMessage); + + chatMessage = new ChatMessage(SERVER, "", FIGHT_DURATION, null); + chatCommandsPlugin.onChatMessage(chatMessage); + + verify(configManager).setConfiguration(eq("personalbest.adam"), eq("zulrah"), eq(55)); + } + @Test public void testNewPersonalBest() {