Tags
Creators
Details
Licensed MIT
Published 4 months ago
Updated 3 months ago
All versions
1.7.23
Release
Create-Aeronautics:Compatibility + Bug fixes 1.7.233 months ago 20
Uploaded by
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Server-side
Client and server
Required content
Any compatible version
Changes
[1.7.23] - 2026-08-09
Bug 修复 / Bug Fixes
- async-save 存档卡顿回归修复 / async-save save freeze regression fix: 修复 v1.7.12 起的"存档时服务器卡顿"回归。v1.7.12 在
saveAll返回前 join 所有异步磁盘 IO(fucksable$awaitPendingIO),导致主线程在每次存档时阻塞等待全部磁盘 IO(含 gzip 压缩和flush的磁盘同步)完成,表现为存档时服务器明显卡顿。改为"非阻塞提交 + 屏障 drain"模式:saveAll只把磁盘 IO 提交到异步线程且不在saveAll内阻塞;flush也推迟到异步线程、在本批待写 IO 完成后执行;任何后续磁盘读取(getOrLoadHoldingChunk)以及下一次saveAll/close之前先 drain(join)未完成的异步 IO,既避免主线程与异步线程并发访问非线程安全的regionCache/storageCache,又让磁盘 IO 与主线程序列化流水线重叠。/ Fixed the "server freezes during saves" regression introduced in v1.7.12. v1.7.12 joined all async disk IO (fucksable$awaitPendingIO) beforesaveAllreturned, blocking the main thread on every save while waiting for all disk IO (gzip compression +flushdisk sync) to finish. Changed to a "non-blocking submit + drain barrier" model:saveAllonly submits disk IO to the async thread and never blocks insidesaveAll;flushis deferred to the async thread and runs after the current batch of pending writes; before any later disk read (getOrLoadHoldingChunk) and before the nextsaveAll/close, pending async IO is drained (joined). This keeps the non-thread-saferegionCache/storageCachefrom being accessed concurrently by both threads while letting disk IO overlap with main-thread serialization.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:YS1hdEUp:oXO9pYOb"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:YS1hdEUp:oXO9pYOb"
}

