Merge pull request #1207 from deathbeam/fix-ground-item-recache

Invalidate ground items and item composition cache
This commit is contained in:
Adam
2018-03-31 20:50:46 -04:00
committed by GitHub
3 changed files with 18 additions and 2 deletions

View File

@@ -43,6 +43,7 @@ import net.runelite.client.account.SessionManager;
import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.ChatMessageManager;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.discord.DiscordService; import net.runelite.client.discord.DiscordService;
import net.runelite.client.game.ItemManager;
import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.MenuManager;
import net.runelite.client.plugins.PluginManager; import net.runelite.client.plugins.PluginManager;
import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.ClientUI;
@@ -97,6 +98,9 @@ public class RuneLite
@Inject @Inject
private TitleToolbar titleToolbar; private TitleToolbar titleToolbar;
@Inject
private ItemManager itemManager;
Client client; Client client;
public static void main(String[] args) throws Exception public static void main(String[] args) throws Exception
@@ -156,6 +160,7 @@ public class RuneLite
eventBus.register(menuManager); eventBus.register(menuManager);
eventBus.register(chatMessageManager); eventBus.register(chatMessageManager);
eventBus.register(pluginManager); eventBus.register(pluginManager);
eventBus.register(itemManager);
// Load user configuration // Load user configuration
configManager.load(); configManager.load();

View File

@@ -27,6 +27,7 @@ package net.runelite.client.game;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
import com.google.common.eventbus.Subscribe;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@@ -43,8 +44,10 @@ import lombok.Value;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM; import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM;
import net.runelite.api.GameState;
import net.runelite.api.ItemComposition; import net.runelite.api.ItemComposition;
import net.runelite.api.SpritePixels; import net.runelite.api.SpritePixels;
import net.runelite.api.events.GameStateChanged;
import net.runelite.http.api.item.ItemClient; import net.runelite.http.api.item.ItemClient;
import net.runelite.http.api.item.ItemPrice; import net.runelite.http.api.item.ItemPrice;
import net.runelite.http.api.item.SearchResult; import net.runelite.http.api.item.SearchResult;
@@ -128,6 +131,15 @@ public class ItemManager
}); });
} }
@Subscribe
public void onGameStateChanged(final GameStateChanged event)
{
if (event.getGameState() == GameState.HOPPING || event.getGameState() == GameState.LOGIN_SCREEN)
{
itemCompositions.invalidateAll();
}
}
/** /**
* Look up an item's price asynchronously. * Look up an item's price asynchronously.
* *

View File

@@ -195,8 +195,7 @@ public class GroundItemsPlugin extends Plugin
{ {
if (event.getGameState() == GameState.LOGGED_IN) if (event.getGameState() == GameState.LOGGED_IN)
{ {
groundItems.clear(); dirty = true;
collectedGroundItems.clear();
} }
} }