Merge pull request #1178 from DevDennis/fix-widget-loaded-event

Fix widget loaded event for prayer reordering
This commit is contained in:
Adam
2018-03-29 19:15:39 -04:00
committed by GitHub
3 changed files with 14 additions and 16 deletions

View File

@@ -27,7 +27,7 @@ package net.runelite.api.events;
import lombok.Data; import lombok.Data;
@Data @Data
public class WidgetOpened public class WidgetLoaded
{ {
private int groupId; private int groupId;
} }

View File

@@ -43,7 +43,7 @@ import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.DraggingWidgetChanged; import net.runelite.api.events.DraggingWidgetChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.events.WidgetMenuOptionClicked;
import net.runelite.api.events.WidgetOpened; import net.runelite.api.events.WidgetLoaded;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import static net.runelite.api.widgets.WidgetConfig.DRAG; import static net.runelite.api.widgets.WidgetConfig.DRAG;
import static net.runelite.api.widgets.WidgetConfig.DRAG_ON; import static net.runelite.api.widgets.WidgetConfig.DRAG_ON;
@@ -259,7 +259,7 @@ public class ReorderPrayersPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onWidgetOpened(WidgetOpened event) public void onWidgetLoaded(WidgetLoaded event)
{ {
if (event.getGroupId() == WidgetID.PRAYER_GROUP_ID || event.getGroupId() == WidgetID.QUICK_PRAYERS_GROUP_ID) if (event.getGroupId() == WidgetID.PRAYER_GROUP_ID || event.getGroupId() == WidgetID.QUICK_PRAYERS_GROUP_ID)
{ {

View File

@@ -64,7 +64,7 @@ import net.runelite.api.events.MapRegionChanged;
import net.runelite.api.events.PlayerMenuOptionsChanged; import net.runelite.api.events.PlayerMenuOptionsChanged;
import net.runelite.api.events.ResizeableChanged; import net.runelite.api.events.ResizeableChanged;
import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.VarbitChanged;
import net.runelite.api.events.WidgetOpened; import net.runelite.api.events.WidgetLoaded;
import net.runelite.api.mixins.Copy; import net.runelite.api.mixins.Copy;
import net.runelite.api.mixins.FieldHook; import net.runelite.api.mixins.FieldHook;
import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Inject;
@@ -507,28 +507,26 @@ public abstract class RSClientMixin implements RSClient
client.setMenuEntries(entries); client.setMenuEntries(entries);
} }
@Copy("loadWidget") @Copy("runWidgetOnLoadListener")
public static boolean rs$loadWidget(int widgetId) public static void rs$runWidgetOnLoadListener(int groupId)
{ {
throw new RuntimeException(); throw new RuntimeException();
} }
@Replace("loadWidget") @Replace("runWidgetOnLoadListener")
public static boolean rl$loadWidget(int widgetId) public static void rl$runWidgetOnLoadListener(int groupId)
{ {
rs$runWidgetOnLoadListener(groupId);
RSWidget[][] widgets = client.getWidgets(); RSWidget[][] widgets = client.getWidgets();
boolean loadedBefore = widgets != null && widgets[widgetId] != null; boolean loaded = widgets != null && widgets[groupId] != null;
boolean loaded = rs$loadWidget(widgetId); if (loaded)
if (!loadedBefore && loaded)
{ {
WidgetOpened event = new WidgetOpened(); WidgetLoaded event = new WidgetLoaded();
event.setGroupId(widgetId); event.setGroupId(groupId);
eventBus.post(event); eventBus.post(event);
} }
return loaded;
} }
@FieldHook("skillExperiences") @FieldHook("skillExperiences")