diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index 0a40bdf473..d5de3a82c4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -34,6 +34,8 @@ import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.ExecutionException; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -50,6 +52,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.events.ConfigChanged; import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.ui.ClientUI; @@ -64,6 +67,8 @@ class WidgetInspector extends JFrame private final WidgetInfoTableModel infoTableModel; private final JCheckBox alwaysOnTop; + private static final Map widgetIdMap = new HashMap<>(); + @Inject WidgetInspector(DevToolsPlugin plugin, Client client, WidgetInfoTableModel infoTableModel, DevToolsConfig config, EventBus eventBus) { @@ -262,4 +267,20 @@ class WidgetInspector extends JFrame { infoTableModel.setWidget(plugin.currentWidget); } + + public static WidgetInfo getWidgetInfo(int packedId) + { + if (widgetIdMap.size() == 0) + { + //Initialize map here so it doesn't create the index + //until it's actually needed. + WidgetInfo[] widgets = WidgetInfo.values(); + for (WidgetInfo w : widgets) + { + widgetIdMap.put(w.getPackedId(), w); + } + } + + return widgetIdMap.get(packedId); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetTreeNode.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetTreeNode.java index 7ff7d4262c..e4ccc2106c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetTreeNode.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetTreeNode.java @@ -26,6 +26,7 @@ package net.runelite.client.plugins.devtools; import javax.swing.tree.DefaultMutableTreeNode; import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import static net.runelite.api.widgets.WidgetInfo.TO_CHILD; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; @@ -49,6 +50,7 @@ class WidgetTreeNode extends DefaultMutableTreeNode { Widget widget = getWidget(); int id = widget.getId(); - return type + " " + TO_GROUP(id) + "." + TO_CHILD(id); + WidgetInfo info = WidgetInspector.getWidgetInfo(id); + return type + " " + TO_GROUP(id) + "." + TO_CHILD(id) + ((info != null) ? " " + info.name() : ""); } }