Change menuOpened from FieldHook to Hook
This fixes an issue which occurs when the MenuEntries array is modified after the client has calculated the menu's bounds and position. Hooking to `openMenu` will allow us to modify the MenuEntries array before the menu's bounds and its position is calculated.
This commit is contained in:
@@ -54,6 +54,7 @@ import net.runelite.api.events.ActorDeath;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.FocusChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.MenuOpened;
|
||||
import net.runelite.api.events.MenuOptionClicked;
|
||||
import net.runelite.api.events.PostItemComposition;
|
||||
import net.runelite.api.events.ProjectileMoved;
|
||||
@@ -440,4 +441,11 @@ public class Hooks
|
||||
event.setItemComposition(itemComposition);
|
||||
eventBus.post(event);
|
||||
}
|
||||
|
||||
public static void menuOpened(Client client, int var1, int var2)
|
||||
{
|
||||
MenuOpened event = new MenuOpened();
|
||||
event.setMenuEntries(client.getMenuEntries());
|
||||
eventBus.post(event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,6 @@ import net.runelite.api.events.ExperienceChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GrandExchangeOfferChanged;
|
||||
import net.runelite.api.events.MapRegionChanged;
|
||||
import net.runelite.api.events.MenuOpened;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.api.events.PlayerDespawned;
|
||||
@@ -766,20 +765,6 @@ public abstract class RSClientMixin implements RSClient
|
||||
eventBus.post(new ClanChanged(client.getClanMemberManager() != null));
|
||||
}
|
||||
|
||||
@FieldHook("isMenuOpen")
|
||||
@Inject
|
||||
public static void menuOpened(int opened)
|
||||
{
|
||||
if (!client.isMenuOpen())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
MenuOpened event = new MenuOpened();
|
||||
event.setMenuEntries(client.getMenuEntries());
|
||||
eventBus.post(event);
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public boolean hasHintArrow()
|
||||
|
||||
Reference in New Issue
Block a user