窑石兽服务器修复

窑石兽服务器修复

修复Cobblemon专用服务器同步错误:null FormData.species、未初始化的行为父级以及能力数据包崩溃。防止PC/队伍崩溃、JEI/EMI中“错误渲染”,并在玩家登录后强制正确初始化物种。

Bug修复

Cobblemon 服务器修复

这个模组是什么?

Cobblemon 服务器修复是一个轻量级的兼容性补丁,可防止因 Cobblemon 专用服务器与连接客户端之间的数据同步不完整而导致的一系列客户端崩溃。它最初是为了解决 Cobblemon + Create - 宝可梦遇上工业革命! 整合包中持续存在且难以诊断的崩溃问题而开发的,但它完全不依赖于特定整合包,可安全用于任何基于 Cobblemon 并在专用服务器上运行的整合包。

它解决了什么问题?

在某些专用服务器上,Cobblemon 的种族数据无法完全同步到连接的客户端。这会导致:

  • 客户端崩溃并报错 UninitializedPropertyAccessException: lateinit property species has not been initialized
  • 宝可梦在 JEI/EMI 中显示为 "Error Rendering"(渲染错误)
  • 打开电脑、查看队伍、进化宝可梦或与某些种族互动时崩溃
  • 由引用客户端未完全接收数据的能力更新和数据表单更新数据包引发的崩溃

奇怪的是,完全相同的宝可梦在不同服务器和机器上都会持续受到影响,而且如果玩家在重新连接前短暂加载一个单人世界,该问题就会消失,这强烈表明这是一个 同步时序错误,而非硬件或配置问题。

可能的原因是什么?

受影响环境中最为一致的共同因素是 Sinytra Connector,它被用来在 NeoForge 上运行仅支持 Fabric 的模组。它与 Cobblemon 的数据同步和资源加载管线的交互似乎破坏了客户端种族初始化的时序,导致某些 FormData 对象(及其内部的 behaviour.parent 引用)在客户端尝试使用时处于不完整状态。此模组不会禁用或替换 Connector,而是防御性地规避由此产生的不完整状态。

这个模组具体做了什么?

  • 强制 Cobblemon 在玩家数据同步完成后,在服务器端正确重新初始化所有种族数据
  • 在客户端为 FormData.species 和 FormPokemonBehaviour.parent 在未初始化状态到达时添加安全的回退处理,防止硬崩溃
  • 添加一个针对性的修复,处理引用客户端尚未完全注册能力的更新数据包

它不会修改存档、掉落表、生成、配方或任何核心 Cobblemon 游戏系统。它只在缺失同步数据会导致游戏崩溃的确切节点进行干预。

安装

此模组必须同时安装在 客户端和专用服务器 上才能正常工作。在单人游戏中它没有任何效果,可以视为无害的惰性模组。

许可证

此模组根据 MIT 许可证 发布。您可以自由使用、修改、再分发并将其包含在任何整合包中(无论是公开还是私有),无需征求许可。标注出处是受欢迎的,但并非强制要求。