From 4c01b0d260715005497196d8f1f3ea8bbcb1bea3 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 28 Sep 2018 23:28:01 +0200 Subject: [PATCH 1/2] Make examine plugin work with placeholders Signed-off-by: Tomas Slusny --- .../runelite/client/plugins/examine/ExaminePlugin.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java index 6818e2b70b..9369ed2147 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java @@ -261,17 +261,13 @@ public class ExaminePlugin extends Plugin if (itemComposition != null) { - executor.submit(() -> getItemPrice(itemComposition, itemQuantity)); + final int id = itemManager.canonicalize(itemComposition.getId()); + executor.submit(() -> getItemPrice(id, itemComposition, itemQuantity)); } } - private void getItemPrice(ItemComposition itemComposition, int quantity) + private void getItemPrice(int id, ItemComposition itemComposition, int quantity) { - // convert to unnoted id - final boolean note = itemComposition.getNote() != -1; - final int id = note ? itemComposition.getLinkedNoteId() : itemComposition.getId(); - - int itemCompositionPrice = itemComposition.getPrice(); final int gePrice = itemManager.getItemPrice(id); final int alchPrice = itemCompositionPrice <= 0 ? 0 : Math.round(itemCompositionPrice * HIGH_ALCHEMY_CONSTANT); From 7bccf3b97660ff41d792b63103b493073213081d Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 28 Sep 2018 23:55:15 +0200 Subject: [PATCH 2/2] Make examine work for smithing interface Signed-off-by: Tomas Slusny --- .../main/java/net/runelite/api/widgets/WidgetID.java | 6 ++++++ .../java/net/runelite/api/widgets/WidgetInfo.java | 2 ++ .../client/plugins/examine/ExaminePlugin.java | 11 +++++++++++ 3 files changed, 19 insertions(+) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 9fc9a0037b..73d6a5d0c2 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -66,6 +66,7 @@ public class WidgetID public static final int QUICK_PRAYERS_GROUP_ID = 77; public static final int SHOP_GROUP_ID = 300; public static final int SHOP_INVENTORY_GROUP_ID = 301; + public static final int SMITHING_GROUP_ID = 312; public static final int GUIDE_PRICES_GROUP_ID = 464; public static final int GUIDE_PRICES_INVENTORY_GROUP_ID = 238; public static final int COMBAT_GROUP_ID = 593; @@ -229,6 +230,11 @@ public class WidgetID static final int INVENTORY_ITEM_CONTAINER = 0; } + static class Smithing + { + static final int INVENTORY_ITEM_CONTAINER = 0; + } + static class GuidePrices { static final int ITEM_CONTAINER = 2; diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index 4a4333d139..b5778c2c23 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -135,6 +135,8 @@ public enum WidgetInfo SHOP_ITEMS_CONTAINER(WidgetID.SHOP_GROUP_ID, WidgetID.Shop.ITEMS_CONTAINER), SHOP_INVENTORY_ITEMS_CONTAINER(WidgetID.SHOP_INVENTORY_GROUP_ID, WidgetID.Shop.INVENTORY_ITEM_CONTAINER), + SMITHING_INVENTORY_ITEMS_CONTAINER(WidgetID.SMITHING_GROUP_ID, WidgetID.Smithing.INVENTORY_ITEM_CONTAINER), + GUIDE_PRICES_ITEMS_CONTAINER(WidgetID.GUIDE_PRICES_GROUP_ID, WidgetID.GuidePrices.ITEM_CONTAINER), GUIDE_PRICES_INVENTORY_ITEMS_CONTAINER(WidgetID.GUIDE_PRICES_INVENTORY_GROUP_ID, WidgetID.GuidePrices.INVENTORY_ITEM_CONTAINER), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java index 9369ed2147..c759d965f8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java @@ -219,6 +219,15 @@ public class ExaminePlugin extends Plugin itemId = widgetItem.getItemId(); } } + else if (WidgetInfo.SMITHING_INVENTORY_ITEMS_CONTAINER.getGroupId() == widgetGroup) + { + Widget widgetItem = widget.getChild(2); + if (widgetItem != null) + { + quantity = widgetItem.getItemQuantity(); + itemId = widgetItem.getItemId(); + } + } else if (WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER.getGroupId() == widgetGroup || WidgetInfo.RUNE_POUCH_ITEM_CONTAINER.getGroupId() == widgetGroup) { @@ -268,6 +277,8 @@ public class ExaminePlugin extends Plugin private void getItemPrice(int id, ItemComposition itemComposition, int quantity) { + // quantity is at least 1 + quantity = Math.max(1, quantity); int itemCompositionPrice = itemComposition.getPrice(); final int gePrice = itemManager.getItemPrice(id); final int alchPrice = itemCompositionPrice <= 0 ? 0 : Math.round(itemCompositionPrice * HIGH_ALCHEMY_CONSTANT);