mixins: move widget open event to loadWidget
This commit is contained in:
@@ -29,7 +29,5 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class WidgetOpened
|
public class WidgetOpened
|
||||||
{
|
{
|
||||||
private int parentId;
|
|
||||||
private int groupId;
|
private int groupId;
|
||||||
private int autoClose;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ import net.runelite.api.mixins.Replace;
|
|||||||
import net.runelite.api.mixins.Shadow;
|
import net.runelite.api.mixins.Shadow;
|
||||||
import net.runelite.api.widgets.Widget;
|
import net.runelite.api.widgets.Widget;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
|
import static net.runelite.api.widgets.WidgetInfo.TO_CHILD;
|
||||||
|
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
|
||||||
import static net.runelite.client.callback.Hooks.eventBus;
|
import static net.runelite.client.callback.Hooks.eventBus;
|
||||||
import net.runelite.rs.api.RSClanMemberManager;
|
import net.runelite.rs.api.RSClanMemberManager;
|
||||||
import net.runelite.rs.api.RSClient;
|
import net.runelite.rs.api.RSClient;
|
||||||
@@ -507,25 +509,28 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
client.setMenuEntries(entries);
|
client.setMenuEntries(entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Copy("openWidget")
|
@Copy("loadWidget")
|
||||||
public static WidgetNode rs$openWidget(int parentId, int groupId, int autoClose)
|
public static boolean rs$loadWidget(int widgetId)
|
||||||
{
|
{
|
||||||
throw new RuntimeException();
|
throw new RuntimeException();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Replace("openWidget")
|
@Replace("loadWidget")
|
||||||
public static WidgetNode rl$openWidget(int parentId, int groupId, int autoClose)
|
public static boolean rl$loadWidget(int widgetId)
|
||||||
{
|
{
|
||||||
MenuEntry[] entries = client.getMenuEntries();
|
RSWidget[][] widgets = client.getWidgets();
|
||||||
WidgetNode widgetNode = rs$openWidget(parentId, groupId, autoClose);
|
boolean loadedBefore = widgets != null && widgets[widgetId] != null;
|
||||||
client.setMenuEntries(entries);
|
|
||||||
|
|
||||||
WidgetOpened event = new WidgetOpened();
|
boolean loaded = rs$loadWidget(widgetId);
|
||||||
event.setParentId(parentId);
|
|
||||||
event.setGroupId(groupId);
|
if (!loadedBefore && loaded)
|
||||||
event.setAutoClose(autoClose);
|
{
|
||||||
eventBus.post(event);
|
WidgetOpened event = new WidgetOpened();
|
||||||
return widgetNode;
|
event.setGroupId(widgetId);
|
||||||
|
eventBus.post(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
return loaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
@FieldHook("skillExperiences")
|
@FieldHook("skillExperiences")
|
||||||
|
|||||||
Reference in New Issue
Block a user