过时的结构 - Kasualix/ModernFix GitHub Wiki

注:“模组”和“数据包”在这里是一个道理。

在游戏过程中,你可能会在日志里发现一条警告,说一个模组“装载了过时的结构文件,可能会导致世界生成延迟”(shipping outdated structure files, which can cause worldgen lag)。

模组在世界中生成结构的行为依赖于包含结构数据的 NBT 文件。大多数情况下,当一个模组从旧 MC 版本移植到新 MC 版本时,会使用相同的结构文件。这是因为 Mojang 设计的游戏能够自动升级更新旧世界,所以游戏能加载旧版本的结构文件且不会出现明显问题。然而,结构文件在加载时需要即时升级,这可能会导致延迟。

在原版中,每次启动游戏都会重复一次这个升级过程。而现代化修复通过缓存和重复使用升级后的结构版本来缓解这个问题。然而,这仍然意味着,如果有结构文件需要升级,那么在第一次加载时,服务端的延迟会因此激增。为了缓解这个问题,你可以在你的服务器/单人游戏世界里运行指令/modernfix upgradeStructures,让现代化修复加载和验证每一个结构,并在此过程中,如需要的话,生成一个升级后的结构文件。注意,这个指令在运行时将完全冻结服务器,所以不要在有玩家在线时使用它。

致模组作者:如果你的模组被标记为与某个 MC 版本兼容,为减少玩家的世界生成延迟,请确保你模组中的任何 .nbt 文件确实是在此版本保存/更新的。https://github.com/jaskarth/structure-fixer 可能会对此有所帮助。对于 Mojang 在 1.19.4 中的 DFU 优化,此问题仍需要大量测试,来确定其是否已被解决。