NeoForge 入门
本节介绍如何搭建 NeoForge 开发工作区,以及如何运行和测试你的 Mod。
前置条件
- 熟悉 Java 编程语言,尤其是面向对象、多态、泛型和函数式编程特性。
- 安装 Java 25 开发工具包(JDK)和 64 位 Java 虚拟机(JVM)。NeoForge 推荐并正式支持 Microsoft 构建的 OpenJDK,不过其他 JDK 通常也可以使用。
注意 请确认使用的是 64 位 JVM。可以在终端中运行
java -version进行检查。Minecraft 不支持 32 位 JVM。
- 熟悉你选择的集成开发环境(IDE)。
- NeoForge 正式支持 IntelliJ IDEA 和 Eclipse,两者都集成了 Gradle 支持。不过,你也可以使用其他 IDE 或编辑器,例如 NetBeans、Visual Studio Code、Vim 或 Emacs。
- 熟悉 Git 和 GitHub。这并非硬性要求,但能让开发工作方便许多。
搭建工作区
- 打开 Mod 生成器网页,填写 Mod 名称(也可以填写 Mod ID)、包名、Minecraft 版本和 Gradle 插件(ModDevGradle 或 NeoGradle),点击“Download Mod Project”,然后解压下载的 ZIP 文件。
- 打开 IDE,导入 Gradle 项目。IntelliJ IDEA 和 Eclipse 会自动完成导入。如果你的 IDE 没有这项功能,也可以通过终端中的
gradlew命令导入。- 首次导入时,Gradle 会下载 NeoForge 的全部依赖,包括 Minecraft 本身,并进行反编译。这可能需要较长时间,具体取决于硬件和网络状况,最长可能达到一小时。
- 每次修改 Gradle 文件后,都需要重新加载 Gradle 配置。可以点击 IDE 中的“Reload Gradle”按钮,也可以再次使用终端中的
gradlew命令。
Minecraft 源代码
Gradle 加载成功后,工作区中除了示例 Mod 项目,还会包含 Minecraft 和 NeoForge 的源代码(已应用补丁)以及资源文件,供你参考。IntelliJ IDEA 中可以在 External Libraries 下找到这些源代码,Eclipse 中则位于 Referenced Libraries 下。其名称取决于所用的 Gradle 插件(<version> 为所用的 NeoForge 版本):
| Gradle 插件 | Minecraft 源代码 | NeoForge 源代码 |
|---|---|---|
| NeoGradle | ng_dummy_ng.net.neoforged:neoforge:<version> |
net.neoforged:neoforge:universal:<version> |
| ModDevGradle | minecraft-patched-<version>-merged.jar |
net.neoforged:neoforge:universal:<version> |
你也可以使用 IDE 的搜索功能查找特定的 Minecraft 类或文件。IntelliJ IDEA 默认通过连按两次 Shift 打开搜索,Eclipse 中则使用 Ctrl+H。
警告 其他 IDE 可能没有这项集成功能。查看源代码对于实现许多功能至关重要;针对这项功能,我们仅支持 IntelliJ IDEA 和 Eclipse。
自定义 Mod 信息
Mod 的许多基本属性都可以在 gradle.properties 文件中修改,例如 Mod 名称和版本。更多信息请参阅 gradle.properties 中的注释,或查阅 gradle.properties 文件文档。
如果还需要进一步修改构建过程,可以编辑 build.gradle 和 settings.gradle。NeoForge 提供的 Gradle 插件 ModDevGradle 和 NeoGradle 都支持多种配置选项,其中一些已在构建脚本的注释中说明。
注意 只有在了解相应配置的作用时,才应编辑
build.gradle和settings.gradle。所有基本属性都可以通过gradle.properties设置。
构建和测试 Mod
运行 gradlew build 构建 Mod。构建产物会输出到 build/libs,文件名为 <archivesBaseName>-<version>.jar。<archivesBaseName> 和 <version> 是 build.gradle 中的属性,默认分别取自 gradle.properties 中的 mod_id 和 mod_version;需要时也可以在 build.gradle 中修改。生成的 JAR 可以放入已安装 NeoForge 的 Minecraft 实例的 mods 文件夹,也可以上传到 Mod 分发平台。
要在测试环境中运行 Mod,可以使用生成的运行配置,也可以执行相应任务,例如 gradlew runClient。Minecraft 会从对应的运行目录(如 runs/client 或 runs/server)启动,并加载指定的源集。默认 MDK 包含 main 源集,因此 src/main/java 中编写的代码会被加载。
服务端测试
通过运行配置或 gradlew runServer 启动独立服务器时,服务器首次运行会立即关闭。你需要编辑运行目录中的 eula.txt,接受 Minecraft EULA。
接受后,服务器即可启动,默认可通过 localhost 或 127.0.0.1 访问。不过此时仍无法加入,因为服务器默认启用在线模式,需要进行身份验证,而开发环境中的 Dev 玩家没有相应身份。解决方法是再次关闭服务器,将 server.properties 中的 online-mode 设置为 false。随后重新启动服务器,即可连接。
建议 始终在独立服务器环境中测试你的 Mod。仅客户端 Mod 也应如此:它们加载到服务端后应当不执行任何操作。
来源: NeoForged/Documentation(26.1)。中文翻译依据提交
4a680cdd4d15。