raid plugin: simplify timer infobox logic by overriding render
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user