From aff1a245c28ba702182bea9dc3f908c247346554 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Mon, 16 Aug 2021 23:30:33 -0400 Subject: [PATCH] Make hotloading idiot proof --- build.gradle | 2 +- .../engine/platform/BukkitChunkGenerator.java | 27 ++++++++++++------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index a614f23db..9e62e4237 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,7 @@ plugins { } group 'com.volmit.iris' -version '1.7.1' +version '1.7.2' def apiVersion = '1.17' def name = getRootProject().getName() // See settings.gradle def main = 'com.volmit.iris.Iris' diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index 984109e9f..0500e0e87 100644 --- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -112,15 +112,17 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun @Override public void hotload() { - J.aBukkit(() -> { - try { - hotloadLock.acquire(HOTLOAD_LOCKS); - initialize(); - hotloadLock.release(HOTLOAD_LOCKS); - } catch (InterruptedException e) { - e.printStackTrace(); - } - }); + J.aBukkit(this::hotloadBLOCKING); + } + + public void hotloadBLOCKING() { + try { + hotloadLock.acquire(HOTLOAD_LOCKS); + initialize(); + hotloadLock.release(HOTLOAD_LOCKS); + } catch (InterruptedException e) { + e.printStackTrace(); + } } private void initialize() { @@ -154,6 +156,13 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun return tc.getRaw(); } + catch(WrongEngineBroException e) + { + hotloadLock.release(); + hotloadBLOCKING(); + return generateChunkData(world, ignored, x, z, biome); + } + catch (Throwable e) { Iris.error("======================================"); e.printStackTrace();