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;
@Data
public class WidgetOpened
public class WidgetLoaded
{
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.GameStateChanged;
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 static net.runelite.api.widgets.WidgetConfig.DRAG;
import static net.runelite.api.widgets.WidgetConfig.DRAG_ON;
@@ -259,7 +259,7 @@ public class ReorderPrayersPlugin extends Plugin
}
@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)
{

View File

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