diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index e251d701f6..853063c88b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -78,12 +78,12 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ChatInput; import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.OverlayMenuClicked; -import net.runelite.client.plugins.raids.events.RaidReset; -import net.runelite.client.plugins.raids.events.RaidScouted; import net.runelite.client.game.SpriteManager; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.raids.events.RaidReset; +import net.runelite.client.plugins.raids.events.RaidScouted; import net.runelite.client.plugins.raids.solver.Layout; import net.runelite.client.plugins.raids.solver.LayoutSolver; import net.runelite.client.ui.overlay.OverlayManager; @@ -236,6 +236,7 @@ public class RaidsPlugin extends Plugin chatCommandManager.unregisterCommand(LAYOUT_COMMAND); overlayManager.remove(overlay); infoBoxManager.removeInfoBox(timer); + timer = null; inRaidChambers = false; reset(); keyManager.unregisterKeyListener(screenshotHotkeyListener); @@ -299,7 +300,7 @@ public class RaidsPlugin extends Plugin if (config.raidsTimer() && message.startsWith(RAID_START_MESSAGE)) { - timer = new RaidsTimer(this, Instant.now()); + timer = new RaidsTimer(this, Instant.now(), config); spriteManager.getSpriteAsync(TAB_QUESTS_BROWN_RAIDING_PARTY, 0, timer); infoBoxManager.addInfoBox(timer); } @@ -498,25 +499,9 @@ public class RaidsPlugin extends Plugin private void updateInfoBoxState() { - if (timer == null) - { - return; - } - - if (inRaidChambers && config.raidsTimer()) - { - if (!infoBoxManager.getInfoBoxes().contains(timer)) - { - infoBoxManager.addInfoBox(timer); - } - } - else + if (timer != null && !inRaidChambers) { infoBoxManager.removeInfoBox(timer); - } - - if (!inRaidChambers) - { timer = null; } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java index 09c3beb722..a2e8425754 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java @@ -33,9 +33,10 @@ import lombok.Setter; import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.InfoBox; -public class RaidsTimer extends InfoBox +class RaidsTimer extends InfoBox { private final Instant startTime; + private final RaidsConfig config; private Instant floorTime; private LocalTime time; private LocalTime firstFloorTime; @@ -46,10 +47,11 @@ public class RaidsTimer extends InfoBox @Setter private boolean stopped; - public RaidsTimer(Plugin plugin, Instant startTime) + public RaidsTimer(Plugin plugin, Instant startTime, RaidsConfig raidsConfig) { super(null, plugin); this.startTime = startTime; + this.config = raidsConfig; floorTime = startTime; stopped = false; } @@ -146,4 +148,10 @@ public class RaidsTimer extends InfoBox return builder.toString(); } + + @Override + public boolean render() + { + return config.raidsTimer(); + } }