概述
SpongeForge 就像 Reborn Core、CoFH Core、AutoRegLib 等各种前置模组一样,实际上是所有 Sponge 插件的前置模组。
有了 SpongeForge,Sponge 插件等同于 Forge 模组。所以,安装 Sponge 插件方法和安装有前置的模组一样,安装 SpongeForge 这个前置后就可以安装插件,文件夹也是同样的 mods 文件夹。
由于 SpongeForge 有一个 CoreMod(1.12.2 及以下) 或 IModLocator(1.16.5 及以上),部分地改变了 Forge 读取模组的方式。所以有 SpongeForge 时 Sponge 插件会被认为是 Mod,否则 Forge 会扫描插件包,但是检测不出来 Mod,游戏也不会像其他模组缺失前置的时候一样崩溃。
虽然此处只提到了 Forge 是 SpongeForge 的前置,实际 SpongeForge 名义上还有个前置,是 SpongeAPI。
SpongeAPI 实际上和 SpongeForge 是在一个包里面的。SpongeAPI 作为模组存在是为了让插件能够将其辨认为前置。
特点
SpongeForge 和 BukkitForge、MCPC+、CatServer 等 Bukkit 与 Forge 的合体服务器最大的不同就是 SpongeForge 可以用于客户端。所以单机或者局域网联机时,玩家也可以使用插件的功能,插件作者测试起来也比较方便。如果服务器安装 SpongeForge 但是玩家没有安装,SpongeForge 和插件照常生效。有效的插件以服务器安装的插件为准。
Sponge 同时也有一些辅助功能。有一套事件追踪系统可以让插件实现安全保障。它也搬运了 PaperSpigot 的一些修复 Minecraft 重要漏洞和性能问题的补丁(一般的 Forge 与 Bukkit 的共生体没有,因为 Paper 所有补丁加起来对 Forge 模组兼容伤害太大)。
版本
SpongeForge 由于构建更新较快,一般会发出临时稳定版并推荐玩家使用临时稳定版本。最新版本也可以使用,但一般用于测试问题。
SpongeForge 的版本号里面有一个推荐 Forge 版本,但这实际上无关大雅,这些 SpongeForge 实际上也支持版本更新的 Forge。
SpongeForge 不同版本实现的 Sponge API 版本不同:
Sponge 支持 NeoForge 的版本请见 SpongeNeo。
历史
SpongeForge 和 SpongeAPI 在 2014 年 9 月 Bukkit 因 DMCA 弃坑后诞生。最早是 SpongeAPI 的唯一官方实现,由 SpongePowered 组织维护。另一个基于 Mod Coder Pack,即被反编译的 Minecraft 源代码实现 SpongeAPI 的 Granite 在 2015 年并入 SpongePowered,于是两部分共享的代码变成了 SpongeCommon,Sponge 改名 SpongeForge,而 Granite 改名 SpongeVanilla。
SpongeForge、SpongeVanilla 和 SpongeNeo 是 SpongePowered 仅有的官方实现,同时还有其他非官方的例如 LanternServer 的实现。