Spongie 的 7 岁生日(状态更新:2021.9.8)

首先带来好消息,今天是 Spongie 的七岁生日!与以往一样,我们要感谢社区这些年来的支持。正是你们在这里充满热情的创造让这个项目持续运作,我们为此深表感谢!让我们继续了解最新的状态更新!

大声疾呼:赞助商和捐赠者

正如我们之前所做的那样,向那些现在或过去在经济上支持我们的人致敬是很重要的。 谢谢!你们捐款的 100% 都用来保证我们的基础设施正常运转。

我们也要对我们现在的赞助商表示感谢,Bisect HostingMC Server HostingApex Minecraft HostingCreeperHostJetBrains 还有 YourKit 都向我们提供了经济支持或免费使用其工具来支持我们成为最伟大的 Minecraft 插件平台的志向!我们现在的赞助商可以在我们的主页看到,也可以在我们的下载页找到。如果你想赞助我们,可以在这里找到更多信息。

如果你想为我们的事业捐一些款(在爱和感激之外),是的,我们是有一个 Patreon。如果你不想订阅但是愿意通过 PayPal 捐款,你可以捐至 donations@spongefoundation.com。如果你不能捐赠,不用担心!你可以帮助我们测试、反馈或在 Discord 中鼓励我们!

Sponge 平台更新

API-8

如你们所知,我们已经为 API-8 制定了“软冻结”政策,但是我们仍在继续对 API 进行有目的的变更,它们总是出于以下原因:

  • 命名改进:一些方法的名字有些奇怪,和它们的实际效果不符
  • 实现问题:一些 API 提议在实践中证明几乎无法实现,一个例子是 UserManager,将返回类型改为 CompletableFutures,可以让我们在服务端线程外执行 IO。通过修改我们自己需要的地方,可以为每个人创建更好的服务端平台,甚至在某些情况下提高性能!
  • 用户反馈:针对插件开发者的反馈进行了一些更改,但是此窗口正在关闭——如果你想变更某些内容,是时候说些什么了
  • SpongeForge:为了让 SpongeForge 继续开发,我们必须变更一些东西——尽管主要是在插件加载上
  • (即将推出)资源包取代资产管理器(AssetManager)以更灵活的方式提供插件资源
  • 更改插件元数据文件 plugins.json(现在是 sponge-plugins…json)以更好地支持 SpongeForge 实现——详情见下文

我们元数据文件格式的变更

如果你在跟进最新构建,你会注意到所有的 API-8 插件都无法使用,我们升级了 Sponge 插件元数据格式,如下所示:

{
  "loader": {
    "id": "java_plain",
    "version": "1.0"
  },
  "license": "MIT",
  "mappings": "1:2:3",
  "plugins": [
    {
      "id": "test",
      "entrypoint": "org.example.Example",
      "name": "Test",
      "description": "Just testing things...",
      "version": "1.0.0",
      "branding": {
        "logo": "images/example_logo.png",
        "icon": "images/example_icon.png"
      },
      "links": {
        "homepage": "https://example_homepage.com",
        "source": "https://example_source.com",
        "issues": "https://example_issues.com"
      },
      "contributors": [
        {
          "name": "Testy Tester",
          "description": "Lead Developer"
        }
      ],
      "dependencies": [
        {
          "id": "test",
          "version": "0.1.0",
          "load-order": "before",
          "optional": false
        }
      ],
      "properties": {
        "banana": "man"
      }
    }
  ]
}

我们的测试插件有着更完整的例子,我们指定了多个带有部分“全局”(继承)元数据的插件

我们这样做是为了我们可以正确的支持 SpongeForge 的模组,模组的元数据文件与我们现在的格式相近。插件开发者需要更新他们的 API-8 的插件来遵循这种格式——如果你使用 SpongeGradle,更新到 SpongeGradle 2.0 并且使用我们的插件模板 作为参考更新你的构建脚本,注意,main-class 现在是 entrypoint 了。

Ore 已经更新为可接受新的元数据格式,需要注意的是已经不能再上传使用旧格式的 plugin.json 的插件。

API-9

为了准备好 API-8,我们没有在 API-9 上花太多时间,但是在 API-8 上所做的工作都会提供给 API-9 和 1…17.1

插件开发者需要注意的要点是,API-9 面向 Java 16,与 1.17.1 一致。然而,在大多数情况下,针对低版本 Java 的 API-8 插件应该可以在 API-9 上正常运作(我们希望未来版本的 API 也可以良好地向后兼容)

用于 1.16.5 的 SpongeForge

很多人一直在等待,我们知道,SpongeForge 的开发已经开始,感谢 Zidane 和 zml 的巨大努力,我们让 SpongeForge 在开发和生成环境中运作了!

image

虽然这是一个值得欢呼的理由,但请注意,我们仍然处于开发的早期阶段–虽然我们确实有高度实验性的构建,但我们已知它们不能与一些流行的模组一起使用——如果你尝试运行 1.16.5 的 SpongeForge 并发现有问题,请让我们知道我们期望的稳定构建还需要一些时间,但是我们希望你对我们在这里取得的进展感到兴奋。

用于 1.16.5 的 SpongeVanilla

说到这里,我们想分享一下我们认为1.16.5版的 SpongeVanilla 会发生什么。我们希望为 1.16.5 发布 SpongeVanilla 的 “参考构建”,这主要是针对插件开发人员的,他们可以针对这些插件进行测试,以期待 SpongeForge 的出现。

虽然任何人都可以使用它们,而且我们计划确保它们是稳定的,但是一旦API-8发布,我们对 SpongeVanilla 的关注点将是适用于 Minecraft 1.17.1 的 SpongeVanilla,因为那是最新的原版版本,我们不准备在 1.16.5 上发布针对 SpongeVanilla 的推荐构建。

无论如何,为了支持我们的 SpongeForge 工作,并认识到 API-8 尚未发布的事实,1.16.5 目前确实仍然是我们的重点。如果你正在测试和使用 SpongeVanilla 1.16.5,请继续给我们反馈。

用于 1.17.1的 SpongeVanilla

综上所述,我们的重点并不在这个构建上,我们希望在我们稳定了 API-8 并为 1.16.5 制作了一个参考版本之后,再来更新 1.17.1 的构建。然而,一旦如此,我们希望能尽快为1.17.1生成稳定的构建。我们希望为 Minecraft 1.17.1 发布推荐的构建版本。我们对 SpongeVanilla 的最终目标是针对最新版本。

实验性构建下载

所以,说了这么多,我们还没有准备好宣布稳定的 1.16.5 和 1.17.1 版本。但是,不要绝望,因为我们确实有实验性的版本可以用于 SpongeVanilla 和 SpongeForge。像往常一样,当使用实验性版本时,请定期备份你的存档请准备好迎接错误,因为这些版本并不打算用于生产。

我们还在等待 SystemOfADownload 正式运行(我们快到了,现在只是在准备前端),请在下面选择你想下载的平台,点击最新的构建并下载 universal 包。

SpongeForge 1.16.5 实验性构建
SpongeVanilla 1.16.5 实验性构建
SpongeVanilla 1.17.1 实验性构建

我们知道你们都在等待稳定的 1.16.5 和 1.17.1 版本,我们希望关于项目的状态更新对了解正在发生的事情有帮助。如果你想看看过去7年的开发情况,请看我们最新的可视化:

https://www.bilibili.com/video/BV1wg41157HC/

最后:生命终结通知:API-7 和 Minecraft 1.12.2

你们中的大多数人都会注意到,我们最近对 Minecraft 1.12.2 和 API-7 的支持充其量只是打了个补丁。现在是我们放弃对我们的旧版本的海绵的所有支持的时候了!

现在,我们的政策是,核心团队将修复发生的严重问题,并将鼓励和审查来自社区的拉取请求,特别是针对 SpongeForge 的请求。不幸的是,我们没有足够的开发者人力在 1.12.2 上花费很多时间——我们所有人都将注意力转移到了现代 Minecraft 上,而且,说实话,1.12.2 的代码库与我们现在的代码库有很大的不同。诊断 1.12.2 构建中的一些问题将占用 1.16.5+ 的宝贵时间,我们真的希望看到它尽快稳定下来。

我们打算在我们的下载页面恢复运行后,发布 API 7.4 和推荐构建 7.4.0,作为 7.3 以来所有修改的滚动发布,其中大部分是由社区提供的。一旦这些版本被发布,就不会再有针对 API-7 和 Minecraft 1.12.2 的 Sponge 官方版本了。

最后,一旦我们有了适用于 SpongeForge 1.16.5 的可用构建,我们就会完全结束所有的支持,当那发生时,我们会单独发布一个公告。

1 Like