WorldgenFeatureFix

WorldgenFeatureFix

修复了使用minecraft:lake特性时自定义世界生成数据包崩溃的问题(MC-273228和MC-272370)

世界生成

世界生成特性修复

提示: Mojang 已从 26.1 快照 6 起将此问题标记为已修复,你可能在 26.1 中不再需要此模组。

此模组修复了什么?

当自定义世界生成数据包使用带有水的 minecraft:lake 或 minecraft:snow_and_freeze 放置特性时,区块生成器会崩溃。(详见 MC-273228 或 MC-272370。) 受此拉取请求启发,该模组应用混入(Mixin)使其正常工作。

技术细节

在 1.21 版本中,区块生成经过了高度优化,这无意中破坏了湖泊特性的冻结检测,因为它可能尝试访问不可访问的区块。然而,由于 Mojang 目前仅将湖泊特性用于熔岩湖,因此该问题在原生 Minecraft 中不会出现——但确实会影响自定义世界生成器!此模组应用了回退到 getUncachedNoiseChunk 的混入,使湖泊特性能够再次正常工作。

免责声明

然而,该拉取请求中还提到,湖泊特性已被弃用,并且原生版本除熔岩湖外已不再将其用于任何用途。 此处移除的不安全区块错误是对不良代码的有意防护,例如在创建水湖时湖泊特性中的死路径。虽然它可能看起来“修复”了当前的问题,但这并非正确的解决方案,并且会导致其他更严重的问题无法被发现。请自行承担使用风险。(至少在我的服务器上运行良好)