party: make ping hotkey configurable

This is conflicting with shift-click swaps currently
This commit is contained in:
Adam
2022-06-19 08:20:43 -04:00
parent cc61a00950
commit d87dec02be
2 changed files with 49 additions and 4 deletions

View File

@@ -28,6 +28,7 @@ package net.runelite.client.plugins.party;
import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.Keybind;
@ConfigGroup(PartyConfig.GROUP)
public interface PartyConfig extends Config
@@ -37,7 +38,7 @@ public interface PartyConfig extends Config
@ConfigItem(
keyName = "pings",
name = "Pings",
description = "Enables party pings (shift + left-click)",
description = "Enables party pings",
position = 1
)
default boolean pings()
@@ -60,13 +61,24 @@ public interface PartyConfig extends Config
keyName = "recolorNames",
name = "Recolor names",
description = "Recolor party members names based on unique color hash",
position = 4
position = 3
)
default boolean recolorNames()
{
return true;
}
@ConfigItem(
keyName = "pingHotkey",
name = "Ping hotkey",
description = "Key to hold to send a tile ping",
position = 4
)
default Keybind pingHotkey()
{
return Keybind.NOT_SET;
}
@ConfigItem(
keyName = "previousPartyId",
name = "",

View File

@@ -45,7 +45,6 @@ import lombok.Getter;
import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry;
import net.runelite.api.Player;
@@ -54,6 +53,7 @@ import net.runelite.api.SoundEffectID;
import net.runelite.api.Tile;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.CommandExecuted;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuOptionClicked;
@@ -66,6 +66,7 @@ import net.runelite.client.events.ConfigChanged;
import net.runelite.client.events.OverlayMenuClicked;
import net.runelite.client.events.PartyChanged;
import net.runelite.client.events.PartyMemberAvatar;
import net.runelite.client.input.KeyManager;
import net.runelite.client.party.PartyMember;
import net.runelite.client.party.PartyService;
import net.runelite.client.party.WSClient;
@@ -87,6 +88,7 @@ import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.ui.overlay.worldmap.WorldMapPoint;
import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager;
import net.runelite.client.util.ColorUtil;
import net.runelite.client.util.HotkeyListener;
import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.Text;
@@ -128,6 +130,9 @@ public class PartyPlugin extends Plugin
@Inject
private ClientToolbar clientToolbar;
@Inject
private KeyManager keyManager;
@Inject
@Named("developerMode")
boolean developerMode;
@@ -145,6 +150,23 @@ public class PartyPlugin extends Plugin
private String lastCharacterName = "";
private WorldPoint lastLocation;
private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.pingHotkey())
{
@Override
public void hotkeyPressed()
{
hotkeyPressed = true;
}
@Override
public void hotkeyReleased()
{
hotkeyPressed = false;
}
};
private boolean hotkeyPressed = false;
@Override
public void configure(Binder binder)
{
@@ -168,6 +190,7 @@ public class PartyPlugin extends Plugin
clientToolbar.addNavigation(navButton);
overlayManager.add(partyPingOverlay);
keyManager.registerKeyListener(hotkeyListener);
wsClient.registerMessage(SkillUpdate.class);
wsClient.registerMessage(TilePing.class);
wsClient.registerMessage(LocationUpdate.class);
@@ -187,6 +210,7 @@ public class PartyPlugin extends Plugin
pendingTilePings.clear();
worldMapManager.removeIf(PartyWorldMapPoint.class::isInstance);
overlayManager.remove(partyPingOverlay);
keyManager.unregisterKeyListener(hotkeyListener);
wsClient.unregisterMessage(SkillUpdate.class);
wsClient.unregisterMessage(TilePing.class);
wsClient.unregisterMessage(LocationUpdate.class);
@@ -200,6 +224,15 @@ public class PartyPlugin extends Plugin
return configManager.getConfig(PartyConfig.class);
}
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!focusChanged.isFocused())
{
hotkeyPressed = false;
}
}
@Subscribe
public void onOverlayMenuClicked(OverlayMenuClicked event)
{
@@ -229,7 +262,7 @@ public class PartyPlugin extends Plugin
@Subscribe
public void onMenuOptionClicked(MenuOptionClicked event)
{
if (!client.isKeyPressed(KeyCode.KC_SHIFT) || client.isMenuOpen() || party.getMembers().isEmpty() || !config.pings())
if (!hotkeyPressed || client.isMenuOpen() || party.getMembers().isEmpty() || !config.pings())
{
return;
}