rl-api, rl-client: add Client::getWidget(I)

This commit is contained in:
Max Weber
2020-12-04 09:06:42 -07:00
parent 7840bb2b18
commit 07819bd9a4
5 changed files with 15 additions and 9 deletions

View File

@@ -502,6 +502,16 @@ public interface Client extends GameEngine
@Nullable @Nullable
Widget getWidget(int groupId, int childId); Widget getWidget(int groupId, int childId);
/**
* Gets a widget by it's packed ID.
*
* <p>
* Note: Use {@link #getWidget(WidgetInfo)} or {@link #getWidget(int, int)} for
* a more readable version of this method.
*/
@Nullable
Widget getWidget(int packedID);
/** /**
* Gets an array containing the x-axis canvas positions * Gets an array containing the x-axis canvas positions
* of all widgets. * of all widgets.

View File

@@ -56,8 +56,6 @@ import net.runelite.api.widgets.JavaScriptCallback;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetID;
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 net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.config.Keybind; import net.runelite.client.config.Keybind;
@@ -226,7 +224,7 @@ public class BankPlugin extends Plugin
final int compId = intStack[intStackSize - 2]; final int compId = intStack[intStackSize - 2];
final int buttonId = intStack[intStackSize - 1]; final int buttonId = intStack[intStackSize - 1];
Widget button = client.getWidget(TO_GROUP(compId), TO_CHILD(compId)); Widget button = client.getWidget(compId);
Widget buttonRect = button.getChild(0); Widget buttonRect = button.getChild(0);
final Object[] onOpListener = buttonRect.getOnOpListener(); final Object[] onOpListener = buttonRect.getOnOpListener();

View File

@@ -564,7 +564,7 @@ class WidgetInspector extends JFrame
{ {
if (type == MenuAction.SPELL_CAST_ON_WIDGET.getId()) if (type == MenuAction.SPELL_CAST_ON_WIDGET.getId())
{ {
Widget w = client.getWidget(WidgetInfo.TO_GROUP(param1), WidgetInfo.TO_CHILD(param1)); Widget w = client.getWidget(param1);
if (param0 != -1) if (param0 != -1)
{ {
w = w.getChild(param0); w = w.getChild(param0);
@@ -574,7 +574,7 @@ class WidgetInspector extends JFrame
} }
else if (type == MenuAction.ITEM_USE_ON_WIDGET.getId()) else if (type == MenuAction.ITEM_USE_ON_WIDGET.getId())
{ {
Widget w = client.getWidget(WidgetInfo.TO_GROUP(param1), WidgetInfo.TO_CHILD(param1)); Widget w = client.getWidget(param1);
return w.getWidgetItem(param0); return w.getWidgetItem(param0);
} }

View File

@@ -43,8 +43,6 @@ import net.runelite.api.events.GameTick;
import net.runelite.api.events.ScriptPreFired; import net.runelite.api.events.ScriptPreFired;
import net.runelite.api.events.StatChanged; import net.runelite.api.events.StatChanged;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import static net.runelite.api.widgets.WidgetInfo.TO_CHILD;
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -92,7 +90,7 @@ public class XpDropPlugin extends Plugin
private void processXpDrop(int widgetId) private void processXpDrop(int widgetId)
{ {
final Widget xpdrop = client.getWidget(TO_GROUP(widgetId), TO_CHILD(widgetId)); final Widget xpdrop = client.getWidget(widgetId);
final Widget[] children = xpdrop.getChildren(); final Widget[] children = xpdrop.getChildren();
// child 0 is the xpdrop text, everything else are sprite ids for skills // child 0 is the xpdrop text, everything else are sprite ids for skills
final Widget text = children[0]; final Widget text = children[0];

View File

@@ -345,7 +345,7 @@ public class WikiPlugin extends Plugin
private Widget getWidget(int wid, int index) private Widget getWidget(int wid, int index)
{ {
Widget w = client.getWidget(WidgetInfo.TO_GROUP(wid), WidgetInfo.TO_CHILD(wid)); Widget w = client.getWidget(wid);
if (index != -1) if (index != -1)
{ {
w = w.getChild(index); w = w.getChild(index);