Sponge状态更新:2022年1月8日——SpongeAPI 8发布!

大家好!今天,我们有一些激动人心的消息要与大家分享,即SpongeAPI 8的发布以及将要到来,但首先我们有些话要对我们的赞助商说。

致敬:向Sponge的赞助商和捐赠者!

我们目前的赞助商,Bisect Hosting, MC Server Hosting, Apex Minecraft Hosting, Minecraft Index, CreeperHost, JetBrains 以及 YourKit 和那些支持我们的人, 在成为最棒的Minecraft插件平台这个目标上给予了我们免费的开发工具以及经济支持。我们目前的赞助商可以在我们的主页,以及我们的下载页面上找到。如果你想赞助我们,你可以在这里了解更多

如果你觉得你想为我们的事业捐一点钱(除了你的爱和感激之外!),我们也有一个Patreon,你可以订阅它来支持我们。如果你不愿意订阅,但想通过PayPal捐款,你可以把捐款寄到donations@spongefoundation.com。如果你不能捐款,也不要担心!你可以通过测试构建来帮助我们。你可以通过测试构建,提供反馈,或者当我们在我们的Discord频道谈论东西时提供鼓励来帮助我们!

Log4J 漏洞 (Log4Shell)

在聊到我们激动人心的新闻之前,我们需要谈谈大约一个月前震撼了Java世界的Log4J漏洞。

正如你现在很可能知道的那样,Minecraft和许多更广泛的世界被Log4J漏洞震惊了,这个漏洞被称为Log4Shell。我们迅速采取了行动,试图保护服务器和客户端,并对我们的1.12.2版本发布了多个更新,以更新服务器上的Log4J。我们最近发现,我们为Minecraft 1.12.2的Sponge实现提供的H2驱动版本也存在漏洞,我们后来也对这些版本打了补丁。

如果你还在运行1.12.2的服务器,我们强烈建议你将Sponge更新到7.4.7版本,将Forge更新到2860版本(如果可用)。这是一个极其严重的漏洞,所以请尽快更新。

我们将监控这一情况,并在必要时发布1.12.2的后续推荐版本。我们最近还更新了1.16.5及以后版本的log4j(我们在1.16.5/1.18.1版本中不包括H2,所以不需要更新)。

Minecraft 1.16.5 & API 8

发布API 8.0

我们终于做到了! 经过多年的努力,我们已经为Minecraft 1.16.5发布了API-8。有无数的变化,太多了,无法在此详细说明,我们会在我们的javadocs中为新加入的开发者指出。我们也已经开始更新我们的文档页面,但这是一个巨大的工程,所以请注意,可能需要一点时间来更新到最新版本。

虽然把 "重大变化 "列表放在这里是我们的惯常做法,但现实是,所有的插件都将不得不以某种方式进行改变。然而,一些较大的变化是。

  • 插件元数据文件现在是sponge_plugins.json,不再从插件注释中生成,现在只包含插件ID。
  • 生命周期事件现在完全改变了,现在的事件会告诉你在某一点上对你的期望,而不仅仅是 “pre-init”、“init”、"post-init "等等。
  • 一个完全革新的命令系统,支持客户端的命令补全。
  • 文本API现在由Kyori Adventure library提供。
  • 自定义数据已经被完全改造,简化了注册,并且能够使用DataProviders来映射外部数据源的键。
  • 替换了注册表系统,与Minecraft注册表深度融合
  • 对客户端有更好的感知(awareness)
  • Sponge Configurate已经更新到4.1版本
  • 还有很多,很多

请注意文档上的迁移指南,其中谈到了一些你需要注意的较大变化。

你可能想知道为什么我们的目标是1.16.5的API 8,即便Minecraft 1.18已经发布了。这是因为Forge的人仍在继续支持1.16.5作为他们的LTS(长期支持版本),所以这意味着我们预计大多数模组将以1.16.5作为稳定的开发基础,而1.18仍在持续变化中。


(因链接敏感问题,视频请前往原网址查看)

目前还没有基于API-8的SpongeVanilla和SpongeForge推荐构建版本

对不起,服主们,你们还得再等一会儿才能得到推荐的构建版本。今天的里程碑是针对开发者的–我们保证不再破坏API,我们已经发布了第8版API。但是,我们对API的实现还达不到我们的期望,我们认为它的细节略显粗糙,需要再多打磨一下。

然而,我们确实有1.16.5版本的实验/beta状态的构建,所以请继续阅读

即将到来的对Sponge文件夹/目录的改变

将目前而言,你可以将插件安装到/mods目录中,也就是说,与你安装forge模组的地方相同。这源于Sponge的本质实现方式,Sponge仅仅被视作是Forge的一个模组。虽然随着我们的开发愈发深入并且有了SpongeVanilla,但这一点从未改变。

然而,随着 1.16.5 及以后版本的 Forge 的变化,我们发现我们不得不重新审视这个决定。虽然这一点还没有实施(这也是为什么我们还没有发布推荐版本的部分原因),但今后插件将被放在/plugins目录中。并且还有其他的目录变化,以便更干净地分开Forge和Sponge。

要跟踪这一变化的进展,请看这个Pull Request

基于 1.16.5 的 SpongeVanilla: 参考构建(Reference builds)

译者注:指不稳定构建,仅作参考用

关于 Vanilla,我们知道当 1.18 出来的时候,人们不会想在较旧的 1.16.5 版本上运行他们的服务器,所以我们不会在 SpongeVanilla 上的 API-8 构建中投入太多精力。然而,我们将持续的对 SpongeForge 进行构建,当然 SpongeVanilla 1.16.5 也会被构建。我们想到插件开发者会对这些构建特别感兴趣,以便测试他们的插件,为在 SpongeForge 上的运行做好准备。

SpongeVanilla 构建可以在我们的下载网站上找到

SpongeForge on 1.16.5

我们确实有针对 1.16.5 的 SpongeForge 的高度实验性构建,但是我们知道我们还有一些路要走,尤其是在与 mods 的兼容性方面。我们知道你们中的许多人都遇到了问题,请知道我们仍在努力解决它!

实验性的SpongeForge构建可以在我们的下载网站上找到

Minecraft 1.17.11.18 & SpongeAPI 9

Forge 正在放弃对 1.17.1 的支持,将 1.16.5 作为他们的 LTS (长期维护版本) 以及将 1.18.1 作为 Minecraft 的新版本,因此我们跳过 Minecraft 1.17.1 并将 1.18.1 作为新的目标版本是有意义的。这意味着API 9将用于Minecraft 1.18。

我们预计API 8和API 9之间不会有很多会破坏插件的变化,但有一个明显的例外:世界生成。我们预计,在接下来的几个API版本中,我们与Sponge一起发布的世界生成API将继续发生变化,因为很明显,Mojang对世界生成设计的大更改还没有完成,这会打破我们设计的任何API的假设。任何使用世界生成API的人都应该知悉,在不同的API大版本之间,世界生成可能会有明显的变化。

然而,我们确实为你提供了实验性的SpongeVanilla构建,这要感谢@zml和@Morpheus让我们的工具运转起来,调整了我们的代码以适配新的版本! 你可以在这里得到它们,然后请,告诉我们它们有多糟糕!

Minecraft 1.12.2 & SpongeAPI 7

API 7.4

我们最近发布了 SpongeAPI 7.4,供任何仍然希望以 Minecraft 1.12.2 为目标的开发者使用。SpongeAPI 7.4 是我们 API 7 系列的 最后一个 API 版本。它包含了以下的更新。

  • 在SaveChunkEvent中添加了`getWorldUUID’方法。
  • 将配置(Sponge-configurate)提升到3.7.2
  • Score中添加了缺失的锁定字段
  • 增加缺失的记分牌标准
  • 实体标签暴露(expose)

你可以从我们的Maven repo中获取。

请注意,API-7现在是终结期。我们不会再为我们的API的第7个版本发布任何API更新。

SpongeForge 和 SpongeVanilla 的推荐版本 7.4.7

我们还发布了用于 Minecraft 1.12.2 的 SpongeForge 和 SpongeVanilla 的推荐版本。

你可以从我们的下载站点获得这些推荐版本。

API 7 和 Minecraft 1.12.2 的寿终正寝了

虽然Sponge团队已经有一段时间没有在API 7和Minecraft 1.12.2上工作了,但现在是我们正式挥手告别它们的时候了。它是我们寿命最长的版本,并且为我们提供了良好的服务,但随着我们进入API 8及以后的世界,我们无法继续支持我们的旧版本。

SpongeAPI 7将不再发布,它现在将被认定为寿命终结。我们会考虑合并那些提供修复的开发者的PR,然后在我们的下载页面上提供这些修复。我们将跟踪在Log4J和其他相关库中发现的各种漏洞,但我们将不再关注7.x版本的构建。我们现在的重点是完全放在API 8+上。

Sponge下载

我们再次拥有了我们的下载网站! @gabizou 在 SystemOfADownload(下载系统) 上努力工作,使我们得以使用一个新的下载索引器来替代我们之前坏掉的索引器,我们已经更新了下载网站来让它正常工作! 我们自1.8.9以来的所有版本都可以通过下载网站获得。

我们的下载站点和以前一样,可以在同一个地方找到。SpongeDownloadshttps://dl.spongepowered.org

目前,我们只支持通过我们的网站下载 SpongeVanilla 和 SpongeForge,但我们希望随着时间的推移也能将我们的其他产品加入到这个系统中。

Sponge 文档

随着API 8的发布,我们现在需要把注意力转向Sponge文档。Sponge文档需要一些关爱,以使它能够与 API 8 及以后的版本匹配! 请在 #docs channel in Discord 中与我们讨论需要做什么!

另外,我们在文档翻译方面也有一些好消息!

Crowdin慷慨地为我们提供了一个企业计划,而我们期望能够使用它。事实上,我们计划很快就会推出这个计划。如果你是以前的翻译者,你会收到@Inscrutable发来的关于迁移到新计划的电子邮件。如果你是首次参与我们的文档翻译,请到我们的Discord服务器上的#docs频道来和我们交流,我们会帮你安排好的

请注意,旧的SpongeDocs Crowdin设置将很快弃用并归档。

写在最后的话

虽然已经过了很长时间,但我们终于推出了 API 8,并为开发者做好了准备!我们知道服主们对新版本的推荐构建很期待,我们希望能够尽快地开始提供这些构建。同时我们预计 API 9 将不远的未来为那些期望使用 1.18.1 版本服主们提供支持。

冲! 我们希望很快有更多的好消息给你!