From 50104541ff9757e7c5d26ba32c7bde46479103b6 Mon Sep 17 00:00:00 2001 From: Ganom Date: Sun, 29 Sep 2019 14:00:55 -0400 Subject: [PATCH] hotkeylistener: initialize only on valid game state. (#1684) --- .../MenuEntrySwapperPlugin.java | 8 ++- .../shiftwalker/ShiftWalkerPlugin.java | 59 +++++++++++-------- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 61acee9b51..5dd0ccd278 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -310,10 +310,10 @@ public class MenuEntrySwapperPlugin extends Plugin updateRemovedObjects(); - keyManager.registerKeyListener(ctrlHotkey); - keyManager.registerKeyListener(hotkey); if (client.getGameState() == GameState.LOGGED_IN) { + keyManager.registerKeyListener(ctrlHotkey); + keyManager.registerKeyListener(hotkey); setCastOptions(true); } } @@ -421,10 +421,14 @@ public class MenuEntrySwapperPlugin extends Plugin { if (event.getGameState() != GameState.LOGGED_IN) { + keyManager.unregisterKeyListener(ctrlHotkey); + keyManager.unregisterKeyListener(hotkey); return; } loadConstructionItems(); + keyManager.registerKeyListener(ctrlHotkey); + keyManager.registerKeyListener(hotkey); } private void onVarbitChanged(VarbitChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java index b927bb7574..75f1419b63 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java @@ -36,6 +36,7 @@ import net.runelite.api.MenuOpcode; import net.runelite.api.events.ClientTick; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.FocusChanged; +import net.runelite.api.events.GameStateChanged; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Keybind; import net.runelite.client.eventbus.EventBus; @@ -157,10 +158,6 @@ public class ShiftWalkerPlugin extends Plugin @Override public void hotkeyPressed() { - if (client.getGameState() != GameState.LOGGED_IN) - { - return; - } startPrioritizing(); setHotkeyActive(true); } @@ -168,10 +165,6 @@ public class ShiftWalkerPlugin extends Plugin @Override public void hotkeyReleased() { - if (client.getGameState() != GameState.LOGGED_IN) - { - return; - } stopPrioritizing(); setHotkeyActive(false); } @@ -184,7 +177,10 @@ public class ShiftWalkerPlugin extends Plugin this.shiftLoot = config.shiftLoot(); addSubscriptions(); - keyManager.registerKeyListener(shift); + if (client.getGameState() == GameState.LOGGED_IN) + { + keyManager.registerKeyListener(shift); + } } @Override @@ -198,6 +194,17 @@ public class ShiftWalkerPlugin extends Plugin { eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onGameStateChanged(GameStateChanged event) + { + if (event.getGameState() != GameState.LOGGED_IN) + { + keyManager.unregisterKeyListener(shift); + return; + } + keyManager.registerKeyListener(shift); } private void onFocusChanged(FocusChanged event) @@ -208,6 +215,23 @@ public class ShiftWalkerPlugin extends Plugin } } + private void onConfigChanged(ConfigChanged event) + { + if (!event.getGroup().equals("shiftwalkhere")) + { + return; + } + + if ("shiftWalk".equals(event.getKey())) + { + this.shiftWalk = "true".equals(event.getNewValue()); + } + else + { + this.shiftLoot = "true".equals(event.getNewValue()); + } + } + private void hotkeyCheck(ClientTick event) { if (hotkeyActive) @@ -260,21 +284,4 @@ public class ShiftWalkerPlugin extends Plugin menuManager.removePriorityEntry(WALK); eventBus.unregister(EVENTBUS_THING); } - - private void onConfigChanged(ConfigChanged event) - { - if (!event.getGroup().equals("shiftwalkhere")) - { - return; - } - - if ("shiftWalk".equals(event.getKey())) - { - this.shiftWalk = "true".equals(event.getNewValue()); - } - else - { - this.shiftLoot = "true".equals(event.getNewValue()); - } - } }