From e2421c97edd803b6db9845c4ee5e3074628c39e5 Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Fri, 13 Mar 2026 00:47:44 +0500 Subject: [PATCH] Stop pregen on server shutdown --- .../core/world/DhServerWorld.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java b/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java index 9931fa5c5..06375f163 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java @@ -21,13 +21,20 @@ package com.seibel.distanthorizons.core.world; import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.seibel.distanthorizons.core.enums.MinecraftTextFormat; +import com.seibel.distanthorizons.core.generation.PregenManager; import com.seibel.distanthorizons.core.level.DhServerLevel; import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IServerLevelWrapper; import org.jetbrains.annotations.NotNull; +import java.util.concurrent.CompletableFuture; + public class DhServerWorld extends AbstractDhServerWorld { + private final PregenManager pregenManager = new PregenManager(); + public PregenManager getPregenManager() { return this.pregenManager; } + + //==============// // constructors // //==============// @@ -88,4 +95,17 @@ public class DhServerWorld extends AbstractDhServerWorld } } + @Override + public void close() + { + CompletableFuture runningPregen = this.pregenManager.getRunningPregen(); + if (runningPregen != null) + { + LOGGER.info("Stopping the running pregen task."); + runningPregen.cancel(true); + } + + super.close(); + } + }