我的世界Fabric Mod开发教程-01 环境
前言
总所周知,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演示)。
点击(Download for <你的操作系统>)按钮即可下载。
当然,由于一些特殊的原因,下载速度通常会慢如龟爬。
所以,让我们使用镜像源来加速下载吧。
打开“下载”,找到刚才创建的下载项目(注:具体下载链接以实际情况为准):
右键文件名下面的地址,点击:复制网址链接。
然后将这段链接粘贴到浏览器的链接输入框中:
将链接前面的az764295.vo.msecnd.net替换成vscode.cdn.azure.cn,然后按回车。
等待下载完成。
1.2.2
打开安装包。
如果弹出防火墙安全提示,点允许。
如果弹出了以下界面:
这个页面的意思是:这个安装包只能为当前用户安装,如果需要为所有用户安装请下载系统安装包。
我们不管它,直接确定。
然后,是许可协议环节:
这个协议可以读,也可以不读,选择权在你,
这个协议的内容和我们的Mod开发没有什么太大的关系。
依次点击“我同意该协议”、“下一步”。
然后是安装自定义环节,可以依照自己的喜好开关:
将“通过 Code 打开”操作添加到 资源管理器文件/目录上下文菜单:即鼠标右键一个文件/目录时会出现这个选项。推荐开启,可以快速打开项目。
将 Code 注册为受支持的文件类型的编辑器:将VSC作为默认的文件编辑器,取代记事本之类的工具。推荐打开,因为VSC除了能写Mod以外还有很多功能。
添加到PATH(重启后生效):将VSC自带添加到cmd指令寻找路径(即PATH)中,这样就可以直接通过cmd用简短的命令来调用VSC了。当然如果了解环境变量的话手动配置也是可以的。
接下来就是安装传统艺能了,一个个点吧。
不过需要声明一下:除非对自己的系统盘内存有信心,否则不建议安装到系统盘,因为Mod开发时获取依赖会下载文件到系统盘(特别是Forge【虽然这是Fabric教程】,Forge会下载近2G的依赖)。
安装完毕后,我们还需要安装相应的开发拓展才能开始开发。不出意外的话,你看到的界面应该是类似这样的:
如果设备设置的默认语言不是英语的话,右下角应该会有一个安装对应语言的提示,点击确定即可(这取决于你,如果听其他老一辈开发者的话,就点否吧)。
(以下内容改自Fabric Wiki:原教程)
点击左侧的拓展分页(图标以实际情况为准,可以自己拿鼠标在左侧都扫一遍):
然后你就可以看到拓展页面了:
搜索以下的任意一个拓展包安装即可:
1.3 正式启程
“造车要有钢板,造电路板需要有基板。
没有地基的房子是建不起来的,Mod开发也是如此。”
1.3.1 琐事
当万事俱备时,终于可以正式开始Mod编写之旅了。
现在前往Fabric的Github仓库获取Mod项目模板吧:
两个链接均可,不过更推荐第二个,因为多数人是没有Github账号的(有的甚至完全没有接触过/Github被墙),没法用Github的仓库生成器。
然后会打开一个这样的页面:
可以对照下图:
至于下面的Advanced Options(高级选项)……
第一个是是否使用Kotlin作为编写语言,但这个教程使用Java作为编写语言,所以请勿开启。
第二个是Datagen,即是否自动完成对Datagen【数据生成器】的配置,推荐开启,尽管现在可能没用,但以防万一。
第三个是分割客户端与通用代码,可以防止代码在错误的地方被地调用(后面会提到)。半推荐:如果你没有Java基础,最好关掉。
然后,点击最下面的的蓝色大按钮下载模板到你的设备:
接下来,解压你下载好的压缩包,右键->通过 Code 打开(当然,要是你在安装的时候取消了,这里是没有这个选项。那就在VSC里面依次点击左上角的文件->打开文件夹)。
然后,耐心等待项目导入完成。直到你的“Gradle for Java”终端(如果下方栏是空的就按Ctrl + `)显示这行字样(PS:由于演示偷懒用的是其他的开发项目,所以输出不完全一样系正常现象):
如果输出的字样是CONFIGURE FAIL心脏骤停,那就需要排查原因了。
错误日志会被输出到上方(看不懂就翻译)
常见的原因有以下几种:
-
访问超时:通常会显示多个链接;然后显示:Fail to setup Minecraft(安装Minecraft失败)、Can’t find file(无法获取文件)之类的。
-
反混淆失败:显示yarn、mapping之类的文本;然后说显示:某个文件不存在。
以上两种原因重启IDE多试几次就可以了,如果项目导入实在太慢,可以参阅FabricMccn。
-
进程紊乱:显示文件被占用;先关闭IDE,然后打开任务管理器,把所有名称为“OpenJDK Platform binary”或者“Java”之类的进程结束掉(按右下角的按钮)。
任务管理器开启方法:
-
(仅限Windows 11以下)右键任务栏【就是显示时间的那个栏】空白处,点击“任务管理器”【因为系统是繁中所以显示为“工作管理員”】。
-
按下Ctrl+Shift+ESC。
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任务。
所有任务都被放在这个大象图标的分页中:
点击Tasks/build/build,执行构建操作。
然后,你的根目录下就会多出一个build文件夹。
打开build/lib文件夹,将刚刚构建好的Mod放入Minecraft试试。
然后进入游戏……
嗯?什么都没有发生?
并不是,请立即关闭正在运行的Minecraft,然后用VSC打开.minecraft/log/lastest.log:
按下Ctrl+F输入“Hello Fabric world!”进行搜寻——没错,多了一行日志!“Hello Fabric world!”。
据说输出Hello world能够为开发之路带来好运,所以,每到一个不同的环境/语言中时,一定不要忘记。
(另请参阅:Fabric Wiki、develop | Fabric)