Use provider for client in item manager

To prevent ItemManager initializing with null client change reference to
the client to Provider<Client>.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-04-01 04:18:08 +02:00
parent 197c42eafd
commit a730ae0d22

View File

@@ -37,8 +37,8 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Provider;
import javax.inject.Singleton; import javax.inject.Singleton;
import lombok.Value; import lombok.Value;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -74,7 +74,7 @@ public class ItemManager
*/ */
static final ItemPrice NONE = new ItemPrice(); static final ItemPrice NONE = new ItemPrice();
private final Client client; private final Provider<Client> client;
private final ScheduledExecutorService scheduledExecutorService; private final ScheduledExecutorService scheduledExecutorService;
private final ItemClient itemClient = new ItemClient(); private final ItemClient itemClient = new ItemClient();
@@ -84,7 +84,7 @@ public class ItemManager
private final LoadingCache<Integer, ItemComposition> itemCompositions; private final LoadingCache<Integer, ItemComposition> itemCompositions;
@Inject @Inject
public ItemManager(@Nullable Client client, ScheduledExecutorService executor) public ItemManager(Provider<Client> client, ScheduledExecutorService executor)
{ {
this.client = client; this.client = client;
this.scheduledExecutorService = executor; this.scheduledExecutorService = executor;
@@ -126,7 +126,7 @@ public class ItemManager
@Override @Override
public ItemComposition load(Integer key) throws Exception public ItemComposition load(Integer key) throws Exception
{ {
return client.getItemDefinition(key); return client.get().getItemDefinition(key);
} }
}); });
} }
@@ -274,7 +274,8 @@ public class ItemManager
*/ */
private BufferedImage loadImage(int itemId, int quantity, boolean stackable) private BufferedImage loadImage(int itemId, int quantity, boolean stackable)
{ {
SpritePixels sprite = client.createItemSprite(itemId, quantity, 1, SpritePixels.DEFAULT_SHADOW_COLOR, stackable ? 1 : 0, false, CLIENT_DEFAULT_ZOOM); SpritePixels sprite = client.get().createItemSprite(itemId, quantity, 1, SpritePixels.DEFAULT_SHADOW_COLOR,
stackable ? 1 : 0, false, CLIENT_DEFAULT_ZOOM);
return sprite.toBufferedImage(); return sprite.toBufferedImage();
} }