跳到主要内容
版本:1.21.6 - 1.21.8

开始使用 NeoForge

本节包含如何设置 NeoForge 工作区,以及如何运行和测试您的模组(Mod)的信息。

先决条件

  • 熟悉 Java 编程语言,特别是其面向对象、多态、泛型和函数式特性。
  • 安装了 Java 21 开发工具包 (JDK) 和 64 位 Java 虚拟机 (JVM)。NeoForge 推荐并官方支持 Microsoft 构建的 OpenJDK,但任何其他 JDK 也应该可以工作。
警告

请确保您使用的是 64 位 JVM。一种检查方法是在终端中运行 java -version。Minecraft 不支持 32 位 JVM。

  • 熟悉您选择的集成开发环境 (IDE)。
    • NeoForge 官方支持 IntelliJ IDEAEclipse,两者都集成了 Gradle 支持。但是,任何 IDE 都可以使用,从 Netbeans 或 Visual Studio Code 到 Vim 或 Emacs。
  • 熟悉 GitGitHub。这在技术上不是必需的,但它会让您的生活轻松很多。

设置工作区

  • 前往 模组生成器(Mod Generator) 网页,输入模组名称(以及可选的模组ID)、包名、Minecraft 版本和 Gradle 插件(ModDevGradleNeoGradle),点击“下载模组项目”,并解压下载的 ZIP 文件。
  • 打开您的 IDE 并导入 Gradle 项目。Eclipse 和 IntelliJ IDEA 会自动为您完成此操作。如果您的 IDE 不自动执行此操作,您也可以通过 gradlew 终端命令来完成。
    • 首次执行此操作时,Gradle 将下载 NeoForge 的所有依赖项,包括 Minecraft 本身,并对它们进行反编译。这可能需要相当长的时间(最多一小时,取决于您的硬件和网络状况)。
    • 每当您对 Gradle 文件进行更改时,都需要重新加载 Gradle 更改,可以通过 IDE 中的“重新加载 Gradle”按钮,或者再次通过 gradlew 终端命令。

自定义您的模组信息

您模组的许多基本属性可以在 gradle.properties 文件中更改。这包括基本内容,如模组名称或模组版本。更多信息,请参阅 gradle.properties 文件中的注释,或查看 gradle.properties 文件的文档

如果您想进一步修改构建过程,可以编辑 build.gradlesettings.gradle 文件。NeoForge 提供的 Gradle 插件,无论是 ModDevGradle 还是 NeoGradle,都提供了若干配置选项,其中一些在构建脚本中以注释形式进行了解释。

警告

只有在您清楚自己在做什么时才编辑 build.gradlesettings.gradle 文件。所有基本属性都可以通过 gradle.properties 设置。

构建和测试您的模组

要构建您的模组,请运行 gradlew build。这将在 build/libs 目录下输出一个名为 <archivesBaseName>-<version>.jar 的文件。<archivesBaseName><version> 是由 build.gradle 设置的属性,默认分别取 gradle.properties 文件中的 mod_idmod_version 值;如果需要,可以在 build.gradle 中更改。生成的 JAR 文件随后可以放置在启用了 NeoForge 的 Minecraft 设置的 mods 文件夹中,或上传到模组分发平台。

要在测试环境中运行您的模组,您可以使用生成的运行配置或使用相关的任务(例如 gradlew runClient)。这将从相应的运行目录(例如 runs/clientruns/server)启动 Minecraft,并包含指定的任何源代码集。默认的 MDK 包含 main 源代码集,因此在 src/main/java 中编写的任何代码都将被应用。

服务器测试

如果您正在运行一个专用服务器,无论是通过运行配置还是 gradlew runServer,服务器都会立即关闭。您需要通过编辑运行目录中的 eula.txt 文件来接受 Minecraft EULA。

接受后,服务器将加载并在 localhost(或默认的 127.0.0.1)下可用。但是,您仍然无法加入,因为服务器默认会处于在线模式,这需要身份验证(开发环境玩家不具备)。要解决此问题,请再次停止服务器,并将 server.properties 文件中的 online-mode 属性设置为 false。现在启动您的服务器,您应该能够连接了。

提示

您应该始终在专用服务器环境中测试您的模组。这包括仅客户端模组,因为它们在服务器上加载时不应执行任何操作。