From bd2f5a7836ed5074d8454585b80bc6b6f7f5a7ba Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Fri, 13 Mar 2026 00:48:05 +0500 Subject: [PATCH] Stop pregen on server shutdown --- .../common/commands/PregenCommand.java | 15 +++++++++++---- coreSubProjects | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/commands/PregenCommand.java b/common/src/main/java/com/seibel/distanthorizons/common/commands/PregenCommand.java index 32a698306..3cb0a88de 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/commands/PregenCommand.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/commands/PregenCommand.java @@ -4,14 +4,17 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper; +import com.seibel.distanthorizons.core.api.internal.SharedApi; import com.seibel.distanthorizons.core.generation.PregenManager; import com.seibel.distanthorizons.core.pos.blockPos.DhBlockPos2D; +import com.seibel.distanthorizons.core.world.DhServerWorld; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.arguments.DimensionArgument; import net.minecraft.commands.arguments.coordinates.ColumnPosArgument; import net.minecraft.server.level.ColumnPos; import net.minecraft.server.level.ServerLevel; +import java.util.Objects; import java.util.concurrent.CancellationException; import java.util.concurrent.CompletableFuture; @@ -22,7 +25,11 @@ import static net.minecraft.commands.Commands.literal; public class PregenCommand extends AbstractCommand { - private final PregenManager pregenManager = new PregenManager(); + private PregenManager getPregenManager() + { + DhServerWorld world = (DhServerWorld) Objects.requireNonNull(SharedApi.getAbstractDhWorld()); + return world.getPregenManager(); + } @Override public LiteralArgumentBuilder buildCommand() @@ -48,7 +55,7 @@ public class PregenCommand extends AbstractCommand private int pregenStatus(CommandContext c) { - String statusString = this.pregenManager.getStatusString(); + String statusString = this.getPregenManager().getStatusString(); //noinspection ReplaceNullCheck if (statusString != null) { @@ -68,7 +75,7 @@ public class PregenCommand extends AbstractCommand ColumnPos origin = ColumnPosArgument.getColumnPos(c, "origin"); int chunkRadius = getInteger(c, "chunkRadius"); - CompletableFuture future = this.pregenManager.startPregen( + CompletableFuture future = this.getPregenManager().startPregen( ServerLevelWrapper.getWrapper(level), new DhBlockPos2D(#if MC_VER >= MC_1_19_2 origin.x(), origin.z() #else origin.x, origin.z #endif), chunkRadius @@ -94,7 +101,7 @@ public class PregenCommand extends AbstractCommand private int pregenStop(CommandContext c) { - CompletableFuture runningPregen = this.pregenManager.getRunningPregen(); + CompletableFuture runningPregen = this.getPregenManager().getRunningPregen(); if (runningPregen == null) { return this.sendFailureResponse(c, "Pregen is not running"); diff --git a/coreSubProjects b/coreSubProjects index 4c9d703e1..e2421c97e 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit 4c9d703e1501ec5e8f9e63343fa38d29cc9e6719 +Subproject commit e2421c97edd803b6db9845c4ee5e3074628c39e5