From 98395b94b18b16b91a8abcd16d74f8832fb3c0d3 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sun, 24 May 2020 08:57:03 -0600 Subject: [PATCH] ItemManager: only canonicalize notes f9d3647db1a6c8b715d50d39a5141b006f5f3840 made ItemManager return a price for placeholders, which is wrong. --- .../net/runelite/client/game/ItemManager.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index cb9cf32afd..6233265e73 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -290,20 +290,25 @@ public class ItemManager */ public int getItemPrice(int itemID, boolean ignoreUntradeableMap) { - final int realId = canonicalize(itemID); - - if (realId == ItemID.COINS_995) + if (itemID == ItemID.COINS_995) { return 1; } - if (realId == ItemID.PLATINUM_TOKEN) + if (itemID == ItemID.PLATINUM_TOKEN) { return 1000; } + ItemComposition itemComposition = getItemComposition(itemID); + if (itemComposition.getNote() != -1) + { + itemID = itemComposition.getLinkedNoteId(); + } + itemID = WORN_ITEMS.getOrDefault(itemID, itemID); + if (!ignoreUntradeableMap) { - UntradeableItemMapping p = UntradeableItemMapping.map(ItemVariationMapping.map(realId)); + UntradeableItemMapping p = UntradeableItemMapping.map(ItemVariationMapping.map(itemID)); if (p != null) { return getItemPrice(p.getPriceID()) * p.getQuantity(); @@ -311,7 +316,7 @@ public class ItemManager } int price = 0; - for (int mappedID : ItemMapping.map(realId)) + for (int mappedID : ItemMapping.map(itemID)) { ItemPrice ip = itemPrices.get(mappedID); if (ip != null)