hotkeylistener: initialize only on valid game state. (#1684)

This commit is contained in:
Ganom
2019-09-29 14:00:55 -04:00
committed by GitHub
parent 0032bee15f
commit 50104541ff
2 changed files with 39 additions and 28 deletions

View File

@@ -310,10 +310,10 @@ public class MenuEntrySwapperPlugin extends Plugin
updateRemovedObjects(); updateRemovedObjects();
keyManager.registerKeyListener(ctrlHotkey);
keyManager.registerKeyListener(hotkey);
if (client.getGameState() == GameState.LOGGED_IN) if (client.getGameState() == GameState.LOGGED_IN)
{ {
keyManager.registerKeyListener(ctrlHotkey);
keyManager.registerKeyListener(hotkey);
setCastOptions(true); setCastOptions(true);
} }
} }
@@ -421,10 +421,14 @@ public class MenuEntrySwapperPlugin extends Plugin
{ {
if (event.getGameState() != GameState.LOGGED_IN) if (event.getGameState() != GameState.LOGGED_IN)
{ {
keyManager.unregisterKeyListener(ctrlHotkey);
keyManager.unregisterKeyListener(hotkey);
return; return;
} }
loadConstructionItems(); loadConstructionItems();
keyManager.registerKeyListener(ctrlHotkey);
keyManager.registerKeyListener(hotkey);
} }
private void onVarbitChanged(VarbitChanged event) private void onVarbitChanged(VarbitChanged event)

View File

@@ -36,6 +36,7 @@ import net.runelite.api.MenuOpcode;
import net.runelite.api.events.ClientTick; import net.runelite.api.events.ClientTick;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.FocusChanged; import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.config.Keybind; import net.runelite.client.config.Keybind;
import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.EventBus;
@@ -157,10 +158,6 @@ public class ShiftWalkerPlugin extends Plugin
@Override @Override
public void hotkeyPressed() public void hotkeyPressed()
{ {
if (client.getGameState() != GameState.LOGGED_IN)
{
return;
}
startPrioritizing(); startPrioritizing();
setHotkeyActive(true); setHotkeyActive(true);
} }
@@ -168,10 +165,6 @@ public class ShiftWalkerPlugin extends Plugin
@Override @Override
public void hotkeyReleased() public void hotkeyReleased()
{ {
if (client.getGameState() != GameState.LOGGED_IN)
{
return;
}
stopPrioritizing(); stopPrioritizing();
setHotkeyActive(false); setHotkeyActive(false);
} }
@@ -184,7 +177,10 @@ public class ShiftWalkerPlugin extends Plugin
this.shiftLoot = config.shiftLoot(); this.shiftLoot = config.shiftLoot();
addSubscriptions(); addSubscriptions();
keyManager.registerKeyListener(shift); if (client.getGameState() == GameState.LOGGED_IN)
{
keyManager.registerKeyListener(shift);
}
} }
@Override @Override
@@ -198,6 +194,17 @@ public class ShiftWalkerPlugin extends Plugin
{ {
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); 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) 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) private void hotkeyCheck(ClientTick event)
{ {
if (hotkeyActive) if (hotkeyActive)
@@ -260,21 +284,4 @@ public class ShiftWalkerPlugin extends Plugin
menuManager.removePriorityEntry(WALK); menuManager.removePriorityEntry(WALK);
eventBus.unregister(EVENTBUS_THING); 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());
}
}
} }