1.12.2Forge模组开发【2】Mod主类与mcmod.info
我是Frank呀
2020年10月01日 13:39
收录于文集
共5篇

声明:

此教程为mod开发教程,并非Java教程,需要一定的Java基础

教程部分

首先在展开IDE左侧Project,依次打开src\main\java,可以看见有一个com.example.examplemod包,里面有一个ExampleMod类

这个就是forge给的示例模组,可以直接删掉

然后在src\main\java下新建一个自己的包,一般为 com.作者 或者 作者.modid,这里用的是com.frank,并且在这个包下创建一个类,类名一般是Main或者mod的名字,这里我使用Main

然后在这里面添加三个静态不可变字段,分别是NAME,VERSION和MOD_ID,都是以字符串的形式储存(PS:MOD_ID是mod的唯一标识,如果mods文件夹内有两个mod的modid相同在加载时就会报错,之后的资源域也受这个影响,而且modid必须是纯小写英文字母)

这里我使用 ExampleMod,1.0.0和examplemod

并且给这个类加上一个@Mod注解,注解中依次传入name,version和modid

然后打开src\main\resource,里面有一个mcmod.info打开之后是一个类似json的文件

这里面这些值分别是:

  • modid:和主类中相同

  • name:和主类中相同

  • description:模组的简介

  • version:版本,和主类中相同

  • mcversion:不要改动编译时gradle会自动填充

  • url:网址

  • updateUrl:更新地址

  • authorList:作者

  • credits:感谢

  • logoFile:logo的地址,它会根据classpath来解析,所以你可以把它放在任何不会造成命名冲突的位置,比如说你的assets文件夹中

  • screenshots:在信息页面会显示的图片,现在还没有实现

  • dependencies:一个modid列表。所有列出的Mod将会在当前Mod加载前加载。如果这一项为空,则什么都不会发生。

其中name和modid是必填,更多参数详见https://mcforge-cn.readthedocs.io/zh/latest/gettingstarted/structuring/#mcmodinfo

完善之后在项目文件根目录新建一个MinecraftClient文件夹

然后在idea中点击右上角的Add Configuration,然后点击左上角的加号,选择Application,最上面的Name填MinecraftClient,Main class填GradleStart,Working directory选择刚刚创建的MinecraftClient文件夹,Use classpath of module选择ExampleMod_main,剩下保持默认然后点Apply再点OK

然后按右上角的绿色三角形或者键盘上的shift+f10,可以看到mc已经启动了

当然也可以通过在命令行里输入gradlew runClient来启动

之后在游戏窗口里点Mods,在左侧列表中就可以找到自己的mod了