diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index e8a2f15064..05d7a00e34 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -73,6 +73,7 @@ public class WidgetID public static final int BLAST_FURNACE_GROUP_ID = 474; public static final int WORLD_MAP = 595; public static final int PYRAMID_PLUNDER_GROUP_ID = 428; + public static final int RAIDS_REWARD_GROUP_ID = 539; static class WorldMap { 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 b74fa49411..771d6444d8 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 @@ -65,6 +65,7 @@ import static net.runelite.api.widgets.WidgetID.CLUE_SCROLL_REWARD_GROUP_ID; import static net.runelite.api.widgets.WidgetID.DIALOG_SPRITE_GROUP_ID; import static net.runelite.api.widgets.WidgetID.LEVEL_UP_GROUP_ID; import static net.runelite.api.widgets.WidgetID.QUEST_COMPLETED_GROUP_ID; +import static net.runelite.api.widgets.WidgetID.RAIDS_REWARD_GROUP_ID; import net.runelite.api.widgets.WidgetInfo; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import net.runelite.client.Notifier; @@ -106,6 +107,8 @@ public class ScreenshotPlugin extends Plugin private Integer barrowsNumber; + private Integer raidsNumber; + @Inject private ScreenshotConfig config; @@ -190,32 +193,36 @@ public class ScreenshotPlugin extends Plugin return; } - if (event.getMessage().contains("Treasure")) - { - String chatMessage = event.getMessage().replaceAll("", ""); + String chatMessage = event.getMessage(); - if (chatMessage.startsWith("You have completed")) + if (chatMessage.contains("You have completed") && chatMessage.contains("Treasure")) + { + Matcher m = NUMBER_PATTERN.matcher(chatMessage.replaceAll("<[^>]*>", "")); + if (m.find()) { - Matcher m = NUMBER_PATTERN.matcher(chatMessage); - if (m.find()) - { - clueNumber = Integer.valueOf(m.group()); - clueType = chatMessage.substring(chatMessage.lastIndexOf(m.group()) + m.group().length() + 1, chatMessage.indexOf("Treasure") - 1); - } + clueNumber = Integer.valueOf(m.group()); + clueType = chatMessage.substring(chatMessage.lastIndexOf(m.group()) + m.group().length() + 1, chatMessage.indexOf("Treasure") - 1); + return; } } - if (event.getMessage().contains("Barrows")) + if (chatMessage.startsWith("Your Barrows chest count is")) { - String chatMessage = event.getMessage().replaceAll("", ""); - - if (chatMessage.startsWith("Your Barrows chest count is")) + Matcher m = NUMBER_PATTERN.matcher(chatMessage.replaceAll("<[^>]*>", "")); + if (m.find()) { - Matcher m = NUMBER_PATTERN.matcher(chatMessage); - if (m.find()) - { - barrowsNumber = Integer.valueOf(m.group()); - } + barrowsNumber = Integer.valueOf(m.group()); + return; + } + } + + if (chatMessage.startsWith("Your completed Chambers of Xeric count is:")) + { + Matcher m = NUMBER_PATTERN.matcher(chatMessage.replaceAll("<[^>]*>", "")); + if (m.find()) + { + raidsNumber = Integer.valueOf(m.group()); + return; } } } @@ -241,6 +248,7 @@ public class ScreenshotPlugin extends Plugin case QUEST_COMPLETED_GROUP_ID: case CLUE_SCROLL_REWARD_GROUP_ID: case BARROWS_REWARD_GROUP_ID: + case RAIDS_REWARD_GROUP_ID: if (!config.screenshotRewards()) { return; @@ -300,6 +308,17 @@ public class ScreenshotPlugin extends Plugin barrowsNumber = null; break; } + case RAIDS_REWARD_GROUP_ID: + { + if (raidsNumber == null) + { + return; + } + + fileName = "Raids(" + raidsNumber + ")"; + raidsNumber = null; + break; + } default: return; } @@ -483,20 +502,26 @@ public class ScreenshotPlugin extends Plugin } @VisibleForTesting - public int getClueNumber() + int getClueNumber() { return clueNumber; } @VisibleForTesting - public String getClueType() + String getClueType() { return clueType; } @VisibleForTesting - public int getBarrowsNumber() + int getBarrowsNumber() { return barrowsNumber; } + + @VisibleForTesting + int getRaidsNumber() + { + return raidsNumber; + } } 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 cac1a8f7af..497e604e2d 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 @@ -62,6 +62,7 @@ public class ScreenshotPluginTest { private static final String CLUE_SCROLL = "You have completed 28 medium Treasure Trails"; private static final String BARROWS_CHEST = "Your Barrows chest count is 310"; + private static final String RAIDS_CHEST = "Your completed Chambers of Xeric count is: 489."; @Mock @Bind @@ -121,6 +122,15 @@ public class ScreenshotPluginTest assertEquals(310, screenshotPlugin.getBarrowsNumber()); } + @Test + public void testraidschest() + { + ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Seth", RAIDS_CHEST, null); + screenshotPlugin.onChatMessage(chatMessageEvent); + + assertEquals(489, screenshotPlugin.getRaidsNumber()); + } + @Test public void testHitpoints() {