正在获得创办
NeoForge 入门指南
本节包含如何设置 NeoForge 工作区以及如何运行和测试您的模组的信息。
先决条件
- 熟悉 Java 编程语言,特别是其面向对象、多态、泛型和函数式特性。
- 安装 Java 21 开发工具包 (JDK) 和 64 位 Java 虚拟机 (JVM)。NeoForge 推荐并官方支持 [Microsoft 构建的 OpenJDK][jdk],但其他 JDK 也可以正常工作。
确保您使用的是 64 位 JVM。一种检查方法是运行终端命令 java -version
。Minecraft 不支持 32 位 JVM。
- 熟悉您选择的集成开发环境 (IDE)
- NeoForge 官方支持 [IntelliJ IDEA][intellij] 和 [Eclipse][eclipse],两者都集成了 Gradle 支持。但您可以使用任何 IDE,从 Netbeans 或 Visual Studio Code 到 Vim 或 Emacs 都可以。
- 熟悉 [Git][git] 和 [GitHub][github]。技术上这不是必须的,但会让您的工作更轻松。
设置工作区
- 访问 模组生成器 网页,输入模组名称(可选模组 ID)、包名、Minecraft 版本和 Gradle 插件([ModDevGradle][mdg] 或 [NeoGradle][ng]),点击"下载模组项目",解压下载的 ZIP 文件。
- 打开您的 IDE 并导入 Gradle 项目。Eclipse 和 IntelliJ IDEA 会自动完成此操作。如果您的 IDE 不支持自动导入,也可以通过终端命令
gradlew
完成。- 首次执行时,Gradle 会下载 NeoForge 的所有依赖项,包括 Minecraft 本身,并反编译它们。这可能需要相当长的时间(根据您的硬件和网络状况,最长可达一小时)。
- 每当您修改 Gradle 文件后,需要通过 IDE 中的"重新加载 Gradle"按钮或再次运行 `gradlew` 命令来重新加载 Gradle 变更。
自定义模组信息
您模组的大部分基本属性都可以在 gradle.properties
文件中修改。这包括模组名称、模组版本等基本信息。更多信息请参阅 gradle.properties
文件中的注释,或查看 [gradle.properties
文件文档][properties]。
如果您想进一步修改构建过程,可以编辑 build.gradle
和 settings.gradle
文件。NeoForge 提供的 Gradle 插件([ModDevGradle][mdg] 或 [NeoGradle][ng])提供了多种配置选项,其中一些在构建脚本中以注释形式说明。
除非您知道自己在做什么,否则不要编辑 build.gradle
和 settings.gradle
文件。所有基本属性都可以通过 gradle.properties
设置。
构建和测试模组
要构建您的模组,请运行 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
中编写的所有代码都将被应用。
服务器测试
如果您运行专用服务器(通过运行配置或 gradlew runServer
),服务器会立即关闭。您需要通过编辑运行目录中的 eula.txt
文件来接受 Minecraft EULA。
接受后,服务器将加载并在 localhost
(默认是 127.0.0.1
)下可用。但是,您仍然无法加入,因为服务器默认会启用在线模式,这需要身份验证(开发玩家不具备)。要解决此问题,再次停止服务器并将 server.properties
文件中的 online-mode
属性设置为 false
。现在启动服务器,您应该能够连接了。
您应该始终在专用服务器环境中测试您的模组。这包括[仅客户端模组][client],因为这些模组在服务器上加载时不应执行任何操作。