From 92a94cff3271009a1d8f1766fcdc39e1491cec86 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sat, 24 Mar 2018 22:08:42 -0600 Subject: [PATCH] Ensure createItemSprite is called on the game thread --- .../net/runelite/client/plugins/cannon/CannonPlugin.java | 6 +++++- .../client/plugins/runepouch/RunepouchOverlay.java | 2 +- .../net/runelite/client/plugins/slayer/SlayerPlugin.java | 8 ++++++-- .../src/main/java/net/runelite/mixins/RSClientMixin.java | 1 + 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index eb2446b82d..d72e04d453 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -52,6 +52,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.ProjectileMoved; import net.runelite.client.Notifier; +import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; @@ -106,6 +107,9 @@ public class CannonPlugin extends Plugin @Inject private Client client; + @Inject + private ClientThread clientThread; + @Provides CannonConfig provideConfig(ConfigManager configManager) { @@ -140,7 +144,7 @@ public class CannonPlugin extends Plugin { if (cannonPlaced) { - addCounter(); + clientThread.invokeLater(this::addCounter); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java index 35f64f3e11..1d7589a609 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java @@ -148,7 +148,7 @@ public class RunepouchOverlay extends Overlay { OverlayUtil.renderImageLocation(graphics, new Point(location.getX(), location.getY() + graphics.getFontMetrics().getHeight() * i), - getRuneImage(rune)); + image); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index d49a7a4111..bae55ab2f5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -49,6 +49,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; +import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; @@ -96,6 +97,9 @@ public class SlayerPlugin extends Plugin @Inject private Notifier notifier; + @Inject + private ClientThread clientThread; + private String taskName; private int amount; private TaskCounter counter; @@ -112,7 +116,7 @@ public class SlayerPlugin extends Plugin && config.amount() != -1 && !config.taskName().isEmpty()) { - setTask(config.taskName(), config.amount()); + clientThread.invokeLater(() -> setTask(config.taskName(), config.amount())); } } @@ -307,7 +311,7 @@ public class SlayerPlugin extends Plugin if (config.showInfobox()) { - addCounter(); + clientThread.invokeLater(this::addCounter); } else { diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index c4c4d94eac..1b716d8a28 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -480,6 +480,7 @@ public abstract class RSClientMixin implements RSClient @Override public SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale) { + assert isClientThread(); int zoom = get3dZoom(); set3dZoom(scale); try