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.ChatInput;
|
||||||
import net.runelite.client.events.ConfigChanged;
|
import net.runelite.client.events.ConfigChanged;
|
||||||
import net.runelite.client.events.OverlayMenuClicked;
|
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.game.SpriteManager;
|
||||||
import net.runelite.client.input.KeyManager;
|
import net.runelite.client.input.KeyManager;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
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.Layout;
|
||||||
import net.runelite.client.plugins.raids.solver.LayoutSolver;
|
import net.runelite.client.plugins.raids.solver.LayoutSolver;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
@@ -236,6 +236,7 @@ public class RaidsPlugin extends Plugin
|
|||||||
chatCommandManager.unregisterCommand(LAYOUT_COMMAND);
|
chatCommandManager.unregisterCommand(LAYOUT_COMMAND);
|
||||||
overlayManager.remove(overlay);
|
overlayManager.remove(overlay);
|
||||||
infoBoxManager.removeInfoBox(timer);
|
infoBoxManager.removeInfoBox(timer);
|
||||||
|
timer = null;
|
||||||
inRaidChambers = false;
|
inRaidChambers = false;
|
||||||
reset();
|
reset();
|
||||||
keyManager.unregisterKeyListener(screenshotHotkeyListener);
|
keyManager.unregisterKeyListener(screenshotHotkeyListener);
|
||||||
@@ -299,7 +300,7 @@ public class RaidsPlugin extends Plugin
|
|||||||
|
|
||||||
if (config.raidsTimer() && message.startsWith(RAID_START_MESSAGE))
|
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);
|
spriteManager.getSpriteAsync(TAB_QUESTS_BROWN_RAIDING_PARTY, 0, timer);
|
||||||
infoBoxManager.addInfoBox(timer);
|
infoBoxManager.addInfoBox(timer);
|
||||||
}
|
}
|
||||||
@@ -498,25 +499,9 @@ public class RaidsPlugin extends Plugin
|
|||||||
|
|
||||||
private void updateInfoBoxState()
|
private void updateInfoBoxState()
|
||||||
{
|
{
|
||||||
if (timer == null)
|
if (timer != null && !inRaidChambers)
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (inRaidChambers && config.raidsTimer())
|
|
||||||
{
|
|
||||||
if (!infoBoxManager.getInfoBoxes().contains(timer))
|
|
||||||
{
|
|
||||||
infoBoxManager.addInfoBox(timer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
infoBoxManager.removeInfoBox(timer);
|
infoBoxManager.removeInfoBox(timer);
|
||||||
}
|
|
||||||
|
|
||||||
if (!inRaidChambers)
|
|
||||||
{
|
|
||||||
timer = null;
|
timer = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,9 +33,10 @@ import lombok.Setter;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
||||||
|
|
||||||
public class RaidsTimer extends InfoBox
|
class RaidsTimer extends InfoBox
|
||||||
{
|
{
|
||||||
private final Instant startTime;
|
private final Instant startTime;
|
||||||
|
private final RaidsConfig config;
|
||||||
private Instant floorTime;
|
private Instant floorTime;
|
||||||
private LocalTime time;
|
private LocalTime time;
|
||||||
private LocalTime firstFloorTime;
|
private LocalTime firstFloorTime;
|
||||||
@@ -46,10 +47,11 @@ public class RaidsTimer extends InfoBox
|
|||||||
@Setter
|
@Setter
|
||||||
private boolean stopped;
|
private boolean stopped;
|
||||||
|
|
||||||
public RaidsTimer(Plugin plugin, Instant startTime)
|
public RaidsTimer(Plugin plugin, Instant startTime, RaidsConfig raidsConfig)
|
||||||
{
|
{
|
||||||
super(null, plugin);
|
super(null, plugin);
|
||||||
this.startTime = startTime;
|
this.startTime = startTime;
|
||||||
|
this.config = raidsConfig;
|
||||||
floorTime = startTime;
|
floorTime = startTime;
|
||||||
stopped = false;
|
stopped = false;
|
||||||
}
|
}
|
||||||
@@ -146,4 +148,10 @@ public class RaidsTimer extends InfoBox
|
|||||||
|
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean render()
|
||||||
|
{
|
||||||
|
return config.raidsTimer();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user