diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java index 142ac8050d..ee9f307838 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java @@ -240,6 +240,12 @@ public class LootTrackerPlugin extends Plugin private static final String SPOILS_OF_WAR_EVENT = "Spoils of war"; private static final Set SOUL_WARS_REGIONS = ImmutableSet.of(8493, 8749, 9005); + // Tempoross + private static final String TEMPOROSS_EVENT = "Reward pool (Tempoross)"; + private static final String TEMPOROSS_CASKET_EVENT = "Casket (Tempoross)"; + private static final String TEMPOROSS_LOOT_STRING = "You found some loot: "; + private static final int TEMPOROSS_REGION = 12588; + private static final Set VOWELS = ImmutableSet.of('a', 'e', 'i', 'o', 'u'); @Inject @@ -757,6 +763,12 @@ public class LootTrackerPlugin extends Plugin setEvent(LootRecordType.EVENT, type, client.getBoostedSkillLevel(Skill.HUNTER)); takeInventorySnapshot(); } + + if (regionID == TEMPOROSS_REGION && message.startsWith(TEMPOROSS_LOOT_STRING)) + { + setEvent(LootRecordType.EVENT, TEMPOROSS_EVENT, client.getBoostedSkillLevel(Skill.FISHING)); + takeInventorySnapshot(); + } } @Subscribe @@ -787,7 +799,9 @@ public class LootTrackerPlugin extends Plugin else if (SEEDPACK_EVENT.equals(eventType) || CASKET_EVENT.equals(eventType) || BIRDNEST_EVENT.equals(eventType) - || SPOILS_OF_WAR_EVENT.equals(eventType)) + || SPOILS_OF_WAR_EVENT.equals(eventType) + || TEMPOROSS_EVENT.equals(eventType) + || TEMPOROSS_CASKET_EVENT.equals(eventType)) { processInventoryLoot(eventType, lootRecordType, metadata, event.getItemContainer(), Collections.emptyList()); resetEvent(); @@ -833,6 +847,12 @@ public class LootTrackerPlugin extends Plugin setEvent(LootRecordType.EVENT, SPOILS_OF_WAR_EVENT); takeInventorySnapshot(); } + + if (event.getMenuOption().equals("Open") && event.getId() == ItemID.CASKET_25590) + { + setEvent(LootRecordType.EVENT, TEMPOROSS_CASKET_EVENT); + takeInventorySnapshot(); + } } @Schedule( diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/loottracker/LootTrackerPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/loottracker/LootTrackerPluginTest.java index 3080e6c5c8..cff8a46591 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/loottracker/LootTrackerPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/loottracker/LootTrackerPluginTest.java @@ -359,4 +359,52 @@ public class LootTrackerPluginTest new ItemStack(ItemID.SHARK, 42, null) )); } + + @Test + public void testTemporossRewardPool() + { + Player player = mock(Player.class); + when(client.getLocalPlayer()).thenReturn(player); + when(client.getLocalPlayer().getWorldLocation()).thenReturn(new WorldPoint(3153, 2833, 0)); + when(client.getBoostedSkillLevel(Skill.FISHING)).thenReturn(69); + + LootTrackerPlugin lootTrackerPluginSpy = spy(this.lootTrackerPlugin); + doNothing().when(lootTrackerPluginSpy).addLoot(any(), anyInt(), any(), any(), any(Collection.class)); + + ItemContainer itemContainer = mock(ItemContainer.class); + when(itemContainer.getItems()).thenReturn(new Item[]{ + new Item(ItemID.BUCKET_OF_WATER, 1), + new Item(ItemID.ROPE, 1) + }); + when(client.getItemContainer(InventoryID.INVENTORY)).thenReturn(itemContainer); + + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "You found some loot: 30 x Raw tuna", "", 0); + lootTrackerPluginSpy.onChatMessage(chatMessage); + + when(itemContainer.getItems()).thenReturn(new Item[]{ + new Item(ItemID.BUCKET_OF_WATER, 1), + new Item(ItemID.ROPE, 1), + new Item(ItemID.RAW_TUNA, 30) + }); + lootTrackerPluginSpy.onItemContainerChanged(new ItemContainerChanged(InventoryID.INVENTORY.getId(), itemContainer)); + + verify(lootTrackerPluginSpy).addLoot("Reward pool (Tempoross)", -1, LootRecordType.EVENT, 69, Arrays.asList( + new ItemStack(ItemID.RAW_TUNA, 30, null) + )); + + chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "You found some loot: Tome of water (empty)", "", 0); + lootTrackerPluginSpy.onChatMessage(chatMessage); + + when(itemContainer.getItems()).thenReturn(new Item[]{ + new Item(ItemID.BUCKET_OF_WATER, 1), + new Item(ItemID.ROPE, 1), + new Item(ItemID.RAW_TUNA, 30), + new Item(ItemID.TOME_OF_WATER_EMPTY, 1) + }); + lootTrackerPluginSpy.onItemContainerChanged(new ItemContainerChanged(InventoryID.INVENTORY.getId(), itemContainer)); + + verify(lootTrackerPluginSpy).addLoot("Reward pool (Tempoross)", -1, LootRecordType.EVENT, 69, Arrays.asList( + new ItemStack(ItemID.TOME_OF_WATER_EMPTY, 1, null) + )); + } }