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.
This commit is contained in:
Max Weber
2018-04-10 20:27:03 -06:00
parent 607c465101
commit 5054caffa1
2 changed files with 10 additions and 7 deletions

View File

@@ -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> 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();

View File

@@ -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> 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<Integer, ItemComposition> itemCompositions;
@Inject
public ItemManager(Provider<Client> 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();
}