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.ChatMessage;
|
||||||
import net.runelite.api.events.FocusChanged;
|
import net.runelite.api.events.FocusChanged;
|
||||||
import net.runelite.api.events.GameTick;
|
import net.runelite.api.events.GameTick;
|
||||||
|
import net.runelite.api.events.MenuOpened;
|
||||||
import net.runelite.api.events.MenuOptionClicked;
|
import net.runelite.api.events.MenuOptionClicked;
|
||||||
import net.runelite.api.events.PostItemComposition;
|
import net.runelite.api.events.PostItemComposition;
|
||||||
import net.runelite.api.events.ProjectileMoved;
|
import net.runelite.api.events.ProjectileMoved;
|
||||||
@@ -440,4 +441,11 @@ public class Hooks
|
|||||||
event.setItemComposition(itemComposition);
|
event.setItemComposition(itemComposition);
|
||||||
eventBus.post(event);
|
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.GameStateChanged;
|
||||||
import net.runelite.api.events.GrandExchangeOfferChanged;
|
import net.runelite.api.events.GrandExchangeOfferChanged;
|
||||||
import net.runelite.api.events.MapRegionChanged;
|
import net.runelite.api.events.MapRegionChanged;
|
||||||
import net.runelite.api.events.MenuOpened;
|
|
||||||
import net.runelite.api.events.NpcDespawned;
|
import net.runelite.api.events.NpcDespawned;
|
||||||
import net.runelite.api.events.NpcSpawned;
|
import net.runelite.api.events.NpcSpawned;
|
||||||
import net.runelite.api.events.PlayerDespawned;
|
import net.runelite.api.events.PlayerDespawned;
|
||||||
@@ -766,20 +765,6 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
eventBus.post(new ClanChanged(client.getClanMemberManager() != null));
|
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
|
@Inject
|
||||||
@Override
|
@Override
|
||||||
public boolean hasHintArrow()
|
public boolean hasHintArrow()
|
||||||
|
|||||||
Reference in New Issue
Block a user