
作者:hdsxwt 首次编辑时间:2026-02-15 建议在电脑阅读
项目地址: https://github.com/hdsxwt/better_minecart
本文记录了作者在Minecraft-1.21.11 fabric端的首次开发经验。如文中做法有错误或不足,或者读者有更好的做法,希望各位读者能够提出您宝贵的意见
。
作者采用修改 Fabric Template Mod 的方式开始自己的第一个mod编写。
Template mod generator 链接 https://fabricmc.net/develop/template/

关于选项:
1. 使用kotlin语言开发,作者不用。
2. 使用mojang官方的混淆方式,可选,但是大部分ai生成的代码都是yarn混淆的,所以作者用的是yarn混淆。(即不勾选)
3. 不知道是什么,作者没有选。
4. 分开client入口和server入口,推荐选。
下载,解压,然后在对应ide打开该文件夹。
编辑器应该会自动gradlew,如果没有魔法可能需要国内gradlew镜像源。

gradlew完成后先后运行对应 ide 和 fabric.genSource
有这个 src\main\resources\fabric.mod.json

这里标注了mod的相关信息,其中标红的两行声明了主入口和客户端入口,在主入口需要注册一些服务器和客户端都需要注册的东西,在客户端注册一些仅客户端的东西。
MC 模组的所有东西都需要注册,用于向游戏声明我的模组实现了什么东西。
${version} 等信息在 gradle.properties 里面
Main注册的东西:item, entity,block等需要同时告知服务器和客户端的内容。
Client注册的东西:entityrender等只与客户端相关的内容。
主目录下的 src/main/java/MOD_ID 一般是代码文件存放的位置。
主目录下的 src/main/resources/assets/MOD_ID 一般是资源文件存放的位置。
具体情况可以参考文章开头提供的模组项目地址,也可以自行找寻相关开源模组项目。
BUG:目前作者的资源文件好像无法被正常识别,可能是作者搞错了资源放置的位置。。。如果有读者能够指出正确的资源文件位置感激不尽。
对于不同类型的代码文件(如entity,block),可以分文件夹放置,同时如果有嵌套关系(如entity对应的entityRender)的类,可以嵌套文件夹放置。
对于每个不同的类型,可以建抽象类 RegisterHandler 注册当前分类下的文件,同时在主入口调用每个不同类型的 RegisterHandler,规范注册。