barbarian assault: fixes call timer (#467)

* barbarian assault: fixes call timer

Signed-off-by: 7ate9 <7ate9@users.noreply.github.com`>

* barbarian assault: fixes call timer

Signed-off-by: 7ate9 <7ate9@users.noreply.github.com`>

* actually nvm, yoink

Signed-off-by: 7ate9 <7ate9@users.noreply.github.com`>

* checkstyle

Signed-off-by: 7ate9 <7ate9@users.noreply.github.com`>

* adds break after first case

Signed-off-by: 7ate9 <7ate9@users.noreply.github.com`>
This commit is contained in:
se7enAte9
2019-06-01 12:05:38 -04:00
committed by Ganom
parent ef6af4a9c8
commit 03599f624f

View File

@@ -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()