Sponge 状态更新 - 2022 年 5 月 28 日

令人激动的消息! 终于,SpongeVanilla 1.18.2 实验版已经发布了,而且我们对整个项目取得的其他进展进行了总结。我想再次感谢我们的赞助商,你可以从我们的主页上看到这些赞助商和支持这个项目的捐助者,以及我们所有的贡献者和社区成员,感谢他们对开发和支持的贡献。

开发更新

用于 Minecraft 1.16.5 的 API 8.1

API 8.1

由于API 8已经推出了一段时间,我们又增加了一些核心规范中没有规定的功能,现在我们已经发布了API 8.1 :tada。一些重要的补充包括以下内容:

  • 新的依赖,MiniMessage 现在可以作为 SpongeAPI 的一部分用于文本模板的制作。关于如何使用 MiniMessage 的更多信息,请参见Kyori文档。
  • 世界管理的更新,包括命名世界和轻松抓取特定类 型的世界的能力。
  • 增加了能够获得刷怪蛋将产生的实体类型的功能。
  • 可以抓取物品栏标题和菜单(如果存在的话)。
  • 可以获得方块状态的字符串表示。

实现

1.16.5 SpongeVanilla:虽然我们对 1.16.5 的实现的稳定性越来越满意,但参考构建的进展仍在进行。在我们实现 SpongeForge 的同时,SpongeVanilla 的实现将继续进行。然而,我们知道你们中的一些人正在运行 SpongeVanilla 来测试你们的插件,或者仅仅是因为你们想暂时坚持使用 1.16.5!我们仍然对修复你所发现的问题感兴趣,所以如果你发现 1.16.5 的 SpongeVanilla 有问题,请继续告知我们!

1.16.5 SpongeForge: 我们已经看到选用 SpongeForge 用于 1.16.5 的服主数量变多了,这是一个很好的现象!我们已经发现了一些问题,并且我们会在可能的时候修复它,感谢那些在社区中发现 Sponge问题的人!虽然进展仍然落后于 SpongeVanilla,但我们的目标仍然是为 SpongeForge 1.16.5 提供长期的支持,与 Forge 的 LTS 保持一致。

我们需要人们继续测试这些构建,并让我们知道缺少什么。由于 Forge 在原版上所做的改变,我们用来支持原版 Minecraft 的 Sponge 的一些补丁在 Forge 上并不起作用。此外,由于事件在 Forge 中的工作方式,我们的一些事件可能不会被触发,如果你遇到这种情况,请给我们发送一个实现请求。

如果你发现了问题,请使用我们在Github上的问题跟踪器告诉我们!

用于 Minecraft 1.18.2 的 API 9

1.18.1的工作现在已经停止,1.18.2 成为API 9的当前目标。

API 9

我们现在已经发布了 SpongeAPI 9 :partying_face:! API-9 是一个渐进式的更新,它建立在 API-8 的基础上,并进行了一些调整,以更好地反映 Minecraft 如今的状况。

有一些小的破坏,包括:
世界的生成:由于 Minecraft 内部世界生成代码的实质性变化,我们无法将目前的代码库视为一个静态目标——我们发现Mojang在改变他们的世界生成管线方面相当无情,这让我们有些退步,因为 Minecraft 1.18.2 打破了我们在Minecraft 1.18.1 中有效的一些假设。因此,我们在API-9中对世界生成有部分支持。

然而,我们预计,我们目前的 API 将不得不为 1.19 而改变或删除,这将成为 API-10。 希望开发与世界生成互动的插件的开发者,如果发现我们的 API 不足以满足你的需求,不妨考虑使用我们的 VanillaGradle 和Mixins 工具链,直接使用一些反编译的 Minecraft 类。

我们不希望看到世界生成的 API 在每个版本上都出现问题——因此我们正在评估哪些东西可以被合理地抽象出来,当我们觉得 Minecraft 代码库本身已经稳定下来的时候,就会增加新的API。

其他变更

  • 部分标签与注册表脱离关系——如果你在注册表系统中使用 TagTypes,你将受到影响。
  • BlockStateProperty 对象不再有自己的注册表
  • 删除了一些弃用的内容,包括:
    • 键值 VANISHVANISH_IGNORES_COLLISIONVANISH_PREVENTS_TARGETING 已被删除,改为VANISH_STATE
    • DefaultWorldKeys.OVERWORLDWorldManager#defaultWorkd()——使用DefaultWorldKeys.DEFAULT 代替

一些变更可以在以下提交看到:

实现

1.18.2 SpongeVanilla 实验版现在可以进行测试了。
由于 Mojang 在 1.18.1 和 1.18.2 之间做了一些重要的代码修改,我们花了比预期更长的时间来开始制作这些构建。对于那些尝试过 1.18.1 版本的玩家来说,当转移到 1.18.2 版本时,应该不会有任何明显的差异,如果有差异,而你认为这些差异不是预期的,请让我们知道!

API-7/1.12.2 社区支持

随着我们在 SpongeAPI 8 和 9 方面的进展,我们正在将 SpongeAPI 7 过渡到一个更加基于社区的支持和维护的模式。我们最终将停止对 Minecraft 1.12.2 和 SpongeAPI 7 的所有支持,除非出现另一个紧急的安全问题,否则我们将不会为 Minecraft 1.12.2 发布更多的推荐构建,因为我们没有时间或人力来继续支持这个构建以及我们的 1.16.5 和 1.18.2。

然而,我们知道,1.12.2 在社区中仍然具有价值。我们仍然乐于审查和接受来自社区的合理的PR,即使在我们结束官方支持之后,这样的构建将通过我们的下载网站提供。事实上,一些好的补丁已经来自我们的社区,包括这个补丁,它增加了对漏洞的保护修复了失效的拾取事件修复了某些场景下的经验计算——我们很希望看到这种情况继续下去。

社区更新

Ore

为了配合我们早些时候将 Ore 的事先批准流程改为标记流程,我们已经删除了未经验证的插件构建上的警告。作为提醒,请注意在您的系统上下载和运行第三方程序的潜在风险,如果您发现可疑或恶意代码,请告知工作人员,以便我们进一步审查并在必要时采取行动。
https://github.com/SpongePowered/Ore/commit/76ebea97c08d67eeaaeb81fd2ce2cbce9892a211

Sponge 的状态

为了庆祝 1.18.2 SpongeVanilla 实验版的发布,我们想再举办一次社区聚会,讨论目前的状况和正在进行的开发工作。与其说我们要举行一场盛大的歌舞表演,不如说我们想听听社区的意见,获得你们的反馈,并尽可能地回答问题。

请于2022年6月25日 21:00(UTC)在 Twitch 和我们的 Block19 服务器 block19.spongepowered.org 加入我们。