Merge pull request #8197 from trimbe/fix-ge-close-itemstats

item stats: fix detecting when GE has closed, fix threading issue
This commit is contained in:
Adam
2019-03-13 16:50:23 -04:00
committed by GitHub

View File

@@ -44,14 +44,15 @@ import net.runelite.api.SpriteID;
import net.runelite.api.VarPlayer; import net.runelite.api.VarPlayer;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.VarbitChanged;
import net.runelite.api.events.WidgetHiddenChanged;
import net.runelite.api.widgets.JavaScriptCallback; import net.runelite.api.widgets.JavaScriptCallback;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.api.widgets.WidgetTextAlignment; import net.runelite.api.widgets.WidgetTextAlignment;
import net.runelite.api.widgets.WidgetType; import net.runelite.api.widgets.WidgetType;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
@@ -90,6 +91,9 @@ public class ItemStatPlugin extends Plugin
@Inject @Inject
private ItemStatConfig config; private ItemStatConfig config;
@Inject
private ClientThread clientThread;
private Widget itemInformationTitle; private Widget itemInformationTitle;
@Provides @Provides
@@ -114,7 +118,7 @@ public class ItemStatPlugin extends Plugin
protected void shutDown() throws Exception protected void shutDown() throws Exception
{ {
overlayManager.remove(overlay); overlayManager.remove(overlay);
resetGEInventory(); clientThread.invokeLater(this::resetGEInventory);
} }
@Subscribe @Subscribe
@@ -122,19 +126,15 @@ public class ItemStatPlugin extends Plugin
{ {
if (event.getKey().equals("geStats")) if (event.getKey().equals("geStats"))
{ {
resetGEInventory(); clientThread.invokeLater(this::resetGEInventory);
} }
} }
@Subscribe @Subscribe
public void onWidgetHiddenChanged(WidgetHiddenChanged event) public void onGameTick(GameTick event)
{ {
if (!config.geStats()) if (itemInformationTitle != null && config.geStats()
{ && client.getWidget(WidgetInfo.GRAND_EXCHANGE_WINDOW_CONTAINER) == null)
return;
}
if (event.getWidget() == client.getWidget(WidgetInfo.INVENTORY))
{ {
resetGEInventory(); resetGEInventory();
} }