Compare commits
2 Commits
v0.2.0-bet
...
mc/1.21.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
93b908350e | ||
|
|
4bd7eb8b72 |
@@ -17,6 +17,6 @@ modmenu_version=12.0.0-beta.1
|
||||
fabric_lithium_version=QhCwdt4l
|
||||
neo_lithium_version=wDD955sb
|
||||
# Mod Properties
|
||||
mod_version=0.2.0-beta.5
|
||||
mod_version=0.2.0-SNAPSHOT
|
||||
maven_group=ca.spottedleaf.moonrise
|
||||
archives_base_name=moonrise
|
||||
|
||||
@@ -86,6 +86,13 @@ abstract class ServerChunkCacheMixin extends ChunkSource implements ChunkSystemS
|
||||
completable::complete
|
||||
);
|
||||
|
||||
if (!completable.isDone() && chunkTaskScheduler.hasShutdown()) {
|
||||
throw new IllegalStateException(
|
||||
"Chunk system has shut down, cannot process chunk requests in world '" + ca.spottedleaf.moonrise.common.util.WorldUtil.getWorldName(this.level) + "' at "
|
||||
+ "(" + chunkX + "," + chunkZ + ") status: " + toStatus
|
||||
);
|
||||
}
|
||||
|
||||
if (TickThread.isTickThreadFor(this.level, chunkX, chunkZ)) {
|
||||
ChunkTaskScheduler.pushChunkWait(this.level, chunkX, chunkZ);
|
||||
this.mainThreadProcessor.managedBlock(completable::isDone);
|
||||
|
||||
@@ -219,6 +219,8 @@ public final class ChunkHolderManager {
|
||||
LOGGER.error("Failed to close '" + type.name() + "' regionfile cache for world '" + WorldUtil.getWorldName(this.world) + "'", ex);
|
||||
}
|
||||
}
|
||||
|
||||
this.taskScheduler.setShutdown(true);
|
||||
}
|
||||
|
||||
void ensureInAutosave(final NewChunkHolder holder) {
|
||||
|
||||
@@ -271,6 +271,16 @@ public final class ChunkTaskScheduler {
|
||||
return this.lockShift;
|
||||
}
|
||||
|
||||
private volatile boolean shutdown;
|
||||
|
||||
public boolean hasShutdown() {
|
||||
return this.shutdown;
|
||||
}
|
||||
|
||||
public void setShutdown(final boolean shutdown) {
|
||||
this.shutdown = shutdown;
|
||||
}
|
||||
|
||||
public ChunkTaskScheduler(final ServerLevel world) {
|
||||
this.world = world;
|
||||
// must be >= region shift (in paper, doesn't exist) and must be >= ticket propagator section shift
|
||||
@@ -525,6 +535,13 @@ public final class ChunkTaskScheduler {
|
||||
return loaded;
|
||||
}
|
||||
|
||||
if (this.hasShutdown()) {
|
||||
throw new IllegalStateException(
|
||||
"Chunk system has shut down, cannot process chunk requests in world '" + ca.spottedleaf.moonrise.common.util.WorldUtil.getWorldName(this.world) + "' at "
|
||||
+ "(" + chunkX + "," + chunkZ + ") status: " + status
|
||||
);
|
||||
}
|
||||
|
||||
final Long ticketId = getNextNonFullLoadId();
|
||||
final int ticketLevel = getTicketLevel(status);
|
||||
this.chunkHolderManager.addTicketAtLevel(NON_FULL_CHUNK_LOAD, chunkX, chunkZ, ticketLevel, ticketId);
|
||||
|
||||
Reference in New Issue
Block a user