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));
+ }
}