From 14fe12e7d6b56e469232ec5e322ef418d6e27750 Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Wed, 20 Feb 2019 18:14:25 +0100 Subject: [PATCH] Convert item stats mapping to use item ids instead of names Signed-off-by: Tomas Slusny --- .../java/net/runelite/http/api/item/ItemClient.java | 7 ++++--- .../java/net/runelite/client/game/ItemManager.java | 10 +++++----- .../client/plugins/itemstats/ItemStatOverlay.java | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java b/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java index 93b138dc7f..2aa8b5c678 100644 --- a/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java +++ b/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java @@ -204,11 +204,12 @@ public class ItemClient } } - public Map getStats() throws IOException + public Map getStats() throws IOException { HttpUrl.Builder urlBuilder = RuneLiteAPI.getStaticBase().newBuilder() .addPathSegment("item") - .addPathSegment("stats.min.json"); + // TODO: Change this to stats.min.json later after release is undeployed + .addPathSegment("stats.ids.min.json"); HttpUrl url = urlBuilder.build(); @@ -227,7 +228,7 @@ public class ItemClient } InputStream in = response.body().byteStream(); - final Type typeToken = new TypeToken>() + final Type typeToken = new TypeToken>() { }.getType(); return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), typeToken); 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 c91de9262c..0f21a5b434 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 @@ -84,7 +84,7 @@ public class ItemManager private final ItemClient itemClient = new ItemClient(); private Map itemPrices = Collections.emptyMap(); - private Map itemStats = Collections.emptyMap(); + private Map itemStats = Collections.emptyMap(); private final LoadingCache itemImages; private final LoadingCache itemCompositions; private final LoadingCache itemOutlines; @@ -226,7 +226,7 @@ public class ItemManager { try { - final Map stats = itemClient.getStats(); + final Map stats = itemClient.getStats(); if (stats != null) { itemStats = ImmutableMap.copyOf(stats); @@ -307,16 +307,16 @@ public class ItemManager * @return item stats */ @Nullable - public ItemStats getItemStats(int itemId) + public ItemStats getItemStats(int itemId, boolean allowNote) { ItemComposition itemComposition = getItemComposition(itemId); - if (itemComposition == null || itemComposition.getName() == null) + if (itemComposition == null || itemComposition.getName() == null || (!allowNote && itemComposition.getNote() != -1)) { return null; } - return itemStats.get(itemComposition.getName()); + return itemStats.get(canonicalize(itemId)); } /** diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java index 73113bd0ac..206ab6fc13 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatOverlay.java @@ -139,7 +139,7 @@ public class ItemStatOverlay extends Overlay if (config.equipmentStats()) { - final ItemStats stats = itemManager.getItemStats(itemId); + final ItemStats stats = itemManager.getItemStats(itemId, false); if (stats != null) { @@ -205,7 +205,7 @@ public class ItemStatOverlay extends Overlay final Item item = items[slot]; if (item != null) { - other = itemManager.getItemStats(item.getId()); + other = itemManager.getItemStats(item.getId(), false); } }