块损坏预防器

块损坏预防器

尝试通过重新序列化区块来防止区块损坏,并消除特定肇事者,而不是清除整个区块。

Bug修复

区块损坏防护器 是一个漏洞修复模组,它能检测区块损坏即将发生的时间,并通过代码注入 "安全序列化"(Safe Serialize)方法,使得只有区块中导致失败的元素会被清除,而不是整个区块。

其逻辑如下:

  • 如果某个区块的 NBT 数据在 Mojang 代码序列化后出现错误,
  • 则对其进行再次序列化
  • 如果序列化在(例如)方块实体部分再次失败,
  • 则不保存导致失败的特定方块实体,
  • 并在控制台和聊天中输出大量日志数据。

目的是帮助服务器管理员,减少区块损坏对玩家的困扰。

玩家将会收到聊天输出,以便了解发生了什么情况;他们可以联系管理员并提供详细信息,同时在等待管理员上线期间,仍能使用区块的其余部分。

如果只有一个方块导致问题,那么就没有必要清除整个区块!

 

这个模组不会引发额外问题,但当然也不保证每次都能生效。如果区块即将被清除,那么游戏完全可以再尝试一次。整个 "安全序列化" 代码被包裹在多个 try/catch 语句中,这没问题,因为它不会频繁运行,同时也意味着有良好的日志记录,并且不会影响地图线程。

这里也绝无无限循环的可能性。一旦 "安全序列化" 对正在保存的区块运行过一次,它就不会在同一周期内再次运行。