From a06974e78b2fbf4a84edfa7a23fcb7b70616bb7d Mon Sep 17 00:00:00 2001 From: JHPinto Date: Tue, 3 Jul 2018 00:58:02 +0100 Subject: [PATCH] slayer plugin: move item count overlay checks to render --- .../client/plugins/slayer/SlayerOverlay.java | 26 +++++++++++++++-- .../client/plugins/slayer/SlayerPlugin.java | 28 ------------------- 2 files changed, 23 insertions(+), 31 deletions(-) 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 d502615186..4690a70ecc 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 @@ -24,27 +24,36 @@ */ package net.runelite.client.plugins.slayer; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; +import static com.google.common.collect.ObjectArrays.concat; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; -import java.util.Collection; import java.util.Set; import javax.inject.Inject; import net.runelite.api.ItemID; +import net.runelite.api.Query; +import net.runelite.api.queries.EquipmentItemQuery; +import net.runelite.api.queries.InventoryWidgetItemQuery; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; 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 SlayerConfig config; private final SlayerPlugin plugin; + @Inject + private QueryRunner queryRunner; + private final Set slayerJewelry = ImmutableSet.of( ItemID.SLAYER_RING_1, ItemID.SLAYER_RING_2, @@ -76,6 +85,18 @@ class SlayerOverlay extends Overlay ItemID.EXPEDITIOUS_BRACELET ); + private ImmutableList checkInventory() + { + Query inventoryQuery = new InventoryWidgetItemQuery(); + WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery); + + Query equipmentQuery = new EquipmentItemQuery().slotEquals(WidgetInfo.EQUIPMENT_HELMET, WidgetInfo.EQUIPMENT_RING, WidgetInfo.EQUIPMENT_GLOVES); + WidgetItem[] equipmentWidgetItems = queryRunner.runQuery(equipmentQuery); + + WidgetItem[] items = concat(inventoryWidgetItems, equipmentWidgetItems, WidgetItem.class); + return ImmutableList.copyOf(items); + } + @Inject private SlayerOverlay(SlayerPlugin plugin, SlayerConfig config) { @@ -104,8 +125,7 @@ class SlayerOverlay extends Overlay graphics.setFont(FontManager.getRunescapeSmallFont()); - Collection items = plugin.getSlayerItems(); - for (WidgetItem item : items) + for (WidgetItem item : checkInventory()) { int itemId = item.getId(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 8949778242..031b25ba2c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -25,8 +25,6 @@ */ package net.runelite.client.plugins.slayer; -import com.google.common.collect.ImmutableList; -import static com.google.common.collect.ObjectArrays.concat; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; import java.awt.image.BufferedImage; @@ -34,7 +32,6 @@ import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.regex.Matcher; @@ -51,18 +48,14 @@ import net.runelite.api.GameState; import net.runelite.api.ItemID; import net.runelite.api.NPC; import net.runelite.api.NPCComposition; -import net.runelite.api.Query; import static net.runelite.api.Skill.SLAYER; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; -import net.runelite.api.queries.EquipmentItemQuery; -import net.runelite.api.queries.InventoryWidgetItemQuery; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.api.widgets.WidgetItem; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; @@ -71,7 +64,6 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; -import net.runelite.client.util.QueryRunner; import net.runelite.client.util.Text; @PluginDescriptor( @@ -130,9 +122,6 @@ public class SlayerPlugin extends Plugin @Inject private ClientThread clientThread; - @Inject - private QueryRunner queryRunner; - @Inject private TargetClickboxOverlay targetClickboxOverlay; @@ -142,9 +131,6 @@ public class SlayerPlugin extends Plugin @Getter(AccessLevel.PACKAGE) private List highlightedTargets = new ArrayList<>(); - @Getter(AccessLevel.PACKAGE) - private Collection slayerItems = Collections.emptyList(); - @Getter(AccessLevel.PACKAGE) @Setter(AccessLevel.PACKAGE) private int amount; @@ -247,8 +233,6 @@ public class SlayerPlugin extends Plugin @Subscribe public void onGameTick(GameTick tick) { - checkInventories(); - Widget NPCDialog = client.getWidget(WidgetInfo.DIALOG_NPC_TEXT); if (NPCDialog != null) { @@ -319,18 +303,6 @@ public class SlayerPlugin extends Plugin } } - private void checkInventories() - { - Query inventoryQuery = new InventoryWidgetItemQuery(); - WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery); - - Query equipmentQuery = new EquipmentItemQuery().slotEquals(WidgetInfo.EQUIPMENT_HELMET, WidgetInfo.EQUIPMENT_RING, WidgetInfo.EQUIPMENT_GLOVES); - WidgetItem[] equipmentWidgetItems = queryRunner.runQuery(equipmentQuery); - - WidgetItem[] items = concat(inventoryWidgetItems, equipmentWidgetItems, WidgetItem.class); - slayerItems = ImmutableList.copyOf(items); - } - @Subscribe public void onChatMessage(ChatMessage event) {