From cc9f2828c106bd932c6938421ada1165f1b87ff2 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 21 May 2019 11:04:38 +0200 Subject: [PATCH] Fix world being set to null on replay restart when in sync mode --- src/main/java/com/replaymod/core/ReplayMod.java | 12 ++++++++++++ .../java/com/replaymod/replay/ReplayHandler.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index d9de8456..28879196 100755 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -378,6 +378,18 @@ public class ReplayMod implements }); } + public void runSync(Runnable runnable) { + //#if MC>=11400 + if (mc.isOnThread()) { + //#else + //$$ if (mc.isCallingFromMinecraftThread()) { + //#endif + runnable.run(); + } else { + runLater(runnable); + } + } + /** * Set when the currently running code has been scheduled by runLater. * If this is the case, subsequent calls to runLater have to be delayed until all scheduled tasks have been diff --git a/src/main/java/com/replaymod/replay/ReplayHandler.java b/src/main/java/com/replaymod/replay/ReplayHandler.java index 927c5c01..53baaaae 100755 --- a/src/main/java/com/replaymod/replay/ReplayHandler.java +++ b/src/main/java/com/replaymod/replay/ReplayHandler.java @@ -162,7 +162,7 @@ public class ReplayHandler { channel.close(); // Force re-creation of camera entity by unloading the previous world - ReplayMod.instance.runLater(() -> { + ReplayMod.instance.runSync(() -> { //#if MC>=11300 mc.mouse.unlockCursor(); //#else