client: update to use isKeyPressed

This commit is contained in:
Adam
2020-06-25 21:26:58 -04:00
parent 1533929191
commit edbf5d22e1
10 changed files with 61 additions and 420 deletions

View File

@@ -29,14 +29,13 @@ package net.runelite.client.plugins.banktags;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.primitives.Shorts; import com.google.common.primitives.Shorts;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.awt.event.KeyEvent;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.List;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -46,13 +45,12 @@ import net.runelite.api.InventoryID;
import net.runelite.api.Item; import net.runelite.api.Item;
import net.runelite.api.ItemComposition; import net.runelite.api.ItemComposition;
import net.runelite.api.ItemContainer; import net.runelite.api.ItemContainer;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.VarClientInt; import net.runelite.api.VarClientInt;
import net.runelite.api.VarClientStr; import net.runelite.api.VarClientStr;
import net.runelite.client.events.ConfigChanged;
import net.runelite.api.events.DraggingWidgetChanged; import net.runelite.api.events.DraggingWidgetChanged;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.GrandExchangeSearched; import net.runelite.api.events.GrandExchangeSearched;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
@@ -66,11 +64,11 @@ import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.game.ItemVariationMapping; import net.runelite.client.game.ItemVariationMapping;
import net.runelite.client.game.SpriteManager; import net.runelite.client.game.SpriteManager;
import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxPanelManager;
import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager; import net.runelite.client.input.KeyManager;
import net.runelite.client.input.MouseManager; import net.runelite.client.input.MouseManager;
import net.runelite.client.input.MouseWheelListener; import net.runelite.client.input.MouseWheelListener;
@@ -90,7 +88,7 @@ import net.runelite.client.util.Text;
tags = {"searching", "tagging"} tags = {"searching", "tagging"}
) )
@PluginDependency(ClueScrollPlugin.class) @PluginDependency(ClueScrollPlugin.class)
public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyListener public class BankTagsPlugin extends Plugin implements MouseWheelListener
{ {
public static final String CONFIG_GROUP = "banktags"; public static final String CONFIG_GROUP = "banktags";
public static final String TAG_SEARCH = "tag:"; public static final String TAG_SEARCH = "tag:";
@@ -144,8 +142,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
@Inject @Inject
private ConfigManager configManager; private ConfigManager configManager;
private boolean shiftPressed = false;
@Provides @Provides
BankTagsConfig getConfig(ConfigManager configManager) BankTagsConfig getConfig(ConfigManager configManager)
{ {
@@ -186,7 +182,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
public void startUp() public void startUp()
{ {
cleanConfig(); cleanConfig();
keyManager.registerKeyListener(this);
mouseManager.registerMouseWheelListener(this); mouseManager.registerMouseWheelListener(this);
clientThread.invokeLater(tabInterface::init); clientThread.invokeLater(tabInterface::init);
spriteManager.addSpriteOverrides(TabSprites.values()); spriteManager.addSpriteOverrides(TabSprites.values());
@@ -248,12 +243,9 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
@Override @Override
public void shutDown() public void shutDown()
{ {
keyManager.unregisterKeyListener(this);
mouseManager.unregisterMouseWheelListener(this); mouseManager.unregisterMouseWheelListener(this);
clientThread.invokeLater(tabInterface::destroy); clientThread.invokeLater(tabInterface::destroy);
spriteManager.removeSpriteOverrides(TabSprites.values()); spriteManager.removeSpriteOverrides(TabSprites.values());
shiftPressed = false;
} }
@Subscribe @Subscribe
@@ -467,6 +459,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
@Subscribe @Subscribe
public void onDraggingWidgetChanged(DraggingWidgetChanged event) public void onDraggingWidgetChanged(DraggingWidgetChanged event)
{ {
final boolean shiftPressed = client.isKeyPressed(KeyCode.KC_SHIFT);
tabInterface.handleDrag(event.isDraggingWidget(), shiftPressed); tabInterface.handleDrag(event.isDraggingWidget(), shiftPressed);
} }
@@ -479,42 +472,10 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
} }
} }
@Subscribe
public void onFocusChanged(FocusChanged event)
{
if (!event.isFocused())
{
shiftPressed = false;
}
}
@Override @Override
public MouseWheelEvent mouseWheelMoved(MouseWheelEvent event) public MouseWheelEvent mouseWheelMoved(MouseWheelEvent event)
{ {
tabInterface.handleWheel(event); tabInterface.handleWheel(event);
return event; return event;
} }
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_SHIFT)
{
shiftPressed = true;
}
}
@Override
public void keyReleased(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_SHIFT)
{
shiftPressed = false;
}
}
} }

View File

@@ -1,67 +0,0 @@
/*
* Copyright (c) 2018, TheLonelyDev <https://github.com/TheLonelyDev>
* Copyright (c) 2018, Adam <Adam@sigterm.info>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.plugins.groundmarkers;
import java.awt.event.KeyEvent;
import javax.inject.Inject;
import net.runelite.client.input.KeyListener;
public class GroundMarkerInputListener implements KeyListener
{
private static final int HOTKEY = KeyEvent.VK_SHIFT;
private final GroundMarkerPlugin plugin;
@Inject
private GroundMarkerInputListener(GroundMarkerPlugin plugin)
{
this.plugin = plugin;
}
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == HOTKEY)
{
plugin.setHotKeyPressed(true);
}
}
@Override
public void keyReleased(KeyEvent e)
{
if (e.getKeyCode() == HOTKEY)
{
plugin.setHotKeyPressed(false);
}
}
}

View File

@@ -38,16 +38,15 @@ import java.util.stream.Collectors;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.Tile; import net.runelite.api.Tile;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.MenuOptionClicked;
@@ -74,10 +73,6 @@ public class GroundMarkerPlugin extends Plugin
private static final Gson GSON = new Gson(); private static final Gson GSON = new Gson();
@Getter(AccessLevel.PACKAGE)
@Setter(AccessLevel.PACKAGE)
private boolean hotKeyPressed;
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
private final List<ColorTileMarker> points = new ArrayList<>(); private final List<ColorTileMarker> points = new ArrayList<>();
@@ -87,9 +82,6 @@ public class GroundMarkerPlugin extends Plugin
@Inject @Inject
private GroundMarkerConfig config; private GroundMarkerConfig config;
@Inject
private GroundMarkerInputListener inputListener;
@Inject @Inject
private ConfigManager configManager; private ConfigManager configManager;
@@ -195,18 +187,10 @@ public class GroundMarkerPlugin extends Plugin
loadPoints(); loadPoints();
} }
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!focusChanged.isFocused())
{
hotKeyPressed = false;
}
}
@Subscribe @Subscribe
public void onMenuEntryAdded(MenuEntryAdded event) public void onMenuEntryAdded(MenuEntryAdded event)
{ {
final boolean hotKeyPressed = client.isKeyPressed(KeyCode.KC_SHIFT);
if (hotKeyPressed && event.getOption().equals(WALK_HERE)) if (hotKeyPressed && event.getOption().equals(WALK_HERE))
{ {
final Tile selectedSceneTile = client.getSelectedSceneTile(); final Tile selectedSceneTile = client.getSelectedSceneTile();
@@ -254,7 +238,6 @@ public class GroundMarkerPlugin extends Plugin
{ {
overlayManager.add(overlay); overlayManager.add(overlay);
overlayManager.add(minimapOverlay); overlayManager.add(minimapOverlay);
keyManager.registerKeyListener(inputListener);
loadPoints(); loadPoints();
} }
@@ -263,7 +246,6 @@ public class GroundMarkerPlugin extends Plugin
{ {
overlayManager.remove(overlay); overlayManager.remove(overlay);
overlayManager.remove(minimapOverlay); overlayManager.remove(minimapOverlay);
keyManager.unregisterKeyListener(inputListener);
points.clear(); points.clear();
} }

View File

@@ -42,15 +42,14 @@ import java.util.function.Predicate;
import java.util.function.Supplier; import java.util.function.Supplier;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.ItemComposition; import net.runelite.api.ItemComposition;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.NPC; import net.runelite.api.NPC;
import net.runelite.api.events.ClientTick; import net.runelite.api.events.ClientTick;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOpened; import net.runelite.api.events.MenuOpened;
import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.MenuOptionClicked;
@@ -131,9 +130,6 @@ public class MenuEntrySwapperPlugin extends Plugin
@Inject @Inject
private MenuEntrySwapperConfig config; private MenuEntrySwapperConfig config;
@Inject
private ShiftClickInputListener inputListener;
@Inject @Inject
private ConfigManager configManager; private ConfigManager configManager;
@@ -149,9 +145,6 @@ public class MenuEntrySwapperPlugin extends Plugin
@Getter @Getter
private boolean configuringShiftClick = false; private boolean configuringShiftClick = false;
@Setter
private boolean shiftModifier = false;
private final Multimap<String, Swap> swaps = LinkedHashMultimap.create(); private final Multimap<String, Swap> swaps = LinkedHashMultimap.create();
private final ArrayListMultimap<String, Integer> optionIndexes = ArrayListMultimap.create(); private final ArrayListMultimap<String, Integer> optionIndexes = ArrayListMultimap.create();
@@ -299,39 +292,39 @@ public class MenuEntrySwapperPlugin extends Plugin
swap("pick", "pick-lots", config::swapPick); swap("pick", "pick-lots", config::swapPick);
swap("view offer", "abort offer", () -> shiftModifier && config.swapGEAbort()); swap("view offer", "abort offer", () -> shiftModifier() && config.swapGEAbort());
swap("cast", "npc contact", "honest jimmy", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "honest jimmy", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "bert the sandman", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "bert the sandman", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "advisor ghrim", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "advisor ghrim", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "dark mage", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "dark mage", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "lanthus", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "lanthus", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "turael", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "turael", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "mazchna", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "mazchna", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "vannaka", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "vannaka", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "chaeldar", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "chaeldar", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "nieve", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "nieve", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "steve", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "steve", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "duradel", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "duradel", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "krystilia", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "krystilia", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "konar", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "konar", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "murphy", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "murphy", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "cyrisus", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "cyrisus", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "smoggy", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "smoggy", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "ginea", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "ginea", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "watson", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "watson", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "barbarian guard", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "barbarian guard", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "random", () -> shiftModifier && config.swapNpcContact()); swap("cast", "npc contact", "random", () -> shiftModifier() && config.swapNpcContact());
swap("value", "buy 1", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_1); swap("value", "buy 1", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_1);
swap("value", "buy 5", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_5); swap("value", "buy 5", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_5);
swap("value", "buy 10", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_10); swap("value", "buy 10", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_10);
swap("value", "buy 50", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_50); swap("value", "buy 50", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_50);
swap("value", "sell 1", () -> shiftModifier && config.shopSell() == SellMode.SELL_1); swap("value", "sell 1", () -> shiftModifier() && config.shopSell() == SellMode.SELL_1);
swap("value", "sell 5", () -> shiftModifier && config.shopSell() == SellMode.SELL_5); swap("value", "sell 5", () -> shiftModifier() && config.shopSell() == SellMode.SELL_5);
swap("value", "sell 10", () -> shiftModifier && config.shopSell() == SellMode.SELL_10); swap("value", "sell 10", () -> shiftModifier() && config.shopSell() == SellMode.SELL_10);
swap("value", "sell 50", () -> shiftModifier && config.shopSell() == SellMode.SELL_50); swap("value", "sell 50", () -> shiftModifier() && config.shopSell() == SellMode.SELL_50);
swap("wear", "rub", config::swapTeleportItem); swap("wear", "rub", config::swapTeleportItem);
swap("wear", "teleport", config::swapTeleportItem); swap("wear", "teleport", config::swapTeleportItem);
@@ -382,8 +375,8 @@ public class MenuEntrySwapperPlugin extends Plugin
private void swapTeleport(String option, String swappedOption) private void swapTeleport(String option, String swappedOption)
{ {
swap("cast", option, swappedOption, () -> shiftModifier && config.swapTeleportSpell()); swap("cast", option, swappedOption, () -> shiftModifier() && config.swapTeleportSpell());
swap(swappedOption, option, "cast", () -> shiftModifier && config.swapTeleportSpell()); swap(swappedOption, option, "cast", () -> shiftModifier() && config.swapTeleportSpell());
} }
@Subscribe @Subscribe
@@ -438,7 +431,6 @@ public class MenuEntrySwapperPlugin extends Plugin
private void enableCustomization() private void enableCustomization()
{ {
keyManager.registerKeyListener(inputListener);
refreshShiftClickCustomizationMenus(); refreshShiftClickCustomizationMenus();
// set shift click action index on the item compositions // set shift click action index on the item compositions
clientThread.invoke(this::resetItemCompositionCache); clientThread.invoke(this::resetItemCompositionCache);
@@ -446,7 +438,6 @@ public class MenuEntrySwapperPlugin extends Plugin
private void disableCustomization() private void disableCustomization()
{ {
keyManager.unregisterKeyListener(inputListener);
removeShiftClickCustomizationMenus(); removeShiftClickCustomizationMenus();
configuringShiftClick = false; configuringShiftClick = false;
// flush item compositions to reset the shift click action index // flush item compositions to reset the shift click action index
@@ -536,7 +527,7 @@ public class MenuEntrySwapperPlugin extends Plugin
// Swap to shift-click deposit behavior // Swap to shift-click deposit behavior
// Deposit- op 1 is the current withdraw amount 1/5/10/x for deposit box interface // Deposit- op 1 is the current withdraw amount 1/5/10/x for deposit box interface
// Deposit- op 2 is the current withdraw amount 1/5/10/x for bank interface // Deposit- op 2 is the current withdraw amount 1/5/10/x for bank interface
if (shiftModifier && config.bankDepositShiftClick() != ShiftDepositMode.OFF if (shiftModifier() && config.bankDepositShiftClick() != ShiftDepositMode.OFF
&& menuEntryAdded.getType() == MenuAction.CC_OP.getId() && (menuEntryAdded.getIdentifier() == 2 || menuEntryAdded.getIdentifier() == 1) && menuEntryAdded.getType() == MenuAction.CC_OP.getId() && (menuEntryAdded.getIdentifier() == 2 || menuEntryAdded.getIdentifier() == 1)
&& menuEntryAdded.getOption().startsWith("Deposit-")) && menuEntryAdded.getOption().startsWith("Deposit-"))
{ {
@@ -548,7 +539,7 @@ public class MenuEntrySwapperPlugin extends Plugin
// Swap to shift-click withdraw behavior // Swap to shift-click withdraw behavior
// Deposit- op 1 is the current withdraw amount 1/5/10/x // Deposit- op 1 is the current withdraw amount 1/5/10/x
if (shiftModifier && config.bankWithdrawShiftClick() != ShiftWithdrawMode.OFF if (shiftModifier() && config.bankWithdrawShiftClick() != ShiftWithdrawMode.OFF
&& menuEntryAdded.getType() == MenuAction.CC_OP.getId() && menuEntryAdded.getIdentifier() == 1 && menuEntryAdded.getType() == MenuAction.CC_OP.getId() && menuEntryAdded.getIdentifier() == 1
&& menuEntryAdded.getOption().startsWith("Withdraw-")) && menuEntryAdded.getOption().startsWith("Withdraw-"))
{ {
@@ -645,7 +636,7 @@ public class MenuEntrySwapperPlugin extends Plugin
return; return;
} }
if (shiftModifier && (menuAction == MenuAction.ITEM_FIRST_OPTION if (shiftModifier() && (menuAction == MenuAction.ITEM_FIRST_OPTION
|| menuAction == MenuAction.ITEM_SECOND_OPTION || menuAction == MenuAction.ITEM_SECOND_OPTION
|| menuAction == MenuAction.ITEM_THIRD_OPTION || menuAction == MenuAction.ITEM_THIRD_OPTION
|| menuAction == MenuAction.ITEM_FOURTH_OPTION || menuAction == MenuAction.ITEM_FOURTH_OPTION
@@ -730,15 +721,6 @@ public class MenuEntrySwapperPlugin extends Plugin
} }
} }
@Subscribe
public void onFocusChanged(FocusChanged event)
{
if (!event.isFocused())
{
shiftModifier = false;
}
}
private boolean swap(String option, String target, int index, boolean strict) private boolean swap(String option, String target, int index, boolean strict)
{ {
MenuEntry[] menuEntries = client.getMenuEntries(); MenuEntry[] menuEntries = client.getMenuEntries();
@@ -853,4 +835,9 @@ public class MenuEntrySwapperPlugin extends Plugin
menuManager.addManagedCustomMenu(RESIZABLE_INVENTORY_TAB_CONFIGURE); menuManager.addManagedCustomMenu(RESIZABLE_INVENTORY_TAB_CONFIGURE);
} }
} }
private boolean shiftModifier()
{
return client.isKeyPressed(KeyCode.KC_SHIFT);
}
} }

View File

@@ -1,67 +0,0 @@
/*
* Copyright (c) 2018, Kamiel
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.plugins.menuentryswapper;
import java.awt.event.KeyEvent;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.input.KeyListener;
public class ShiftClickInputListener implements KeyListener
{
@Inject
private ClientThread clientThread;
@Inject
private Client client;
@Inject
private MenuEntrySwapperPlugin plugin;
@Override
public void keyTyped(KeyEvent event)
{
}
@Override
public void keyPressed(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.VK_SHIFT)
{
plugin.setShiftModifier(true);
}
}
@Override
public void keyReleased(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.VK_SHIFT)
{
plugin.setShiftModifier(false);
}
}
}

View File

@@ -1,61 +0,0 @@
/*
* Copyright (c) 2018, Seth <http://github.com/sethtroll>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.plugins.npchighlight;
import java.awt.event.KeyEvent;
import javax.inject.Inject;
import net.runelite.client.input.KeyListener;
public class NpcIndicatorsInput implements KeyListener
{
private static final int HOTKEY = KeyEvent.VK_SHIFT;
@Inject
private NpcIndicatorsPlugin plugin;
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == HOTKEY)
{
plugin.setHotKeyPressed(true);
}
}
@Override
public void keyReleased(KeyEvent e)
{
if (e.getKeyCode() == HOTKEY)
{
plugin.setHotKeyPressed(false);
}
}
}

View File

@@ -41,18 +41,17 @@ import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.GraphicID; import net.runelite.api.GraphicID;
import net.runelite.api.GraphicsObject; import net.runelite.api.GraphicsObject;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import static net.runelite.api.MenuAction.MENU_ACTION_DEPRIORITIZE_OFFSET; import static net.runelite.api.MenuAction.MENU_ACTION_DEPRIORITIZE_OFFSET;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.NPC; import net.runelite.api.NPC;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.GraphicsObjectCreated; import net.runelite.api.events.GraphicsObjectCreated;
@@ -105,18 +104,12 @@ public class NpcIndicatorsPlugin extends Plugin
@Inject @Inject
private NpcMinimapOverlay npcMinimapOverlay; private NpcMinimapOverlay npcMinimapOverlay;
@Inject
private NpcIndicatorsInput inputListener;
@Inject @Inject
private KeyManager keyManager; private KeyManager keyManager;
@Inject @Inject
private ClientThread clientThread; private ClientThread clientThread;
@Setter(AccessLevel.PACKAGE)
private boolean hotKeyPressed = false;
/** /**
* NPCs to highlight * NPCs to highlight
*/ */
@@ -191,7 +184,6 @@ public class NpcIndicatorsPlugin extends Plugin
{ {
overlayManager.add(npcSceneOverlay); overlayManager.add(npcSceneOverlay);
overlayManager.add(npcMinimapOverlay); overlayManager.add(npcMinimapOverlay);
keyManager.registerKeyListener(inputListener);
highlights = getHighlights(); highlights = getHighlights();
clientThread.invoke(() -> clientThread.invoke(() ->
{ {
@@ -212,7 +204,6 @@ public class NpcIndicatorsPlugin extends Plugin
teleportGraphicsObjectSpawnedThisTick.clear(); teleportGraphicsObjectSpawnedThisTick.clear();
npcTags.clear(); npcTags.clear();
highlightedNpcs.clear(); highlightedNpcs.clear();
keyManager.unregisterKeyListener(inputListener);
} }
@Subscribe @Subscribe
@@ -241,15 +232,6 @@ public class NpcIndicatorsPlugin extends Plugin
rebuildAllNpcs(); rebuildAllNpcs();
} }
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!focusChanged.isFocused())
{
hotKeyPressed = false;
}
}
@Subscribe @Subscribe
public void onMenuEntryAdded(MenuEntryAdded event) public void onMenuEntryAdded(MenuEntryAdded event)
{ {
@@ -286,7 +268,7 @@ public class NpcIndicatorsPlugin extends Plugin
client.setMenuEntries(menuEntries); client.setMenuEntries(menuEntries);
} }
} }
else if (hotKeyPressed && menuAction == MenuAction.EXAMINE_NPC) else if (menuAction == MenuAction.EXAMINE_NPC && client.isKeyPressed(KeyCode.KC_SHIFT))
{ {
// Add tag option // Add tag option
MenuEntry[] menuEntries = client.getMenuEntries(); MenuEntry[] menuEntries = client.getMenuEntries();

View File

@@ -30,7 +30,6 @@ import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.awt.Color; import java.awt.Color;
import java.awt.event.KeyEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
@@ -49,6 +48,7 @@ import net.runelite.api.DecorativeObject;
import net.runelite.api.GameObject; import net.runelite.api.GameObject;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.GroundObject; import net.runelite.api.GroundObject;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.ObjectComposition; import net.runelite.api.ObjectComposition;
@@ -59,7 +59,6 @@ import net.runelite.api.WallObject;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.DecorativeObjectDespawned; import net.runelite.api.events.DecorativeObjectDespawned;
import net.runelite.api.events.DecorativeObjectSpawned; import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameObjectDespawned; import net.runelite.api.events.GameObjectDespawned;
import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameObjectSpawned;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
@@ -72,7 +71,6 @@ import net.runelite.api.events.WallObjectDespawned;
import net.runelite.api.events.WallObjectSpawned; import net.runelite.api.events.WallObjectSpawned;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.input.KeyListener;
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;
@@ -85,7 +83,7 @@ import net.runelite.client.ui.overlay.OverlayManager;
enabledByDefault = false enabledByDefault = false
) )
@Slf4j @Slf4j
public class ObjectIndicatorsPlugin extends Plugin implements KeyListener public class ObjectIndicatorsPlugin extends Plugin
{ {
private static final String CONFIG_GROUP = "objectindicators"; private static final String CONFIG_GROUP = "objectindicators";
private static final String MARK = "Mark object"; private static final String MARK = "Mark object";
@@ -95,7 +93,6 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
private final List<ColorTileObject> objects = new ArrayList<>(); private final List<ColorTileObject> objects = new ArrayList<>();
private final Map<Integer, Set<ObjectPoint>> points = new HashMap<>(); private final Map<Integer, Set<ObjectPoint>> points = new HashMap<>();
private boolean hotKeyPressed;
@Inject @Inject
private Client client; private Client client;
@@ -125,50 +122,14 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
protected void startUp() protected void startUp()
{ {
overlayManager.add(overlay); overlayManager.add(overlay);
keyManager.registerKeyListener(this);
} }
@Override @Override
protected void shutDown() protected void shutDown()
{ {
overlayManager.remove(overlay); overlayManager.remove(overlay);
keyManager.unregisterKeyListener(this);
points.clear(); points.clear();
objects.clear(); objects.clear();
hotKeyPressed = false;
}
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_SHIFT)
{
hotKeyPressed = true;
}
}
@Override
public void keyReleased(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_SHIFT)
{
hotKeyPressed = false;
}
}
@Subscribe
public void onFocusChanged(final FocusChanged event)
{
if (!event.isFocused())
{
hotKeyPressed = false;
}
} }
@Subscribe @Subscribe
@@ -258,7 +219,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener
@Subscribe @Subscribe
public void onMenuEntryAdded(MenuEntryAdded event) public void onMenuEntryAdded(MenuEntryAdded event)
{ {
if (!hotKeyPressed || event.getType() != MenuAction.EXAMINE_OBJECT.getId()) if (event.getType() != MenuAction.EXAMINE_OBJECT.getId() || !client.isKeyPressed(KeyCode.KC_SHIFT))
{ {
return; return;
} }

View File

@@ -27,7 +27,6 @@ package net.runelite.client.plugins.party;
import com.google.inject.Binder; import com.google.inject.Binder;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.awt.Color; import java.awt.Color;
import java.awt.event.KeyEvent;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@@ -42,6 +41,7 @@ import lombok.Getter;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.Skill; import net.runelite.api.Skill;
@@ -49,7 +49,6 @@ import net.runelite.api.SoundEffectID;
import net.runelite.api.Tile; import net.runelite.api.Tile;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.CommandExecuted;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.MenuOptionClicked;
import net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
@@ -61,7 +60,6 @@ import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.OverlayMenuClicked;
import net.runelite.client.events.PartyChanged; import net.runelite.client.events.PartyChanged;
import net.runelite.client.input.KeyListener;
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;
@@ -86,7 +84,7 @@ import net.runelite.http.api.ws.messages.party.UserSync;
name = "Party", name = "Party",
description = "Shows useful information about current party" description = "Shows useful information about current party"
) )
public class PartyPlugin extends Plugin implements KeyListener public class PartyPlugin extends Plugin
{ {
@Inject @Inject
private Client client; private Client client;
@@ -135,7 +133,7 @@ public class PartyPlugin extends Plugin implements KeyListener
private final List<PartyTilePingData> pendingTilePings = Collections.synchronizedList(new ArrayList<>()); private final List<PartyTilePingData> pendingTilePings = Collections.synchronizedList(new ArrayList<>());
private int lastHp, lastPray; private int lastHp, lastPray;
private boolean hotkeyDown, doSync; private boolean doSync;
private boolean sendAlert; private boolean sendAlert;
@Override @Override
@@ -152,7 +150,6 @@ public class PartyPlugin extends Plugin implements KeyListener
wsClient.registerMessage(SkillUpdate.class); wsClient.registerMessage(SkillUpdate.class);
wsClient.registerMessage(TilePing.class); wsClient.registerMessage(TilePing.class);
wsClient.registerMessage(LocationUpdate.class); wsClient.registerMessage(LocationUpdate.class);
keyManager.registerKeyListener(this);
doSync = true; // Delay sync so eventbus can process correctly. doSync = true; // Delay sync so eventbus can process correctly.
} }
@@ -167,8 +164,6 @@ public class PartyPlugin extends Plugin implements KeyListener
wsClient.unregisterMessage(SkillUpdate.class); wsClient.unregisterMessage(SkillUpdate.class);
wsClient.unregisterMessage(TilePing.class); wsClient.unregisterMessage(TilePing.class);
wsClient.unregisterMessage(LocationUpdate.class); wsClient.unregisterMessage(LocationUpdate.class);
keyManager.unregisterKeyListener(this);
hotkeyDown = false;
doSync = false; doSync = false;
sendAlert = false; sendAlert = false;
} }
@@ -208,7 +203,7 @@ public class PartyPlugin extends Plugin implements KeyListener
@Subscribe @Subscribe
public void onMenuOptionClicked(MenuOptionClicked event) public void onMenuOptionClicked(MenuOptionClicked event)
{ {
if (!hotkeyDown || client.isMenuOpen() || party.getMembers().isEmpty() || !config.pings()) if (!client.isKeyPressed(KeyCode.KC_SHIFT) || client.isMenuOpen() || party.getMembers().isEmpty() || !config.pings())
{ {
return; return;
} }
@@ -503,39 +498,6 @@ public class PartyPlugin extends Plugin implements KeyListener
}); });
} }
@Subscribe
public void onFocusChanged(FocusChanged event)
{
if (!event.isFocused())
{
hotkeyDown = false;
}
}
@Override
public void keyTyped(KeyEvent keyEvent)
{
}
@Override
public void keyPressed(KeyEvent keyEvent)
{
if (keyEvent.getKeyCode() == KeyEvent.VK_SHIFT)
{
hotkeyDown = true;
}
}
@Override
public void keyReleased(KeyEvent keyEvent)
{
if (keyEvent.getKeyCode() == KeyEvent.VK_SHIFT)
{
hotkeyDown = false;
}
}
private void sendInstructionMessage() private void sendInstructionMessage()
{ {
final String helpMessage = new ChatMessageBuilder() final String helpMessage = new ChatMessageBuilder()

View File

@@ -30,6 +30,7 @@ import com.google.inject.testing.fieldbinder.Bind;
import com.google.inject.testing.fieldbinder.BoundFieldModule; import com.google.inject.testing.fieldbinder.BoundFieldModule;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.events.ClientTick; import net.runelite.api.events.ClientTick;
@@ -224,7 +225,7 @@ public class MenuEntrySwapperPluginTest
public void testTeleport() public void testTeleport()
{ {
when(config.swapTeleportSpell()).thenReturn(true); when(config.swapTeleportSpell()).thenReturn(true);
menuEntrySwapperPlugin.setShiftModifier(true); when(client.isKeyPressed(KeyCode.KC_SHIFT)).thenReturn(true);
// Cast -> Grand Exchange // Cast -> Grand Exchange
entries = new MenuEntry[]{ entries = new MenuEntry[]{
@@ -307,7 +308,7 @@ public class MenuEntrySwapperPluginTest
public void testShiftWithdraw() public void testShiftWithdraw()
{ {
when(config.bankDepositShiftClick()).thenReturn(ShiftDepositMode.EXTRA_OP); when(config.bankDepositShiftClick()).thenReturn(ShiftDepositMode.EXTRA_OP);
menuEntrySwapperPlugin.setShiftModifier(true); when(client.isKeyPressed(KeyCode.KC_SHIFT)).thenReturn(true);
entries = new MenuEntry[]{ entries = new MenuEntry[]{
menu("Cancel", "", MenuAction.CANCEL), menu("Cancel", "", MenuAction.CANCEL),
@@ -338,7 +339,7 @@ public class MenuEntrySwapperPluginTest
public void testShiftDeposit() public void testShiftDeposit()
{ {
when(config.bankDepositShiftClick()).thenReturn(ShiftDepositMode.DEPOSIT_ALL); when(config.bankDepositShiftClick()).thenReturn(ShiftDepositMode.DEPOSIT_ALL);
menuEntrySwapperPlugin.setShiftModifier(true); when(client.isKeyPressed(KeyCode.KC_SHIFT)).thenReturn(true);
entries = new MenuEntry[]{ entries = new MenuEntry[]{
menu("Cancel", "", MenuAction.CANCEL), menu("Cancel", "", MenuAction.CANCEL),