From dbbdd31e2e45793d86efaafd818e0fb5e6dd8ee8 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 5 Nov 2017 15:30:16 -0500 Subject: [PATCH] runelite-client: make item image cache non static --- .../java/net/runelite/client/game/ItemManager.java | 7 ++----- .../client/plugins/fishing/FishingSpotOverlay.java | 3 +-- .../net/runelite/client/plugins/slayer/Slayer.java | 12 +++++++++--- .../net/runelite/client/plugins/slayer/Task.java | 9 ++------- 4 files changed, 14 insertions(+), 17 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 458d7ebf1c..48f51e279e 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 @@ -27,12 +27,10 @@ package net.runelite.client.game; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; - import java.awt.image.BufferedImage; import java.io.IOException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; - import net.runelite.api.Client; import net.runelite.api.SpritePixels; import net.runelite.client.RuneLite; @@ -54,8 +52,7 @@ public class ItemManager private final ItemClient itemClient = new ItemClient(); private final LoadingCache itemPrices; - - private static LoadingCache itemImages; + private final LoadingCache itemImages; public ItemManager(RuneLite runelite) { @@ -168,7 +165,7 @@ public class ItemManager * @param itemId * @return */ - public static BufferedImage getImage(int itemId) + public BufferedImage getImage(int itemId) { try { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java index 084b46cd32..da5fb3dddb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java @@ -36,7 +36,6 @@ import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.queries.NPCQuery; import net.runelite.client.RuneLite; -import net.runelite.client.game.ItemManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; @@ -100,7 +99,7 @@ class FishingSpotOverlay extends Overlay private BufferedImage getFishImage(FishingSpot spot) { - BufferedImage fishImage = ItemManager.getImage(spot.getFishSpriteId()); + BufferedImage fishImage = runelite.getItemManager().getImage(spot.getFishSpriteId()); return fishImage; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Slayer.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Slayer.java index f6bf6f6332..fbbfbc6c81 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Slayer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Slayer.java @@ -41,7 +41,6 @@ import net.runelite.client.RuneLite; import net.runelite.client.events.ChatMessage; import net.runelite.client.events.ExperienceChanged; import net.runelite.client.events.GameStateChanged; -import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @@ -69,10 +68,11 @@ public class Slayer extends Plugin //Reward UI private static final Pattern REWARD_POINTS = Pattern.compile("Reward points: (\\d*)"); + private final RuneLite runelite = RuneLite.getRunelite(); + private final Client client = RuneLite.getClient(); private final InfoBoxManager infoBoxManager = RuneLite.getRunelite().getInfoBoxManager(); private final SlayerConfig config = RuneLite.getRunelite().getConfigManager().getConfig(SlayerConfig.class); private final SlayerOverlay overlay = new SlayerOverlay(this); - private final Client client = RuneLite.getClient(); private String taskName; private int amount; @@ -268,11 +268,17 @@ public class Slayer extends Plugin } Task task = Task.getTask(taskName); + int itemSpriteId = ItemID.ENCHANTED_GEM; if (task == null) { logger.warn("No slayer task for {} in the Task database", taskName); } - BufferedImage taskImg = task != null ? task.getImage() : ItemManager.getImage(ItemID.ENCHANTED_GEM); + else + { + itemSpriteId = task.getItemSpriteId(); + } + + BufferedImage taskImg = runelite.getItemManager().getImage(itemSpriteId); counter = new TaskCounter(taskImg, amount); counter.setTooltip(capsString(taskName)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java index 5418e3014e..51f70994de 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java @@ -138,7 +138,6 @@ enum Task private static final Map tasks = new HashMap<>(); private final String name; - private final int itemSpriteId; static @@ -165,12 +164,8 @@ enum Task return this.name; } - public BufferedImage getImage() + public int getItemSpriteId() { - if (itemSpriteId == -1) - { - return ItemManager.getImage(ItemID.ENCHANTED_GEM); - } - return ItemManager.getImage(itemSpriteId); + return itemSpriteId; } }