Ensure createItemSprite is called on the game thread

This commit is contained in:
Max Weber
2018-03-24 22:08:42 -06:00
committed by Adam
parent 0ec8d7615f
commit 92a94cff32
4 changed files with 13 additions and 4 deletions

View File

@@ -52,6 +52,7 @@ import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameObjectSpawned;
import net.runelite.api.events.ProjectileMoved; import net.runelite.api.events.ProjectileMoved;
import net.runelite.client.Notifier; import net.runelite.client.Notifier;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -106,6 +107,9 @@ public class CannonPlugin extends Plugin
@Inject @Inject
private Client client; private Client client;
@Inject
private ClientThread clientThread;
@Provides @Provides
CannonConfig provideConfig(ConfigManager configManager) CannonConfig provideConfig(ConfigManager configManager)
{ {
@@ -140,7 +144,7 @@ public class CannonPlugin extends Plugin
{ {
if (cannonPlaced) if (cannonPlaced)
{ {
addCounter(); clientThread.invokeLater(this::addCounter);
} }
} }
} }

View File

@@ -148,7 +148,7 @@ public class RunepouchOverlay extends Overlay
{ {
OverlayUtil.renderImageLocation(graphics, OverlayUtil.renderImageLocation(graphics,
new Point(location.getX(), location.getY() + graphics.getFontMetrics().getHeight() * i), new Point(location.getX(), location.getY() + graphics.getFontMetrics().getHeight() * i),
getRuneImage(rune)); image);
} }
} }

View File

@@ -49,6 +49,7 @@ import net.runelite.api.events.GameStateChanged;
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.Notifier; import net.runelite.client.Notifier;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -96,6 +97,9 @@ public class SlayerPlugin extends Plugin
@Inject @Inject
private Notifier notifier; private Notifier notifier;
@Inject
private ClientThread clientThread;
private String taskName; private String taskName;
private int amount; private int amount;
private TaskCounter counter; private TaskCounter counter;
@@ -112,7 +116,7 @@ public class SlayerPlugin extends Plugin
&& config.amount() != -1 && config.amount() != -1
&& !config.taskName().isEmpty()) && !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()) if (config.showInfobox())
{ {
addCounter(); clientThread.invokeLater(this::addCounter);
} }
else else
{ {

View File

@@ -480,6 +480,7 @@ public abstract class RSClientMixin implements RSClient
@Override @Override
public SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale) public SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale)
{ {
assert isClientThread();
int zoom = get3dZoom(); int zoom = get3dZoom();
set3dZoom(scale); set3dZoom(scale);
try try