开始使用NeoForge(Getting Started with NeoForge)
本部分包含有关如何设置NeoForge工作区以及如何运行和测试您的模组(Mod)的信息。
先决条件(Prerequisites)
- 熟悉Java编程语言,特别是其面向对象、多态、泛型和函数式特性。
- 安装Java 21开发工具包(Java 21 Development Kit, JDK)和64位Java虚拟机(Java Virtual Machine, JVM)。NeoForge推荐并官方支持Microsoft builds of OpenJDK,但任何其他JDK也应该可以工作。
确保您使用的是64位JVM。一种检查方法是在终端中运行java -version。Minecraft不支持32位JVM。
- 熟悉您选择的集成开发环境(Integrated Development Environment, IDE)。
- NeoForge官方支持IntelliJ IDEA和Eclipse,两者都集成了Gradle支持。但是,可以使用任何IDE,从Netbeans或Visual Studio Code到Vim或Emacs。
- 熟悉Git和GitHub。这在技术上不是必需的,但它会让您的生活轻松很多。
设置工作区(Setting Up the Workspace)
- 转到模组生成器(Mod Generator)网页,输入模组名称(以及可选的模组ID)、包名、Minecraft版本和Gradle插件(ModDevGradle或NeoGradle),点击"下载模组项目(Download Mod Project)",并解压下载的ZIP文件。
- 打开您的IDE并导入Gradle项目。Eclipse和IntelliJ IDEA会自动为您完成此操作。如果您的IDE不这样做,您也可以通过
gradlew终端命令来完成。- 第一次执行此操作时,Gradle将下载NeoForge的所有依赖项,包括Minecraft本身,并对它们进行反编译。这可能需要相当长的时间(最多一小时,取决于您的硬件和网络强度)。
- 每当您更改Gradle文件时,都需要重新加载Gradle更改,可以通过IDE中的"重新加载Gradle(Reload Gradle)"按钮,或再次通过
gradlew终端命令。
自定义您的模组信息(Customizing Your Mod Information)
您的模组的许多基本属性可以在gradle.properties文件中更改。这包括基本内容,如模组名称或模组版本。有关更多信息,请参阅gradle.properties文件中的注释,或参阅gradle.properties文件的文档。
如果您想进一步修改构建过程,可以编辑build.gradle文件。NeoGradle(NeoForge的Gradle插件)提供了几个配置选项,其中一些在build.gradle文件中通过注释进行了解释。有关完整文档,请参阅NeoGradle文档。
只有在您知道自己在做什么时才编辑build.gradle和settings.gradle文件。所有基本属性都可以通过gradle.properties设置。
构建和测试您的模组(Building and Testing Your Mod)
要构建您的模组,请运行gradlew build。这将在build/libs中输出一个名为<archivesBaseName>-<version>.jar的文件。<archivesBaseName>和<version>是由build.gradle设置的属性,默认分别为gradle.properties文件中的mod_id和mod_version值;如果需要,可以 在build.gradle中更改此设置。生成的JAR文件可以放置在启用了NeoForge的Minecraft设置的mods文件夹中,或上传到模组分发平台。
要在测试环境中运行您的模组,您可以使用生成的运行配置或使用相关的任务(例如gradlew runClient)。这将从相应的运行目录(例如runs/client或runs/server)启动Minecraft,以及任何指定的源集。默认的MDK包括main源集,因此任何在src/main/java中编写的代码都将被应用。
服务器测试(Server Testing)
如果您正在运行专用服务器,无论是通过运行配置还是gradlew runServer,服务器将立即关闭。您需要通过编辑运行目录中的eula.txt文件来接受Minecraft EULA。
接受后,服务器将加载并在localhost(或默认的127.0.0.1)下可用。但是,您仍然无法加入,因为服务器默认会进入在线模式,这需要身份验证(而开发玩家没有)。要解决此问题,再次停止您的服务器,并将server.properties文件中的online-mode属性设置为false。现在,启动您的服务器,您应该能够连接。
您应该始终在专用服务器环境中测试您的模组。这包括仅客户端模组(client-only mods),因为这些模组在服务器上加载时不应执行任何操作。