Added raids scout overlay hotkey

This commit is contained in:
James Munson
2019-06-16 02:12:35 -07:00
3 changed files with 44 additions and 4 deletions

View File

@@ -30,6 +30,7 @@ import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.Stub; import net.runelite.client.config.Stub;
import net.runelite.client.config.Keybind;
@ConfigGroup("raids") @ConfigGroup("raids")
public interface RaidsConfig extends Config public interface RaidsConfig extends Config
@@ -417,4 +418,15 @@ public interface RaidsConfig extends Config
{ {
return false; return false;
} }
@ConfigItem(
keyName = "hotkey",
name = "Toggle scout overlay",
description = "When pressed the scout overlay will be toggled. Must enable show scout overlay in raid",
position = 31
)
default Keybind hotkey()
{
return Keybind.NOT_SET;
}
} }

View File

@@ -80,7 +80,7 @@ public class RaidsOverlay extends Overlay
@Setter @Setter
private boolean sharable = false; private boolean sharable = false;
@Setter @Getter @Setter
private boolean scoutOverlayShown = false; private boolean scoutOverlayShown = false;
@Getter @Getter

View File

@@ -91,6 +91,7 @@ import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.Tooltip;
import net.runelite.client.ui.overlay.tooltip.TooltipManager; import net.runelite.client.ui.overlay.tooltip.TooltipManager;
import net.runelite.client.util.ImageUtil; import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.HotkeyListener;
import net.runelite.client.util.Text; import net.runelite.client.util.Text;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.HashSet; import java.util.HashSet;
@@ -155,15 +156,15 @@ public class RaidsPlugin extends Plugin
@Inject @Inject
private LayoutSolver layoutSolver; private LayoutSolver layoutSolver;
@Inject
private KeyManager keyManager;
@Inject @Inject
private SpriteManager spriteManager; private SpriteManager spriteManager;
@Inject @Inject
private ClientThread clientThread; private ClientThread clientThread;
@Inject
private KeyManager keyManager;
@Inject @Inject
private TooltipManager tooltipManager; private TooltipManager tooltipManager;
@@ -199,6 +200,8 @@ public class RaidsPlugin extends Plugin
private String tooltip; private String tooltip;
public boolean canShow; public boolean canShow;
private NavigationButton navButton; private NavigationButton navButton;
private boolean raidStarted;
private RaidsTimer timer; private RaidsTimer timer;
@Getter @Getter
@@ -234,6 +237,7 @@ public class RaidsPlugin extends Plugin
{ {
overlayManager.add(partyOverlay); overlayManager.add(partyOverlay);
} }
keyManager.registerKeyListener(hotkeyListener);
updateLists(); updateLists();
clientThread.invokeLater(() -> checkRaidPresence(true)); clientThread.invokeLater(() -> checkRaidPresence(true));
widgetOverlay = overlayManager.getWidgetOverlay(WidgetInfo.RAIDS_POINTS_INFOBOX); widgetOverlay = overlayManager.getWidgetOverlay(WidgetInfo.RAIDS_POINTS_INFOBOX);
@@ -260,8 +264,10 @@ public class RaidsPlugin extends Plugin
overlayManager.remove(partyOverlay); overlayManager.remove(partyOverlay);
} }
infoBoxManager.removeInfoBox(timer); infoBoxManager.removeInfoBox(timer);
keyManager.unregisterKeyListener(hotkeyListener);
inRaidChambers = false; inRaidChambers = false;
widgetOverlay = null; widgetOverlay = null;
raidStarted = false;
raid = null; raid = null;
timer = null; timer = null;
@@ -343,6 +349,7 @@ public class RaidsPlugin extends Plugin
{ {
timer = new RaidsTimer(spriteManager.getSprite(TAB_QUESTS_BROWN_RAIDING_PARTY, 0), this, Instant.now()); timer = new RaidsTimer(spriteManager.getSprite(TAB_QUESTS_BROWN_RAIDING_PARTY, 0), this, Instant.now());
infoBoxManager.addInfoBox(timer); infoBoxManager.addInfoBox(timer);
raidStarted = true;
} }
if (config.partyDisplay()) if (config.partyDisplay())
{ {
@@ -613,6 +620,7 @@ public class RaidsPlugin extends Plugin
if (client.getVar(VarPlayer.IN_RAID_PARTY) == -1 && (!inRaidChambers || !config.scoutOverlayInRaid())) if (client.getVar(VarPlayer.IN_RAID_PARTY) == -1 && (!inRaidChambers || !config.scoutOverlayInRaid()))
{ {
overlay.setScoutOverlayShown(false); overlay.setScoutOverlayShown(false);
raidStarted = false;
} }
} }
@@ -1064,4 +1072,24 @@ public class RaidsPlugin extends Plugin
builder.append("</br>Olm: ").append(secondsToTime(raidTime - lowerTime)); builder.append("</br>Olm: ").append(secondsToTime(raidTime - lowerTime));
tooltip = builder.toString(); tooltip = builder.toString();
} }
private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.hotkey())
{
@Override
public void hotkeyPressed()
{
if (config.scoutOverlayInRaid() && raidStarted)
{
if (overlay.isScoutOverlayShown())
{
overlay.setScoutOverlayShown(false);
}
else
{
overlay.setScoutOverlayShown(true);
}
}
}
};
} }