1.21.1 NeoForge模组开发教程 - 1.构建开发环境
现如今,构建一个NeoForge模组开发环境还是很简单的,你只需要在GitHub上clone一份ModDevGradle(NeoGradle也可,但更推荐新手用ModDevGradle)模板到本地,再用你的IDE打开它,项目就会自动导入了。当然,90%的人估计都会选择IntelliJ IDEA作为IDE。请确保项目所用的JDK版本为Java 21。项目的导入涉及到下载Gradle、第三方依赖库、Minecraft客户端和服务端的jar文件、NeoForge源码等等,时间可能会比较长,请耐心等待,直到控制台冒出BUILD SUCCESSFUL字样,就代表开发环境构建成功了。
然后就是在gradle.properties文件中填写你的modid、模组名称等信息了,注意modid不能包含大写字母,此外NeoForge的版本也可以在这里修改——你clone下来的模板的NeoForge版本可能和本系列教程使用的21.1.197版本不符,修改一下,再重新sync一下gradle即可。
要运行客户端游戏,运行gradle任务runClient即可;运行服务端则使用runServer。你可能还注意到有一个“runData”,这是给Data Generation用的,这部分内容后续会讲到。build任务用于将Mod打包成jar到路径build/libs下。
紧接着是Mod主类(也叫入口类)。你可能注意到模板中已经给你定义好了一个入口类,另外还有一个Config类,这些都是示例代码,包名是example不说,入口类也写得乱七八糟,把什么东西都塞里面了。删掉这个包,根据你的实际情况新建一个包,在包下以你的Mod为名创建一个入口类:
@Mod(TutorialMod.MODID)
public class TutorialMod {
public static final String MODID = "tutorialmod";
public TutorialMod(IEventBus bus, ModContainer container) {
}
}
这就是我们的入口类了,首先给类打上@Mod注解,表明这是一个Mod入口类;其次是给该类提供了一个构造方法,形参列表是出于NeoForge的约定。IEventBus是Mod事件总线,有关事件和事件总线的概念会在第2章详细介绍;ModContainer是FML用来包装Mod对象的类,用途包括给Mod注册配置文件等等。
记得在实际写代码的时候把入口类名和modid依据你的实际情况替换掉。
现在运行runClient任务,启动游戏,你大概已经可以在Mod列表中找到你的Mod了——虽然什么内容都没有,但我们毕竟已经迈出第一步了。
66666666666
页:
[1]