From 386131ddf01f68e3ee7ad83aa34d9e289beabc7f Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Thu, 22 Aug 2024 16:20:16 +0200 Subject: [PATCH] wait for all loaded chunks to be saved --- build.gradle | 4 ++-- .../java/com/volmit/iris/core/nms/v1_20_R3/Headless.java | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index efb86de28..c49d5bb4d 100644 --- a/build.gradle +++ b/build.gradle @@ -126,8 +126,8 @@ allprojects { dependencies { // Provided or Classpath - compileOnly 'org.projectlombok:lombok:1.18.24' - annotationProcessor 'org.projectlombok:lombok:1.18.24' + compileOnly 'org.projectlombok:lombok:1.18.34' + annotationProcessor 'org.projectlombok:lombok:1.18.34' // Shaded implementation 'com.dfsek:Paralithic:0.4.0' diff --git a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/Headless.java b/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/Headless.java index 71572d0a1..e8b2aa0c1 100644 --- a/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/Headless.java +++ b/nms/v1_20_R3/src/main/java/com/volmit/iris/core/nms/v1_20_R3/Headless.java @@ -39,17 +39,16 @@ import com.volmit.iris.util.hunk.view.ChunkDataHunkHolder; import com.volmit.iris.util.mantle.MantleFlag; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.parallel.MultiBurst; +import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.PrecisionStopwatch; import lombok.Getter; import net.minecraft.core.Holder; -import net.minecraft.core.QuartPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.LevelHeightAccessor; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; -import net.minecraft.world.level.chunk.PalettedContainer; import net.minecraft.world.level.chunk.ProtoChunk; import org.bukkit.Material; import org.bukkit.block.data.BlockData; @@ -264,9 +263,11 @@ public class Headless implements IHeadless, LevelHeightAccessor { public void close() throws IOException { if (closed) return; try { + while (loadedChunks.get() > 0) + J.sleep(50); executor.shutdown(); try { - if (executor.awaitTermination(10, TimeUnit.SECONDS)) + if (executor.awaitTermination(5, TimeUnit.SECONDS)) executor.shutdownNow(); } catch (InterruptedException ignored) {} storage.close();