From 69b88fe3e3ad93d3787d8577d6e4b6d3f3e405da Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sun, 24 Dec 2017 03:22:07 +0100 Subject: [PATCH] Extract runQuery to QueryRunner service Extract runQuery method from runelite to separate Guice service. Signed-off-by: Tomas Slusny --- .../java/net/runelite/client/RuneLite.java | 4 -- .../net/runelite/client/RuneliteModule.java | 2 + .../plugins/fightcave/FightCavePlugin.java | 9 ++-- .../plugins/fishing/FishingSpotOverlay.java | 14 +++--- .../client/plugins/hunter/HunterPlugin.java | 12 +++--- .../plugins/implings/ImplingsOverlay.java | 14 +++--- .../jewellerycount/JewelleryCountOverlay.java | 12 +++--- .../pestcontrol/PestControlOverlay.java | 12 +++--- .../plugins/runecraft/BindNeckOverlay.java | 12 +++--- .../plugins/runecraft/RunecraftOverlay.java | 12 +++--- .../plugins/runepouch/RunepouchOverlay.java | 12 +++--- .../client/plugins/slayer/SlayerOverlay.java | 12 +++--- .../volcanicmine/VolcanicMinePlugin.java | 6 ++- .../client/plugins/zulrah/ZulrahPlugin.java | 6 +-- .../net/runelite/client/util/QueryRunner.java | 43 +++++++++++++++++++ 15 files changed, 109 insertions(+), 73 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/util/QueryRunner.java diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index d84fe336c5..8febe52782 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -287,8 +287,4 @@ public class RuneLite return trayIcon; } - public T[] runQuery(Query query) - { - return (T[]) query.result(client); - } } diff --git a/runelite-client/src/main/java/net/runelite/client/RuneliteModule.java b/runelite-client/src/main/java/net/runelite/client/RuneliteModule.java index 794db3b0e7..405c07d172 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneliteModule.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneliteModule.java @@ -43,6 +43,7 @@ import net.runelite.client.plugins.PluginManager; import net.runelite.client.task.Scheduler; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; +import net.runelite.client.util.QueryRunner; @Slf4j public class RuneliteModule extends AbstractModule @@ -51,6 +52,7 @@ public class RuneliteModule extends AbstractModule protected void configure() { bind(ScheduledExecutorService.class).toInstance(Executors.newSingleThreadScheduledExecutor()); + bind(QueryRunner.class); bind(MenuManager.class); bind(ChatMessageManager.class); bind(ItemManager.class); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java index fa88348068..c0b82d8a3d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java @@ -25,22 +25,21 @@ package net.runelite.client.plugins.fightcave; import com.google.inject.Binder; +import com.google.inject.Provides; import java.time.temporal.ChronoUnit; import javax.annotation.Nullable; import javax.inject.Inject; - -import com.google.inject.Provides; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.Query; import net.runelite.api.queries.NPCQuery; -import net.runelite.client.RuneLite; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.util.QueryRunner; @PluginDescriptor( name = "Fight cave plugin" @@ -52,7 +51,7 @@ public class FightCavePlugin extends Plugin Client client; @Inject - RuneLite runelite; + QueryRunner queryRunner; @Inject FightCaveConfig config; @@ -112,7 +111,7 @@ public class FightCavePlugin extends Plugin private NPC findJad() { Query query = new NPCQuery().nameContains("TzTok-Jad"); - NPC[] result = runelite.runQuery(query); + NPC[] result = queryRunner.runQuery(query); return result.length >= 1 ? result[0] : null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java index 14009ba3b5..9b02837917 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java @@ -32,34 +32,30 @@ import java.awt.Point; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; import javax.inject.Inject; -import net.runelite.api.Client; import net.runelite.api.NPC; import net.runelite.api.queries.NPCQuery; -import net.runelite.client.RuneLite; import net.runelite.client.game.ItemManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; +import net.runelite.client.util.QueryRunner; class FishingSpotOverlay extends Overlay { private final List ids = new ArrayList<>(); - private final RuneLite runelite; - private final Client client; + private final QueryRunner queryRunner; private final FishingConfig config; @Inject ItemManager itemManager; @Inject - public FishingSpotOverlay(RuneLite runelite, @Nullable Client client, FishingConfig config) + public FishingSpotOverlay(QueryRunner queryRunner, FishingConfig config) { setPosition(OverlayPosition.DYNAMIC); - this.runelite = runelite; - this.client = client; + this.queryRunner = queryRunner; this.config = config; } @@ -73,7 +69,7 @@ class FishingSpotOverlay extends Overlay NPCQuery query = new NPCQuery() .idEquals(Ints.toArray(ids)); - NPC[] npcs = runelite.runQuery(query); + NPC[] npcs = queryRunner.runQuery(query); for (NPC npc : npcs) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java index 867d7b8547..2164276695 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java @@ -31,9 +31,9 @@ import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.Collection; -import java.util.List; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Set; import javax.inject.Inject; import lombok.Getter; @@ -47,7 +47,6 @@ import net.runelite.api.Player; import net.runelite.api.Point; import net.runelite.api.queries.GameObjectQuery; import net.runelite.api.queries.PlayerQuery; -import net.runelite.client.RuneLite; import net.runelite.client.config.ConfigManager; import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.GameObjectsChanged; @@ -56,6 +55,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.util.QueryRunner; @Slf4j @PluginDescriptor( @@ -67,7 +67,7 @@ public class HunterPlugin extends Plugin private Client client; @Inject - private RuneLite runelite; + private QueryRunner queryRunner; @Inject private HunterConfig config; @@ -139,7 +139,7 @@ public class HunterPlugin extends Plugin case ObjectID.NET_TRAP_9002: //Net trap placed at black sallys //Look for players that are on the same tile PlayerQuery playerQuery = new PlayerQuery().atLocalLocation(gameObject.getLocalLocation()); - List possiblePlayers = Arrays.asList(runelite.runQuery(playerQuery)); + List possiblePlayers = Arrays.asList(queryRunner.runQuery(playerQuery)); /* If the player is on that tile, and it has the correct animation, assume he is the one that placed the trap * Special case: if you herb+tar, then move and place the trap, it does not detect laying the trap. It does work @@ -294,7 +294,7 @@ public class HunterPlugin extends Plugin GameObjectQuery goQuery = new GameObjectQuery() .atWorldLocation(trap.getGameObject().getWorldLocation()); //This is for placeable traps like box traps. There are no gameobjects on that location if the trap collapsed - if (runelite.runQuery(goQuery).length == 0) + if (queryRunner.runQuery(goQuery).length == 0) { it.remove(); log.debug("Trap removed from personal trap collection, {} left", traps.size()); @@ -303,7 +303,7 @@ public class HunterPlugin extends Plugin { goQuery = goQuery .idEquals(ObjectID.BOULDER_19215); //Deadfalls are the only ones (that i can test) that have this behaviour. I think maniacal monkeys have this too. - if (runelite.runQuery(goQuery).length != 0) + if (queryRunner.runQuery(goQuery).length != 0) { it.remove(); log.debug("Special trap removed from personal trap collection, {} left", traps.size()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java index 7135b1a8da..ab8347bdc9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java @@ -32,17 +32,15 @@ import java.awt.Graphics2D; import java.awt.Polygon; import java.util.LinkedList; import java.util.List; -import javax.annotation.Nullable; import javax.inject.Inject; import net.runelite.api.Actor; -import net.runelite.api.Client; import net.runelite.api.NPC; import net.runelite.api.NpcID; import net.runelite.api.Point; import net.runelite.api.queries.NPCQuery; -import net.runelite.client.RuneLite; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; +import net.runelite.client.util.QueryRunner; /** * @@ -55,17 +53,15 @@ public class ImplingsOverlay extends Overlay private static final int STATIC_SPAWN = 1618; private static final int DYNAMIC_SPAWN = 1633; - private final RuneLite runelite; - private final Client client; + private final QueryRunner queryRunner; private final ImplingsConfig config; private final List ids = new LinkedList<>(); @Inject - public ImplingsOverlay(RuneLite runelite, @Nullable Client client, ImplingsConfig config) + public ImplingsOverlay(QueryRunner queryRunner, ImplingsConfig config) { setPosition(OverlayPosition.DYNAMIC); - this.runelite = runelite; - this.client = client; + this.queryRunner = queryRunner; this.config = config; } @@ -73,7 +69,7 @@ public class ImplingsOverlay extends Overlay public Dimension render(Graphics2D graphics, java.awt.Point parent) { NPCQuery implingQuery = new NPCQuery().idEquals(Ints.toArray(ids)); - NPC[] implings = runelite.runQuery(implingQuery); + NPC[] implings = queryRunner.runQuery(implingQuery); for (NPC imp : implings) { //Spawns have the name "null", so they get changed to "Spawn" diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java index d16a971aef..19ba8b1114 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java @@ -37,22 +37,22 @@ import net.runelite.api.queries.EquipmentItemQuery; import net.runelite.api.queries.InventoryItemQuery; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; -import net.runelite.client.RuneLite; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.TextComponent; +import net.runelite.client.util.QueryRunner; class JewelleryCountOverlay extends Overlay { - private final RuneLite runelite; + private final QueryRunner queryRunner; private final JewelleryCountConfig config; @Inject - JewelleryCountOverlay(RuneLite runelite, JewelleryCountConfig config) + JewelleryCountOverlay(QueryRunner queryRunner, JewelleryCountConfig config) { setPosition(OverlayPosition.DYNAMIC); - this.runelite = runelite; + this.queryRunner = queryRunner; this.config = config; this.setDrawOverBankScreen(true); } @@ -89,14 +89,14 @@ class JewelleryCountOverlay extends Overlay private Collection getJewelleryWidgetItems() { Query inventoryQuery = new InventoryItemQuery(); - WidgetItem[] inventoryWidgetItems = runelite.runQuery(inventoryQuery); + WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery); Query equipmentQuery = new EquipmentItemQuery().slotEquals( WidgetInfo.EQUIPMENT_AMULET, WidgetInfo.EQUIPMENT_RING, WidgetInfo.EQUIPMENT_GLOVES ); - WidgetItem[] equipmentWidgetItems = runelite.runQuery(equipmentQuery); + WidgetItem[] equipmentWidgetItems = queryRunner.runQuery(equipmentQuery); Collection jewellery = new ArrayList<>(); jewellery.addAll(Arrays.asList(inventoryWidgetItems)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java index 956d001c37..a6ca3c955f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java @@ -45,15 +45,15 @@ import net.runelite.api.Query; import net.runelite.api.queries.NPCQuery; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.RuneLite; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; +import net.runelite.client.util.QueryRunner; @Slf4j public class PestControlOverlay extends Overlay { - private final RuneLite runelite; + private final QueryRunner queryRunner; private final Client client; private final PestControlPlugin plugin; @@ -62,11 +62,11 @@ public class PestControlOverlay extends Overlay private Game game; @Inject - public PestControlOverlay(RuneLite runelite, PestControlPlugin plugin) + public PestControlOverlay(QueryRunner queryRunner, Client client, PestControlPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); - this.runelite = runelite; - this.client = runelite.getClient(); + this.queryRunner = queryRunner; + this.client = client; this.plugin = plugin; } @@ -106,7 +106,7 @@ public class PestControlOverlay extends Overlay private void renderSpinners(Graphics2D graphics) { Query query = new NPCQuery().nameEquals("Spinner"); - NPC[] result = runelite.runQuery(query); + NPC[] result = queryRunner.runQuery(query); Arrays.stream(result).forEach(npc -> OverlayUtil.renderActorOverlay(graphics, npc, npc.getName(), Color.CYAN)); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java index 69d098877a..b568e7cc4e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/BindNeckOverlay.java @@ -40,23 +40,23 @@ import net.runelite.api.queries.EquipmentItemQuery; import net.runelite.api.queries.InventoryItemQuery; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; -import net.runelite.client.RuneLite; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.TextComponent; +import net.runelite.client.util.QueryRunner; public class BindNeckOverlay extends Overlay { - private final RuneLite runelite; + private final QueryRunner queryRunner; private final RunecraftConfig config; int bindingCharges; @Inject - BindNeckOverlay(RuneLite runelite, RunecraftConfig config) + BindNeckOverlay(QueryRunner queryRunner, RunecraftConfig config) { setPosition(OverlayPosition.DYNAMIC); - this.runelite = runelite; + this.queryRunner = queryRunner; this.config = config; this.setDrawOverBankScreen(true); } @@ -91,12 +91,12 @@ public class BindNeckOverlay extends Overlay { Query inventoryQuery = new InventoryItemQuery() .idEquals(BINDING_NECKLACE); - WidgetItem[] inventoryWidgetItems = runelite.runQuery(inventoryQuery); + WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery); Query equipmentQuery = new EquipmentItemQuery() .slotEquals(WidgetInfo.EQUIPMENT_AMULET) .idEquals(BINDING_NECKLACE); - WidgetItem[] equipmentWidgetItems = runelite.runQuery(equipmentQuery); + WidgetItem[] equipmentWidgetItems = queryRunner.runQuery(equipmentQuery); Collection necklaces = new ArrayList<>(); necklaces.addAll(Arrays.asList(inventoryWidgetItems)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java index cbfa054c1d..8db6417ef0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java @@ -35,11 +35,11 @@ import net.runelite.api.Query; import net.runelite.api.Varbits; import net.runelite.api.queries.InventoryItemQuery; import net.runelite.api.widgets.WidgetItem; -import net.runelite.client.RuneLite; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.TextComponent; +import net.runelite.client.util.QueryRunner; public class RunecraftOverlay extends Overlay { @@ -47,17 +47,17 @@ public class RunecraftOverlay extends Overlay private static final int LARGE_POUCH_DAMAGED = ItemID.LARGE_POUCH_5513; private static final int GIANT_POUCH_DAMAGED = ItemID.GIANT_POUCH_5515; - private final RuneLite runelite; + private final QueryRunner queryRunner; private final Client client; private final RunecraftConfig config; @Inject - RunecraftOverlay(RuneLite runelite, RunecraftConfig config) + RunecraftOverlay(QueryRunner queryRunner, Client client, RunecraftConfig config) { setPosition(OverlayPosition.DYNAMIC); - this.runelite = runelite; - this.client = runelite.getClient(); + this.queryRunner = queryRunner; + this.client = client; this.config = config; this.setDrawOverBankScreen(true); } @@ -71,7 +71,7 @@ public class RunecraftOverlay extends Overlay } Query query = new InventoryItemQuery(); - WidgetItem[] widgetItems = runelite.runQuery(query); + WidgetItem[] widgetItems = queryRunner.runQuery(query); graphics.setFont(FontManager.getRunescapeSmallFont()); for (WidgetItem item : widgetItems) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java index 39258cc50a..b01aa2cb3d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java @@ -36,13 +36,13 @@ import net.runelite.api.Query; import net.runelite.api.Varbits; import net.runelite.api.queries.InventoryItemQuery; import net.runelite.api.widgets.WidgetItem; -import net.runelite.client.RuneLite; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.TooltipManager; +import net.runelite.client.util.QueryRunner; public class RunepouchOverlay extends Overlay { @@ -57,18 +57,18 @@ public class RunepouchOverlay extends Overlay private final RuneImageCache runeImageCache = new RuneImageCache(); - private final RuneLite runelite; + private final QueryRunner queryRunner; private final Client client; private final RunepouchConfig config; private final TooltipManager tooltipManager; @Inject - RunepouchOverlay(RuneLite runelite, RunepouchConfig config, TooltipManager tooltipManager) + RunepouchOverlay(QueryRunner queryRunner, Client client, RunepouchConfig config, TooltipManager tooltipManager) { setPosition(OverlayPosition.DYNAMIC); this.tooltipManager = tooltipManager; - this.runelite = runelite; - this.client = runelite.getClient(); + this.queryRunner = queryRunner; + this.client = client; this.config = config; this.setDrawOverBankScreen(true); } @@ -82,7 +82,7 @@ public class RunepouchOverlay extends Overlay } Query query = new InventoryItemQuery().idEquals(ItemID.RUNE_POUCH); - WidgetItem[] items = runelite.runQuery(query); + WidgetItem[] items = queryRunner.runQuery(query); if (items.length == 0) { return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java index 1037fdd92f..4a52d38103 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java @@ -40,15 +40,15 @@ import net.runelite.api.queries.EquipmentItemQuery; import net.runelite.api.queries.InventoryItemQuery; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; -import net.runelite.client.RuneLite; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.TextComponent; +import net.runelite.client.util.QueryRunner; class SlayerOverlay extends Overlay { - private final RuneLite runelite; + private final QueryRunner queryRunner; private final SlayerConfig config; private final SlayerPlugin plugin; @@ -80,10 +80,10 @@ class SlayerOverlay extends Overlay ); @Inject - SlayerOverlay(RuneLite runelite, SlayerPlugin plugin, SlayerConfig config) + SlayerOverlay(QueryRunner queryRunner, SlayerPlugin plugin, SlayerConfig config) { setPosition(OverlayPosition.DYNAMIC); - this.runelite = runelite; + this.queryRunner = queryRunner; this.plugin = plugin; this.config = config; } @@ -132,10 +132,10 @@ class SlayerOverlay extends Overlay private Collection getSlayerWidgetItems() { Query inventoryQuery = new InventoryItemQuery(); - WidgetItem[] inventoryWidgetItems = runelite.runQuery(inventoryQuery); + WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery); Query equipmentQuery = new EquipmentItemQuery().slotEquals(WidgetInfo.EQUIPMENT_HELMET, WidgetInfo.EQUIPMENT_RING); - WidgetItem[] equipmentWidgetItems = runelite.runQuery(equipmentQuery); + WidgetItem[] equipmentWidgetItems = queryRunner.runQuery(equipmentQuery); WidgetItem[] items = concat(inventoryWidgetItems, equipmentWidgetItems, WidgetItem.class); return ImmutableList.copyOf(items); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMinePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMinePlugin.java index 8c7b10a403..40e7183165 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMinePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/volcanicmine/VolcanicMinePlugin.java @@ -64,6 +64,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.util.QueryRunner; @PluginDescriptor( name = "Volcanic mine helper" @@ -88,6 +89,9 @@ public class VolcanicMinePlugin extends Plugin @Inject RuneLite runeLite; + @Inject + QueryRunner queryRunner; + @Inject Notifier notifier; @@ -278,7 +282,7 @@ public class VolcanicMinePlugin extends Plugin Query query = new NPCQuery() .nameEquals(LAVA_BEAST) .isWithinArea(player.getLocalLocation(), LAVA_BEAST_ATTACK_RANGE); - NPC[] npcs = runeLite.runQuery(query); + NPC[] npcs = queryRunner.runQuery(query); return npcs.length > 0; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java index c374aa4772..31dea9c204 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java @@ -39,7 +39,6 @@ import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.Query; import net.runelite.api.queries.NPCQuery; -import net.runelite.client.RuneLite; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -55,6 +54,7 @@ import net.runelite.client.plugins.zulrah.patterns.ZulrahPatternD; import net.runelite.client.plugins.zulrah.phase.ZulrahPhase; import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.util.QueryRunner; @PluginDescriptor( name = "Zulrah plugin" @@ -63,7 +63,7 @@ import net.runelite.client.ui.overlay.Overlay; public class ZulrahPlugin extends Plugin { @Inject - RuneLite runelite; + QueryRunner queryRunner; @Inject @Nullable @@ -187,7 +187,7 @@ public class ZulrahPlugin extends Plugin private NPC findZulrah() { Query query = new NPCQuery().nameEquals("Zulrah"); - NPC[] result = runelite.runQuery(query); + NPC[] result = queryRunner.runQuery(query); return result.length == 1 ? result[0] : null; } diff --git a/runelite-client/src/main/java/net/runelite/client/util/QueryRunner.java b/runelite-client/src/main/java/net/runelite/client/util/QueryRunner.java new file mode 100644 index 0000000000..0f34fc5448 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/util/QueryRunner.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2017, Tomas Slusny + * 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.util; + +import javax.inject.Inject; +import javax.inject.Singleton; +import net.runelite.api.Client; +import net.runelite.api.Query; + +@Singleton +public class QueryRunner +{ + @Inject + private Client client; + + @SuppressWarnings("unchecked") + public T[] runQuery(Query query) + { + return (T[]) query.result(client); + } +} \ No newline at end of file