diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 388d7e7b1c..c2400a5828 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -570,6 +570,11 @@ public interface Client extends GameShell */ MenuEntry[] getMenuEntries(); + /** + * @return amount of menu entries the client has (same as client.getMenuEntries().size()) + */ + int getMenuOptionCount(); + /** * Sets the array of open menu entries. *
diff --git a/runelite-api/src/main/java/net/runelite/api/GraphicID.java b/runelite-api/src/main/java/net/runelite/api/GraphicID.java index 79ffd07145..5a6f7054bb 100644 --- a/runelite-api/src/main/java/net/runelite/api/GraphicID.java +++ b/runelite-api/src/main/java/net/runelite/api/GraphicID.java @@ -55,4 +55,5 @@ public class GraphicID public static final int OLM_HEAL = 1363; public static final int OLM_CRYSTAL = 1447; public static final int XERIC_TELEPORT = 1612; + public static final int HYDRA_LIGHTNING = 1666; } diff --git a/runelite-api/src/main/java/net/runelite/api/MenuEntry.java b/runelite-api/src/main/java/net/runelite/api/MenuEntry.java index 6d9cc751f4..cda2997a21 100644 --- a/runelite-api/src/main/java/net/runelite/api/MenuEntry.java +++ b/runelite-api/src/main/java/net/runelite/api/MenuEntry.java @@ -24,12 +24,16 @@ */ package net.runelite.api; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.RequiredArgsConstructor; /** * A menu entry in a right-click menu. */ @Data +@AllArgsConstructor +@RequiredArgsConstructor public class MenuEntry { /** diff --git a/runelite-api/src/main/java/net/runelite/api/events/MenuEntryAdded.java b/runelite-api/src/main/java/net/runelite/api/events/MenuEntryAdded.java index e6aa08b600..37f73ec792 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/MenuEntryAdded.java +++ b/runelite-api/src/main/java/net/runelite/api/events/MenuEntryAdded.java @@ -26,6 +26,7 @@ package net.runelite.api.events; import lombok.AllArgsConstructor; import lombok.Data; +import net.runelite.api.MenuEntry; /** * An event when a new entry is added to a right-click menu. @@ -35,30 +36,42 @@ import lombok.Data; public class MenuEntryAdded { /** - * The option text added to the menu (ie. "Walk here", "Use"). + * The MenuEntry object that was actually added */ - private final String option; - /** - * The target of the action (ie. Item or Actor name). - *
- * If the option does not apply to any target, this field
- * will be set to empty string.
- */
- private final String target;
- /**
- * The action type that will be triggered.
- */
- private final int type;
- /**
- * An identifier value for the target of the action
- */
- private final int identifier;
- /**
- * An additional parameter for the action.
- */
- private final int actionParam0;
- /**
- * A second additional parameter for the action.
- */
- private final int actionParam1;
+ private final MenuEntry menuEntry;
+
+ public String getOption()
+ {
+ return menuEntry.getOption();
+ }
+
+ public String getTarget()
+ {
+ return menuEntry.getTarget();
+ }
+
+ public int getType()
+ {
+ return menuEntry.getType();
+ }
+
+ public int getIdentifier()
+ {
+ return menuEntry.getIdentifier();
+ }
+
+ public int getActionParam0()
+ {
+ return menuEntry.getParam0();
+ }
+
+ public int getActionParam1()
+ {
+ return menuEntry.getParam1();
+ }
+
+ public boolean isForceLeftClick()
+ {
+ return menuEntry.isForceLeftClick();
+ }
}
diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java
index a221d1f36c..5a461908f0 100644
--- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java
+++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java
@@ -173,22 +173,14 @@ public class MenuManager
final MenuEntry newestEntry = menuEntries[menuEntries.length - 1];
- boolean isPrio = false;
for (ComparableEntry p : priorityEntries)
{
if (p.matches(newestEntry))
{
- isPrio = true;
- break;
+ currentPriorityEntries.add(newestEntry);
}
}
- // If the last entry was a priority entry, keep track of it
- if (isPrio)
- {
- currentPriorityEntries.add(newestEntry);
- }
-
// Make a copy of the menu entries, cause you can't remove from Arrays.asList()
List