interfacestyles: Run on game thread (#3129)

To prevent conflicts with game thread, move all client related logic to game thread
This commit is contained in:
Abex
2018-05-23 05:16:57 -06:00
committed by Tomas Slusny
parent abc8028106
commit 78b6a5b836

View File

@@ -44,6 +44,7 @@ import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.WidgetPositioned;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.SpriteManager;
import net.runelite.client.plugins.Plugin;
@@ -59,6 +60,9 @@ public class InterfaceStylesPlugin extends Plugin
@Inject
private Client client;
@Inject
private ClientThread clientThread;
@Inject
private InterfaceStylesConfig config;
@@ -74,17 +78,23 @@ public class InterfaceStylesPlugin extends Plugin
@Override
protected void startUp() throws Exception
{
overrideSprites();
overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
clientThread.invokeLater(() ->
{
overrideSprites();
overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
});
}
@Override
protected void shutDown() throws Exception
{
restoreWidgetDimensions();
removeGameframe();
clientThread.invokeLater(() ->
{
restoreWidgetDimensions();
removeGameframe();
});
}
@Subscribe
@@ -92,11 +102,14 @@ public class InterfaceStylesPlugin extends Plugin
{
if (config.getGroup().equals("interfaceStyles"))
{
removeGameframe();
overrideSprites();
overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
clientThread.invokeLater(() ->
{
removeGameframe();
overrideSprites();
overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
});
}
}