From 58bc37f0516e1fa866206c667abf993caac2f0f2 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 18 Nov 2021 17:06:58 -0500 Subject: [PATCH] screenshot: update duel arena messages --- .../plugins/screenshot/ScreenshotPlugin.java | 4 +-- .../screenshot/ScreenshotPluginTest.java | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index c64e7c06b9..160e06518e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -109,7 +109,7 @@ public class ScreenshotPlugin extends Plugin private static final Pattern BOSSKILL_MESSAGE_PATTERN = Pattern.compile("Your (.+) kill count is: (\\d+)."); private static final Pattern VALUABLE_DROP_PATTERN = Pattern.compile(".*Valuable drop: ([^<>]+?\\(((?:\\d+,?)+) coins\\))(?:)?"); private static final Pattern UNTRADEABLE_DROP_PATTERN = Pattern.compile(".*Untradeable drop: ([^<>]+)(?:)?"); - private static final Pattern DUEL_END_PATTERN = Pattern.compile("You have now (won|lost) ([0-9]+) duels?\\."); + private static final Pattern DUEL_END_PATTERN = Pattern.compile("You have now (won|lost) ([0-9,]+) duels?\\."); private static final Pattern QUEST_PATTERN_1 = Pattern.compile(".+?ve\\.*? (?been|rebuilt|.+?ed)? ?(?:the )?'?(?.+?)'?(?: [Qq]uest)?[!.]?$"); private static final Pattern QUEST_PATTERN_2 = Pattern.compile("'?(?.+?)'?(?: [Qq]uest)? (?[a-z]\\w+?ed)?(?: f.*?)?[!.]?$"); private static final ImmutableList RFD_TAGS = ImmutableList.of("Another Cook", "freed", "defeated", "saved"); @@ -482,7 +482,7 @@ public class ScreenshotPlugin extends Plugin if (m.find()) { String result = m.group(1); - String count = m.group(2); + String count = m.group(2).replace(",", ""); String fileName = "Duel " + result + " (" + count + ")"; takeScreenshot(fileName, SD_DUELS); } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java index 47b6f14fca..9ded0bfe8c 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java @@ -31,6 +31,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.function.Consumer; import javax.inject.Inject; import static net.runelite.api.ChatMessageType.GAMEMESSAGE; +import static net.runelite.api.ChatMessageType.TRADE; import net.runelite.api.Client; import net.runelite.api.ScriptID; import net.runelite.api.VarClientStr; @@ -60,6 +61,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import org.mockito.Mock; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; @@ -135,6 +137,7 @@ public class ScreenshotPluginTest when(screenshotConfig.valuableDropThreshold()).thenReturn(1000); when(screenshotConfig.screenshotUntradeableDrop()).thenReturn(true); when(screenshotConfig.screenshotCollectionLogEntries()).thenReturn(true); + when(screenshotConfig.screenshotDuels()).thenReturn(true); } @Test @@ -424,4 +427,32 @@ public class ScreenshotPluginTest verifyNoMoreInteractions(drawManager); } + + @Test + public void testDuelWin() + { + ChatMessage chatMessageEvent = new ChatMessage(null, TRADE, "", "You won! You have now won 1,909 duels.", null, 0); + screenshotPlugin.onChatMessage(chatMessageEvent); + + verify(drawManager).requestNextFrameListener(any(Consumer.class)); + + chatMessageEvent = new ChatMessage(null, TRADE, "", "You have lost 145 duels.", null, 0); + screenshotPlugin.onChatMessage(chatMessageEvent); + + verifyNoMoreInteractions(drawManager); + } + + @Test + public void testDuelLoss() + { + ChatMessage chatMessageEvent = new ChatMessage(null, TRADE, "", "You were defeated! You have won 1,909 duels.", null, 0); + screenshotPlugin.onChatMessage(chatMessageEvent); + + verify(drawManager, never()).requestNextFrameListener(any(Consumer.class)); + + chatMessageEvent = new ChatMessage(null, TRADE, "", "You have now lost 1,909 duels.", null, 0); + screenshotPlugin.onChatMessage(chatMessageEvent); + + verify(drawManager).requestNextFrameListener(any(Consumer.class)); + } }