From db90754ca2c9ccc910886d7cb68b196e0be404f9 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 4 Feb 2019 18:49:23 -0500 Subject: [PATCH] Fix npc spawn events sometimes occuring out of order If an npc spawns and despawns within the same frame, the despawn events occur prior to the deferred spawn events. --- .../src/main/java/net/runelite/client/callback/Hooks.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index 4d9ff2b381..4cb368ace7 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -452,6 +452,11 @@ public class Hooks implements Callbacks // but having the game tick event after all packets // have been processed is typically more useful. shouldProcessGameTick = true; + // Replay deferred events, otherwise if two npc + // update packets get processed in one frame, a + // despawn event could be published prior to the + // spawn event, which is deferred + deferredEventBus.replay(); } public static void renderDraw(Renderable renderable, int orientation, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y, int z, long hash)