User Tools

Site Tools


zh_cn:faq:expert

常见问题:专家模式

这是用户常见问题的“专家/技术性”拓展。

兼容性

对 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 类似的许可问题。
zh_cn/faq/expert.txt · Last modified: 2023/01/01 04:23 by lei64