Table of Contents
常见问题:专家模式
这是用户常见问题的“专家/技术性”拓展。
兼容性
对 Bukkit/Spigot/Paper 的支持进展得怎样了?
Fabric Loader 0.5.0 版本的开发分支上有一些在仅在 Paper 上运行 Fabric Loader 的实验性的功能,但是有很多关于 Bukkit API 的缺陷的警告,比如将方块、物品硬编码在 enum 中,导致很难支持模组中的方块和物品。这个功能可能永远不会被正式支持了,而更应该用于满足好奇心和特殊情况。
可以让 Fabric 与 Sponge 一起运行吗?
实现这个功能最好的方法是将 SpongeCommon 和 SpongeVanilla 的修改版本移植为实现了 Sponge API 的 Fabric 模组。这么做比较容易,因为 Fabric 的核心使用了 SpongePowered Mixin 的复刻,但是映射的差异又让问题变得复杂,可以这么说。
为什么 Fabric API 会影响 OptiFine 光影?
Fabric API 使用的渲染补丁 Indigo 假定(出于性能和代码简化的原因)原版的顶点格式保持不变。模组通常不会改变它,然而光影模组和类似的模组经常是个例外。因此,在保持原样的前提下,Indigo 和它的兼容性不好。
已经在研究这方面的解决方案了,但是还不能正常使用。此外,一些非官方的模组项目也在尝试自己开发一个。目前的变通方法在有实际使用了 Fabric 的渲染 API 的内容模组的情况下是行不通的。
兼容性(关于旧版本)
到底那些版本可以使用 Fabric?
理论上,没有什么能阻止你在任何版本的 Minecraft 上,在任何混淆层下,运行 Fabric 的模组加载器,一直到 c0.0.11a 。然而,这些版本大多没有 Yarn 映射──因此,制作模组的过程变得……有点儿复杂。
安装了模组的老一些的 Minecraft 版本可以使用 Fabric 吗?
可以!一般来说,所有的 JAR 模组,比如老版本的 OptiFine 和 Better Than Wolves,应该都能正常工作,并且允许进行与未修改的 Minecraft 版本相同程度的修改。但是,需要做一些一些特别说明:
对于大多数 1.13 之前的模组加载器,你必须在 Fabric Loader 中启用兼容模式,方法是添加 JVM 参数 -Dfabric.loader.useCompatibilityClassLoader=true
。
对于运行 Minecraft Forge:
- 1.6 ~ 1.12.2:虽然 Fabric 曾经运行在 LaunchWrapper 之上,但这一功能目前没有得到维护,需要重做。
- 1.3.1 ~ 1.5.2:目前没有计划。
- 1.2.5 及以下:正常工作,就像 ModLoader 一样。
对于运行 ModLoader:没有已知的问题。
原则
既然有 MCP 和 Spigot 的映射,为什么还要创建自己的?
对于 Mod Coder Pack(MCP):
- MCP 的映射不是每个非 release 的 Minecraft 版本都会更新。
- MCP 的映射有一个更新过程,我们认为对代码审查不够开放,他们使用 IRC 机器人提交 而不是合并请求系统。(当然,这主要是偏好问题。)
对于 Spigot:
- Spigot 的映射只包括服务端,而且非常不完整。
- Spigot 的映射有与 MCP 类似的许可问题。