diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java index 3e8e64acd2..afd3e9055d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java @@ -34,6 +34,7 @@ import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.ChatMessageType; +import net.runelite.api.Client; import net.runelite.api.DecorativeObject; import net.runelite.api.GameState; import net.runelite.api.InventoryID; @@ -48,8 +49,11 @@ import net.runelite.api.events.DecorativeObjectDespawned; import net.runelite.api.events.DecorativeObjectSpawned; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; +import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.queries.InventoryItemQuery; import net.runelite.api.queries.NPCQuery; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -62,6 +66,7 @@ import net.runelite.client.util.QueryRunner; public class RunecraftPlugin extends Plugin { private static Pattern bindNeckString = Pattern.compile("You have ([0-9]+) charges left before your Binding necklace disintegrates."); + private static final int DESTROY_ITEM_WIDGET_ID = WidgetInfo.DESTROY_ITEM_YES.getId(); @Getter(AccessLevel.PACKAGE) private final Set abyssObjects = new HashSet<>(); @@ -72,6 +77,9 @@ public class RunecraftPlugin extends Plugin @Getter(AccessLevel.PACKAGE) private NPC darkMage; + @Inject + private Client client; + @Inject private OverlayManager overlayManager; @@ -158,6 +166,23 @@ public class RunecraftPlugin extends Plugin } } + @Subscribe + public void onMenuOptionClicked(MenuOptionClicked event) + { + if (event.getWidgetId() != DESTROY_ITEM_WIDGET_ID) + { + return; + } + + Widget widgetDestroyItemName = client.getWidget(WidgetInfo.DESTROY_ITEM_NAME); + if (widgetDestroyItemName == null || !widgetDestroyItemName.getText().equals("Binding necklace")) + { + return; + } + + bindNeckOverlay.bindingCharges = 16; + } + @Subscribe public void onDecorativeObjectSpawn(DecorativeObjectSpawned event) {