Prevent auto-pause while pregen is running
This commit is contained in:
@@ -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<PregenState> 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();
|
||||
|
||||
+2
@@ -32,4 +32,6 @@ public interface IMinecraftSharedWrapper extends IBindable
|
||||
|
||||
int getPlayerCount();
|
||||
|
||||
void setPreventAutoPause(boolean preventAutoPause);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user