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