Invalidate item manager cache on hopping and login

Invalidate item manager composition cache when person is hopping or goes
to login screen to prevent issues with changing from p2p to f2p worlds.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-03-31 20:56:31 +02:00
parent 19bd1f5c67
commit dff0ce007d
2 changed files with 17 additions and 0 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.
*