From 5054caffa1454ddb1e59bb19be01b57cb28b5cf4 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Tue, 10 Apr 2018 20:27:03 -0600 Subject: [PATCH] Initialize ItemManager to a complete state This reverts e3637fbb27868c42b9acb7c9f2a8f4308179e143 , changing it so RuneLite gets it's ItemManager late, as opposed to the ItemManager being constructed in a invalid state. --- .../src/main/java/net/runelite/client/RuneLite.java | 8 ++++++-- .../main/java/net/runelite/client/game/ItemManager.java | 9 ++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index 73be75e72f..cfcc2876fb 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -31,6 +31,7 @@ import com.google.common.eventbus.EventBus; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; +import com.google.inject.Provider; import java.applet.Applet; import java.io.File; import java.util.Optional; @@ -104,7 +105,7 @@ public class RuneLite private TitleToolbar titleToolbar; @Inject - private ItemManager itemManager; + private Provider itemManager; @Inject private ClanManager clanManager; @@ -169,8 +170,11 @@ public class RuneLite eventBus.register(chatMessageManager); eventBus.register(commandManager); eventBus.register(pluginManager); - eventBus.register(itemManager); eventBus.register(clanManager); + if (client != null) + { + eventBus.register(itemManager.get()); + } // Load user configuration configManager.load(); 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 03ab868452..a29513e45b 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 @@ -38,7 +38,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import javax.inject.Inject; -import javax.inject.Provider; import javax.inject.Singleton; import lombok.Value; import lombok.extern.slf4j.Slf4j; @@ -74,7 +73,7 @@ public class ItemManager */ static final ItemPrice NONE = new ItemPrice(); - private final Provider client; + private final Client client; private final ScheduledExecutorService scheduledExecutorService; private final ItemClient itemClient = new ItemClient(); @@ -84,7 +83,7 @@ public class ItemManager private final LoadingCache itemCompositions; @Inject - public ItemManager(Provider client, ScheduledExecutorService executor) + public ItemManager(Client client, ScheduledExecutorService executor) { this.client = client; this.scheduledExecutorService = executor; @@ -126,7 +125,7 @@ public class ItemManager @Override public ItemComposition load(Integer key) throws Exception { - return client.get().getItemDefinition(key); + return client.getItemDefinition(key); } }); } @@ -274,7 +273,7 @@ public class ItemManager */ private BufferedImage loadImage(int itemId, int quantity, boolean stackable) { - SpritePixels sprite = client.get().createItemSprite(itemId, quantity, 1, SpritePixels.DEFAULT_SHADOW_COLOR, + SpritePixels sprite = client.createItemSprite(itemId, quantity, 1, SpritePixels.DEFAULT_SHADOW_COLOR, stackable ? 1 : 0, false, CLIENT_DEFAULT_ZOOM); return sprite.toBufferedImage(); }