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.primitives.Shorts;
import com.google.inject.Provides;
import java.awt.event.KeyEvent;
import java.awt.event.MouseWheelEvent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import java.util.List;
import java.util.function.Consumer;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -46,13 +45,12 @@ import net.runelite.api.InventoryID;
import net.runelite.api.Item;
import net.runelite.api.ItemComposition;
import net.runelite.api.ItemContainer;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry;
import net.runelite.api.VarClientInt;
import net.runelite.api.VarClientStr;
import net.runelite.client.events.ConfigChanged;
import net.runelite.api.events.DraggingWidgetChanged;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.GrandExchangeSearched;
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.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged;
import net.runelite.client.game.ItemManager;
import net.runelite.client.game.ItemVariationMapping;
import net.runelite.client.game.SpriteManager;
import net.runelite.client.game.chatbox.ChatboxPanelManager;
import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager;
import net.runelite.client.input.MouseManager;
import net.runelite.client.input.MouseWheelListener;
@@ -90,7 +88,7 @@ import net.runelite.client.util.Text;
tags = {"searching", "tagging"}
)
@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 TAG_SEARCH = "tag:";
@@ -144,8 +142,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
@Inject
private ConfigManager configManager;
private boolean shiftPressed = false;
@Provides
BankTagsConfig getConfig(ConfigManager configManager)
{
@@ -186,7 +182,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
public void startUp()
{
cleanConfig();
keyManager.registerKeyListener(this);
mouseManager.registerMouseWheelListener(this);
clientThread.invokeLater(tabInterface::init);
spriteManager.addSpriteOverrides(TabSprites.values());
@@ -248,12 +243,9 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
@Override
public void shutDown()
{
keyManager.unregisterKeyListener(this);
mouseManager.unregisterMouseWheelListener(this);
clientThread.invokeLater(tabInterface::destroy);
spriteManager.removeSpriteOverrides(TabSprites.values());
shiftPressed = false;
}
@Subscribe
@@ -467,6 +459,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
@Subscribe
public void onDraggingWidgetChanged(DraggingWidgetChanged event)
{
final boolean shiftPressed = client.isKeyPressed(KeyCode.KC_SHIFT);
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
public MouseWheelEvent mouseWheelMoved(MouseWheelEvent event)
{
tabInterface.handleWheel(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 lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
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.Tile;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked;
@@ -74,10 +73,6 @@ public class GroundMarkerPlugin extends Plugin
private static final Gson GSON = new Gson();
@Getter(AccessLevel.PACKAGE)
@Setter(AccessLevel.PACKAGE)
private boolean hotKeyPressed;
@Getter(AccessLevel.PACKAGE)
private final List<ColorTileMarker> points = new ArrayList<>();
@@ -87,9 +82,6 @@ public class GroundMarkerPlugin extends Plugin
@Inject
private GroundMarkerConfig config;
@Inject
private GroundMarkerInputListener inputListener;
@Inject
private ConfigManager configManager;
@@ -195,18 +187,10 @@ public class GroundMarkerPlugin extends Plugin
loadPoints();
}
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!focusChanged.isFocused())
{
hotKeyPressed = false;
}
}
@Subscribe
public void onMenuEntryAdded(MenuEntryAdded event)
{
final boolean hotKeyPressed = client.isKeyPressed(KeyCode.KC_SHIFT);
if (hotKeyPressed && event.getOption().equals(WALK_HERE))
{
final Tile selectedSceneTile = client.getSelectedSceneTile();
@@ -254,7 +238,6 @@ public class GroundMarkerPlugin extends Plugin
{
overlayManager.add(overlay);
overlayManager.add(minimapOverlay);
keyManager.registerKeyListener(inputListener);
loadPoints();
}
@@ -263,7 +246,6 @@ public class GroundMarkerPlugin extends Plugin
{
overlayManager.remove(overlay);
overlayManager.remove(minimapOverlay);
keyManager.unregisterKeyListener(inputListener);
points.clear();
}

View File

@@ -42,15 +42,14 @@ import java.util.function.Predicate;
import java.util.function.Supplier;
import javax.inject.Inject;
import lombok.Getter;
import lombok.Setter;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.ItemComposition;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry;
import net.runelite.api.NPC;
import net.runelite.api.events.ClientTick;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOpened;
import net.runelite.api.events.MenuOptionClicked;
@@ -131,9 +130,6 @@ public class MenuEntrySwapperPlugin extends Plugin
@Inject
private MenuEntrySwapperConfig config;
@Inject
private ShiftClickInputListener inputListener;
@Inject
private ConfigManager configManager;
@@ -149,9 +145,6 @@ public class MenuEntrySwapperPlugin extends Plugin
@Getter
private boolean configuringShiftClick = false;
@Setter
private boolean shiftModifier = false;
private final Multimap<String, Swap> swaps = LinkedHashMultimap.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("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", "bert the sandman", () -> 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", "lanthus", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "turael", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "mazchna", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "vannaka", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "chaeldar", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "nieve", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "steve", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "duradel", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "krystilia", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "konar", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "murphy", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "cyrisus", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "smoggy", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "ginea", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "watson", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "barbarian guard", () -> shiftModifier && config.swapNpcContact());
swap("cast", "npc contact", "random", () -> 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", "advisor ghrim", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "dark mage", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "lanthus", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "turael", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "mazchna", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "vannaka", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "chaeldar", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "nieve", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "steve", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "duradel", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "krystilia", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "konar", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "murphy", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "cyrisus", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "smoggy", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "ginea", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "watson", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "barbarian guard", () -> shiftModifier() && config.swapNpcContact());
swap("cast", "npc contact", "random", () -> shiftModifier() && config.swapNpcContact());
swap("value", "buy 1", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_1);
swap("value", "buy 5", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_5);
swap("value", "buy 10", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_10);
swap("value", "buy 50", () -> shiftModifier && config.shopBuy() == BuyMode.BUY_50);
swap("value", "buy 1", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_1);
swap("value", "buy 5", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_5);
swap("value", "buy 10", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_10);
swap("value", "buy 50", () -> shiftModifier() && config.shopBuy() == BuyMode.BUY_50);
swap("value", "sell 1", () -> shiftModifier && config.shopSell() == SellMode.SELL_1);
swap("value", "sell 5", () -> shiftModifier && config.shopSell() == SellMode.SELL_5);
swap("value", "sell 10", () -> shiftModifier && config.shopSell() == SellMode.SELL_10);
swap("value", "sell 50", () -> shiftModifier && config.shopSell() == SellMode.SELL_50);
swap("value", "sell 1", () -> shiftModifier() && config.shopSell() == SellMode.SELL_1);
swap("value", "sell 5", () -> shiftModifier() && config.shopSell() == SellMode.SELL_5);
swap("value", "sell 10", () -> shiftModifier() && config.shopSell() == SellMode.SELL_10);
swap("value", "sell 50", () -> shiftModifier() && config.shopSell() == SellMode.SELL_50);
swap("wear", "rub", config::swapTeleportItem);
swap("wear", "teleport", config::swapTeleportItem);
@@ -382,8 +375,8 @@ public class MenuEntrySwapperPlugin extends Plugin
private void swapTeleport(String option, String swappedOption)
{
swap("cast", option, swappedOption, () -> shiftModifier && config.swapTeleportSpell());
swap(swappedOption, option, "cast", () -> shiftModifier && config.swapTeleportSpell());
swap("cast", option, swappedOption, () -> shiftModifier() && config.swapTeleportSpell());
swap(swappedOption, option, "cast", () -> shiftModifier() && config.swapTeleportSpell());
}
@Subscribe
@@ -438,7 +431,6 @@ public class MenuEntrySwapperPlugin extends Plugin
private void enableCustomization()
{
keyManager.registerKeyListener(inputListener);
refreshShiftClickCustomizationMenus();
// set shift click action index on the item compositions
clientThread.invoke(this::resetItemCompositionCache);
@@ -446,7 +438,6 @@ public class MenuEntrySwapperPlugin extends Plugin
private void disableCustomization()
{
keyManager.unregisterKeyListener(inputListener);
removeShiftClickCustomizationMenus();
configuringShiftClick = false;
// 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
// 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
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.getOption().startsWith("Deposit-"))
{
@@ -548,7 +539,7 @@ public class MenuEntrySwapperPlugin extends Plugin
// Swap to shift-click withdraw behavior
// 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.getOption().startsWith("Withdraw-"))
{
@@ -645,7 +636,7 @@ public class MenuEntrySwapperPlugin extends Plugin
return;
}
if (shiftModifier && (menuAction == MenuAction.ITEM_FIRST_OPTION
if (shiftModifier() && (menuAction == MenuAction.ITEM_FIRST_OPTION
|| menuAction == MenuAction.ITEM_SECOND_OPTION
|| menuAction == MenuAction.ITEM_THIRD_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)
{
MenuEntry[] menuEntries = client.getMenuEntries();
@@ -853,4 +835,9 @@ public class MenuEntrySwapperPlugin extends Plugin
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 lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.GraphicID;
import net.runelite.api.GraphicsObject;
import net.runelite.api.KeyCode;
import net.runelite.api.MenuAction;
import static net.runelite.api.MenuAction.MENU_ACTION_DEPRIORITIZE_OFFSET;
import net.runelite.api.MenuEntry;
import net.runelite.api.NPC;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.GraphicsObjectCreated;
@@ -105,18 +104,12 @@ public class NpcIndicatorsPlugin extends Plugin
@Inject
private NpcMinimapOverlay npcMinimapOverlay;
@Inject
private NpcIndicatorsInput inputListener;
@Inject
private KeyManager keyManager;
@Inject
private ClientThread clientThread;
@Setter(AccessLevel.PACKAGE)
private boolean hotKeyPressed = false;
/**
* NPCs to highlight
*/
@@ -191,7 +184,6 @@ public class NpcIndicatorsPlugin extends Plugin
{
overlayManager.add(npcSceneOverlay);
overlayManager.add(npcMinimapOverlay);
keyManager.registerKeyListener(inputListener);
highlights = getHighlights();
clientThread.invoke(() ->
{
@@ -212,7 +204,6 @@ public class NpcIndicatorsPlugin extends Plugin
teleportGraphicsObjectSpawnedThisTick.clear();
npcTags.clear();
highlightedNpcs.clear();
keyManager.unregisterKeyListener(inputListener);
}
@Subscribe
@@ -241,15 +232,6 @@ public class NpcIndicatorsPlugin extends Plugin
rebuildAllNpcs();
}
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!focusChanged.isFocused())
{
hotKeyPressed = false;
}
}
@Subscribe
public void onMenuEntryAdded(MenuEntryAdded event)
{
@@ -286,7 +268,7 @@ public class NpcIndicatorsPlugin extends Plugin
client.setMenuEntries(menuEntries);
}
}
else if (hotKeyPressed && menuAction == MenuAction.EXAMINE_NPC)
else if (menuAction == MenuAction.EXAMINE_NPC && client.isKeyPressed(KeyCode.KC_SHIFT))
{
// Add tag option
MenuEntry[] menuEntries = client.getMenuEntries();

View File

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

View File

@@ -27,7 +27,6 @@ package net.runelite.client.plugins.party;
import com.google.inject.Binder;
import com.google.inject.Provides;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Collections;
@@ -42,6 +41,7 @@ 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.Skill;
@@ -49,7 +49,6 @@ 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.GameTick;
import net.runelite.api.events.MenuOptionClicked;
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.events.OverlayMenuClicked;
import net.runelite.client.events.PartyChanged;
import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
@@ -86,7 +84,7 @@ import net.runelite.http.api.ws.messages.party.UserSync;
name = "Party",
description = "Shows useful information about current party"
)
public class PartyPlugin extends Plugin implements KeyListener
public class PartyPlugin extends Plugin
{
@Inject
private Client client;
@@ -135,7 +133,7 @@ public class PartyPlugin extends Plugin implements KeyListener
private final List<PartyTilePingData> pendingTilePings = Collections.synchronizedList(new ArrayList<>());
private int lastHp, lastPray;
private boolean hotkeyDown, doSync;
private boolean doSync;
private boolean sendAlert;
@Override
@@ -152,7 +150,6 @@ public class PartyPlugin extends Plugin implements KeyListener
wsClient.registerMessage(SkillUpdate.class);
wsClient.registerMessage(TilePing.class);
wsClient.registerMessage(LocationUpdate.class);
keyManager.registerKeyListener(this);
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(TilePing.class);
wsClient.unregisterMessage(LocationUpdate.class);
keyManager.unregisterKeyListener(this);
hotkeyDown = false;
doSync = false;
sendAlert = false;
}
@@ -208,7 +203,7 @@ public class PartyPlugin extends Plugin implements KeyListener
@Subscribe
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;
}
@@ -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()
{
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 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.events.ClientTick;
@@ -224,7 +225,7 @@ public class MenuEntrySwapperPluginTest
public void testTeleport()
{
when(config.swapTeleportSpell()).thenReturn(true);
menuEntrySwapperPlugin.setShiftModifier(true);
when(client.isKeyPressed(KeyCode.KC_SHIFT)).thenReturn(true);
// Cast -> Grand Exchange
entries = new MenuEntry[]{
@@ -307,7 +308,7 @@ public class MenuEntrySwapperPluginTest
public void testShiftWithdraw()
{
when(config.bankDepositShiftClick()).thenReturn(ShiftDepositMode.EXTRA_OP);
menuEntrySwapperPlugin.setShiftModifier(true);
when(client.isKeyPressed(KeyCode.KC_SHIFT)).thenReturn(true);
entries = new MenuEntry[]{
menu("Cancel", "", MenuAction.CANCEL),
@@ -338,7 +339,7 @@ public class MenuEntrySwapperPluginTest
public void testShiftDeposit()
{
when(config.bankDepositShiftClick()).thenReturn(ShiftDepositMode.DEPOSIT_ALL);
menuEntrySwapperPlugin.setShiftModifier(true);
when(client.isKeyPressed(KeyCode.KC_SHIFT)).thenReturn(true);
entries = new MenuEntry[]{
menu("Cancel", "", MenuAction.CANCEL),