diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java index c5ecb74d6e..fa921d1f2c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java @@ -37,10 +37,7 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; -import net.runelite.api.EquipmentInventorySlot; import net.runelite.api.GameState; -import net.runelite.api.InventoryID; -import net.runelite.api.Item; import net.runelite.api.ItemID; import net.runelite.api.MenuEntry; import net.runelite.api.MessageNode; @@ -50,7 +47,6 @@ import net.runelite.api.Varbits; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.ItemDespawned; import net.runelite.api.events.ItemSpawned; import net.runelite.api.events.MenuEntryAdded; @@ -185,29 +181,54 @@ public class BarbarianAssaultPlugin extends Plugin @Subscribe public void onWidgetLoaded(WidgetLoaded event) { - if (event.getGroupId() == WidgetID.BA_REWARD_GROUP_ID) + switch (event.getGroupId()) { - Wave wave = new Wave(client); - Widget rewardWidget = client.getWidget(WidgetInfo.BA_REWARD_TEXT); - if (rewardWidget != null && rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && gameTime != null) + case WidgetID.BA_REWARD_GROUP_ID: { - if (config.waveTimes()) + Wave wave = new Wave(client); + Widget rewardWidget = client.getWidget(WidgetInfo.BA_REWARD_TEXT); + if (rewardWidget != null && rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && gameTime != null) { - announceTime("Game finished, duration: ", gameTime.getTime(false)); + if (config.waveTimes()) + { + announceTime("Game finished, duration: ", gameTime.getTime(false)); + } + if (config.showTotalRewards()) + { + announceSomething(game.getGameSummary()); + } } - if (config.showTotalRewards()) + Widget pointsWidget = client.getWidget(WidgetInfo.BA_RUNNERS_PASSED); + if (rewardWidget != null && !rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && pointsWidget != null + && config.showSummaryOfPoints() && !hasAnnounced && client.getVar(Varbits.IN_GAME_BA) == 0) { - announceSomething(game.getGameSummary()); + wave.setWaveAmounts(); + wave.setWavePoints(); + game.getWaves().add(wave); + announceSomething(wave.getWaveSummary()); } + + break; } - Widget pointsWidget = client.getWidget(WidgetInfo.BA_RUNNERS_PASSED); - if (!rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && pointsWidget != null - && config.showSummaryOfPoints() && !hasAnnounced && client.getVar(Varbits.IN_GAME_BA) == 0) + case WidgetID.BA_ATTACKER_GROUP_ID: { - wave.setWaveAmounts(); - wave.setWavePoints(); - game.getWaves().add(wave); - announceSomething(wave.getWaveSummary()); + setOverlayRound(Role.ATTACKER); + break; + } + case WidgetID.BA_DEFENDER_GROUP_ID: + { + setOverlayRound(Role.DEFENDER); + break; + } + case WidgetID.BA_HEALER_GROUP_ID: + { + setOverlayRound(Role.HEALER); + break; + } + case WidgetID.BA_COLLECTOR_GROUP_ID: + { + setOverlayRound(Role.COLLECTOR); + break; } } } @@ -295,44 +316,6 @@ public class BarbarianAssaultPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(final ItemContainerChanged event) - { - if (event.getItemContainer() != client.getItemContainer(InventoryID.EQUIPMENT)) - { - return; - } - - if (overlay.getCurrentRound() != null) - { - return; - } - - final Item[] items = event.getItemContainer().getItems(); - - // Check that the local player is wearing enough items to be wearing a cape. - if (items == null || items.length <= EquipmentInventorySlot.CAPE.getSlotIdx()) - { - return; - } - - switch (items[EquipmentInventorySlot.CAPE.getSlotIdx()].getId()) - { - case ItemID.ATTACKER_ICON: - overlay.setCurrentRound(new Round(Role.ATTACKER)); - break; - case ItemID.COLLECTOR_ICON: - overlay.setCurrentRound(new Round(Role.COLLECTOR)); - break; - case ItemID.DEFENDER_ICON: - overlay.setCurrentRound(new Round(Role.DEFENDER)); - break; - case ItemID.HEALER_ICON: - overlay.setCurrentRound(new Round(Role.HEALER)); - break; - } - } - @Subscribe public void onVarbitChanged(VarbitChanged event) { @@ -457,6 +440,16 @@ public class BarbarianAssaultPlugin extends Plugin } } + private void setOverlayRound(Role role) + { + if (overlay.getCurrentRound() != null) + { + return; + } + + overlay.setCurrentRound(new Round(role)); + } + private void announceSomething(final ChatMessageBuilder chatMessage) { chatMessageManager.queue(QueuedMessage.builder()