From 91dffa3c3e6759ec54afabfe60d6037cdbb6f957 Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Tue, 11 Nov 2025 23:48:13 +0500 Subject: [PATCH] Prevent auto-pause while pregen is running --- .../distanthorizons/core/generation/PregenManager.java | 7 +++++++ .../minecraft/IMinecraftSharedWrapper.java | 2 ++ 2 files changed, 9 insertions(+) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/generation/PregenManager.java b/core/src/main/java/com/seibel/distanthorizons/core/generation/PregenManager.java index c8f368419..4c2597ccf 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/generation/PregenManager.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/generation/PregenManager.java @@ -5,6 +5,7 @@ import com.google.common.cache.CacheBuilder; import com.google.common.cache.RemovalCause; import com.seibel.distanthorizons.core.api.internal.SharedApi; import com.seibel.distanthorizons.core.config.Config; +import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.file.fullDatafile.GeneratedFullDataSourceProvider; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.pos.DhSectionPos; @@ -12,6 +13,7 @@ import com.seibel.distanthorizons.core.pos.blockPos.DhBlockPos2D; import com.seibel.distanthorizons.core.util.FormatUtil; import com.seibel.distanthorizons.core.util.LodUtil; import com.seibel.distanthorizons.core.util.objects.RollingAverage; +import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftSharedWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IServerLevelWrapper; import com.seibel.distanthorizons.core.logging.DhLogger; import org.jetbrains.annotations.Nullable; @@ -28,6 +30,8 @@ public class PregenManager { protected static final DhLogger LOGGER = new DhLoggerBuilder().build(); + private static final IMinecraftSharedWrapper MC_SERVER = SingletonInjector.INSTANCE.get(IMinecraftSharedWrapper.class); + private final AtomicReference pregenFuture = new AtomicReference<>(); @@ -51,8 +55,11 @@ public class PregenManager pregenState.completeExceptionally(new IllegalStateException("Pregen is already running.")); return pregenState; } + + MC_SERVER.setPreventAutoPause(true); pregenState.whenComplete((result, throwable) -> { this.pregenFuture.set(null); + MC_SERVER.setPreventAutoPause(false); }); pregenState.fillPendingQueue(); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftSharedWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftSharedWrapper.java index 21e1e1fca..372475091 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftSharedWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftSharedWrapper.java @@ -32,4 +32,6 @@ public interface IMinecraftSharedWrapper extends IBindable int getPlayerCount(); + void setPreventAutoPause(boolean preventAutoPause); + }