Fixed binding necklace charges not being reset when necklace is destroyed

This commit is contained in:
honeyhoney
2018-06-22 15:31:58 +01:00
committed by Adam
parent f2c2a2ce4a
commit ab9c3ba7c9

View File

@@ -34,6 +34,7 @@ import javax.inject.Inject;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.DecorativeObject; import net.runelite.api.DecorativeObject;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.InventoryID; 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.DecorativeObjectSpawned;
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.MenuOptionClicked;
import net.runelite.api.queries.InventoryItemQuery; import net.runelite.api.queries.InventoryItemQuery;
import net.runelite.api.queries.NPCQuery; 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.config.ConfigManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@@ -62,6 +66,7 @@ import net.runelite.client.util.QueryRunner;
public class RunecraftPlugin extends Plugin public class RunecraftPlugin extends Plugin
{ {
private static Pattern bindNeckString = Pattern.compile("You have ([0-9]+) charges left before your Binding necklace disintegrates."); 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) @Getter(AccessLevel.PACKAGE)
private final Set<DecorativeObject> abyssObjects = new HashSet<>(); private final Set<DecorativeObject> abyssObjects = new HashSet<>();
@@ -72,6 +77,9 @@ public class RunecraftPlugin extends Plugin
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
private NPC darkMage; private NPC darkMage;
@Inject
private Client client;
@Inject @Inject
private OverlayManager overlayManager; 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 @Subscribe
public void onDecorativeObjectSpawn(DecorativeObjectSpawned event) public void onDecorativeObjectSpawn(DecorativeObjectSpawned event)
{ {