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