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

View File

@@ -27,6 +27,7 @@ package net.runelite.client.game;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.common.eventbus.Subscribe;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
@@ -43,8 +44,10 @@ import lombok.Value;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM;
import net.runelite.api.GameState;
import net.runelite.api.ItemComposition;
import net.runelite.api.SpritePixels;
import net.runelite.api.events.GameStateChanged;
import net.runelite.http.api.item.ItemClient;
import net.runelite.http.api.item.ItemPrice;
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.
*

View File

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