前言

总所周知,Minecraft的Modloader在高版本出现了两级分化的情况:

一派是新兴的轻型Modloader——Fabric,一派是守旧的大型Modloader——Forge。

每个人都可以根据自己的喜好做出自己的选择,这没有绝对的对错。

但,比起开发相对复杂困难的Forge Mod而言,Fabric更加适合新手开发者。

所以,这篇教程是为了照顾新手的Fabric Mod开发教程。

需要一点点编程基础,这是正常的,因为Mod开发永远避免不了接触代码(可以自行翻阅教程)。

由于自身实力有限,可能某些地方的讲解有误或有所疏漏,还请各位指正。

(由于设备的语言是繁体中文,故某些文本内容请以实际情况为准)

1 启航前的准备——IDE的配置与安装

1.1 序

“在那个没有交通工具的年代,能到达的距离无非就是双脚能走过的距离。

后来,我们驯服了马匹、发明了马车,到现在一系列能够上天入地的各类交通工具。

而Mod开发,只靠一双脚,是走不远的。”

所以,我们需要为Mod开发准备一些工具。

这些工具被称为IDE(Integrated Development Environment ,即集成开发环境),IDE的存在能让我们的开发变得更为轻松快捷。

由于只使用过微软的Visual Studio Code(以下简称VSC),所以此教程就以VSC作为IDE进行讲解。


1.2 IDE的下载与安装

1.2.1 下载

首先,你需要前往这个网址获取最新版本的VSC(看不懂英文可以使用翻译器,这里推荐使用DeepL,相比被墙且不准确的Google翻译的翻译质量更高),下载对应你的操作系统(OS)的版本(这里使用的是Windows系统+Chrome演示)。

Fabric Mod开发教程-01 环境-第1张图片

点击(Download for <你的操作系统>)按钮即可下载。

当然,由于一些特殊的原因,下载速度通常会慢如龟爬。

所以,让我们使用镜像源来加速下载吧。

打开“下载”,找到刚才创建的下载项目(注:具体下载链接以实际情况为准):

Fabric Mod开发教程-01 环境-第2张图片右键文件名下面的地址,点击:复制网址链接。

然后将这段链接粘贴到浏览器的链接输入框中:

Fabric Mod开发教程-01 环境-第3张图片

将链接前面的az764295.vo.msecnd.net替换成vscode.cdn.azure.cn,然后按回车。

等待下载完成。

1.2.2

打开安装包。

如果弹出防火墙安全提示,点允许。

如果弹出了以下界面:

Fabric Mod开发教程-01 环境-第4张图片

这个页面的意思是:这个安装包只能为当前用户安装,如果需要为所有用户安装请下载系统安装包。

我们不管它,直接确定。
然后,是许可协议环节:

Fabric Mod开发教程-01 环境-第5张图片

这个协议可以读,也可以不读,选择权在你,

这个协议的内容和我们的Mod开发没有什么太大的关系。

依次点击“我同意该协议”、“下一步”。

然后是安装自定义环节,可以依照自己的喜好开关:


Fabric Mod开发教程-01 环境-第6张图片

将“通过 Code 打开”操作添加到 资源管理器文件/目录上下文菜单:即鼠标右键一个文件/目录时会出现这个选项。推荐开启,可以快速打开项目。

Fabric Mod开发教程-01 环境-第7张图片将 Code 注册为受支持的文件类型的编辑器:将VSC作为默认的文件编辑器,取代记事本之类的工具。推荐打开,因为VSC除了能写Mod以外还有很多功能。

添加到PATH(重启后生效):将VSC自带添加到cmd指令寻找路径(即PATH)中,这样就可以直接通过cmd用简短的命令来调用VSC了。当然如果了解环境变量的话手动配置也是可以的。

接下来就是安装传统艺能了,一个个点吧。

不过需要声明一下:除非对自己的系统盘内存有信心,否则不建议安装到系统盘,因为Mod开发时获取依赖会下载文件到系统盘(特别是Forge【虽然这是Fabric教程】,Forge会下载近2G的依赖)。

安装完毕后,我们还需要安装相应的开发拓展才能开始开发。不出意外的话,你看到的界面应该是类似这样的:Fabric Mod开发教程-01 环境-第8张图片

如果设备设置的默认语言不是英语的话,右下角应该会有一个安装对应语言的提示,点击确定即可(这取决于你,如果听其他老一辈开发者的话,就点否吧)

(以下内容改自Fabric Wiki:原教程

点击左侧的拓展分页(图标以实际情况为准,可以自己拿鼠标在左侧都扫一遍):Fabric Mod开发教程-01 环境-第9张图片

然后你就可以看到拓展页面了:

Fabric Mod开发教程-01 环境-第10张图片搜索以下的任意一个拓展包安装即可:

1.3 正式启程

“造车要有钢板,造电路板需要有基板。

没有地基的房子是建不起来的,Mod开发也是如此。”

1.3.1 琐事

当万事俱备时,终于可以正式开始Mod编写之旅了。

现在前往Fabric的Github仓库获取Mod项目模板吧:

Fabric Mod开发教程-01 环境-第11张图片

两个链接均可,不过更推荐第二个,因为多数人是没有Github账号的(有的甚至完全没有接触过/Github被墙),没法用Github的仓库生成器。

然后会打开一个这样的页面:

Fabric Mod开发教程-01 环境-第12张图片

可以对照下图:


Fabric Mod开发教程-01 环境-第13张图片

至于下面的Advanced Options(高级选项)……

第一个是是否使用Kotlin作为编写语言,但这个教程使用Java作为编写语言,所以请勿开启。

第二个是Datagen,即是否自动完成对Datagen【数据生成器】的配置,推荐开启,尽管现在可能没用,但以防万一。

第三个是分割客户端与通用代码,可以防止代码在错误的地方被地调用(后面会提到)。半推荐:如果你没有Java基础,最好关掉。


然后,点击最下面的的蓝色大按钮下载模板到你的设备:Fabric Mod开发教程-01 环境-第14张图片

接下来,解压你下载好的压缩包,右键->通过 Code 打开(当然,要是你在安装的时候取消了,这里是没有这个选项。那就在VSC里面依次点击左上角的文件->打开文件夹)。

Fabric Mod开发教程-01 环境-第15张图片

然后,耐心等待项目导入完成。直到你的“Gradle for Java”终端(如果下方栏是空的就按Ctrl + `)显示这行字样(PS:由于演示偷懒用的是其他的开发项目,所以输出不完全一样系正常现象):

Fabric Mod开发教程-01 环境-第16张图片

如果输出的字样是CONFIGURE FAIL心脏骤停,那就需要排查原因了。

错误日志会被输出到上方(看不懂就翻译)

常见的原因有以下几种:

  • 访问超时:通常会显示多个链接;然后显示:Fail to setup Minecraft(安装Minecraft失败)、Can't find file(无法获取文件)之类的。

  • 反混淆失败:显示yarn、mapping之类的文本;然后说显示:某个文件不存在。

以上两种原因重启IDE多试几次就可以了,如果项目导入实在太慢,可以参阅FabricMccn

  • 进程紊乱:显示文件被占用;先关闭IDE,然后打开任务管理器,把所有名称为“OpenJDK Platform binary”或者“Java”之类的进程结束掉(按右下角的按钮)。

任务管理器开启方法:

  1. (仅限Windows 11以下)右键任务栏【就是显示时间的那个栏】空白处,点击“任务管理器”【因为系统是繁中所以显示为“工作管理員”】。

  2. 按下Ctrl+Shift+ESC。

Fabric Mod开发教程-01 环境-第17张图片

Fabric Mod开发教程-01 环境-第18张图片

1.3.2 项目结构概述

如果没有做修改的话,项目现在的文件结构大概是长这样的(不分割客户端与通用代码):

├───.github

│   └───workflows

├───gradle

│   └───wrapper

└───src

    └───main

        ├───java

        │   └───com

        │       └───example

        │           └───mixin

        └───resources

            └───assets

                └───template-mod

或者这样的(分割客户端与通用代码):

├───.github

│   └───workflows

├───gradle

│   └───wrapper

└───src

    ├───client

    │   ├───java

    │   │   └───com

    │   │       └───example

    │   │           └───mixin

    │   │               └───client

    │   └───resources

    └───main

        ├───java

        │   └───com

        │       └───example

        │           └───mixin

        └───resources

            └───assets

                └───template-mod

先来看根目录下的文件:

  • build.gradle —— 项目的核心,是它使得整个项目能够被正常导入与运转,其内部的内容由Groovy编写(除了处理依赖关系之外,万万不得碰这个文件!因为这个文件一旦被修改,整个项目需要重新导入【虽然不用重启IDE,但每次导入都要花上几分钟非常难受啊!】)。

  • (总之,.gradle后缀的文件少碰就行了)

  • gradle.properties —— 项目的配置文件,会在项目导入时被读取。

  • settings.gradle —— Gradle插件的获取途径,一般无需修改。

  • .gitignore —— Git的忽略项(该教程不会提及Git的使用),无需修改。

  • LICENSE —— Mod的许可协议,请替换成你自己的协议,或者直接删除。

  • gradlew.bat 和 gradlew —— Gradle命令执行程序,无需修改。

.github文件夹可以删去。

gradle/wrapper文件夹:

  • gradle-wrapper.jar —— 用于自动下载项目所需要的Gradle,无需修改。

  • gradle-wrapper.properties —— 用于项目所需要的Gradle,一般无需修改。

src/main/java/<包名>文件夹用于存放所有的代码。

src/main/resources文件夹:

  • fabric.mod.json —— Mod的基础信息。

  • <ModID>.mixins.json —— Mod的Mixin信息(会在更后面的教程提及)。

src/main/resources/assets文件夹,相当等于一个资源包,但是没有pack.mcmeta。

src/main/resources/data文件夹(没有可以自行创建),相当等于一个数据包,但是没有pack.mcmeta。

1.3.4 Gradle任务

介绍的差不多了,还差基础的一个部分没有讲:Gradle任务。

所有任务都被放在这个大象图标的分页中:

Fabric Mod开发教程-01 环境-第19张图片

点击Tasks/build/build,执行构建操作。

Fabric Mod开发教程-01 环境-第20张图片

然后,你的根目录下就会多出一个build文件夹。

打开build/lib文件夹,将刚刚构建好的Mod放入Minecraft试试。

然后进入游戏……


嗯?什么都没有发生?

并不是,请立即关闭正在运行的Minecraft,然后用VSC打开.minecraft/log/lastest.log:


按下Ctrl+F输入“Hello Fabric world!”进行搜寻——没错,多了一行日志!“Hello Fabric world!”。

据说输出Hello world能够为开发之路带来好运,所以,每到一个不同的环境/语言中时,一定不要忘记。


(另请参阅:Fabric Wikidevelop | Fabric