Forge入门
如果你之前从未制作过一个Forge模组,本节将提供设置Forge开发环境所需的最少信息。其余的文档是关于从这里开始的内容。
先决条件
- 安装Java 17开发包(JDK)和64位JVM。Forge推荐并官方支持Eclipse Temurin。 - !!! 警告 确保你正在使用64位的JVM。一种检查方式是在终端中运行 - java -version。使用32位的JVM会导致在使用ForgeGradle的过程中出现问题。
- 熟练使用一款集成开发环境(IDE)。 - 建议使用一款集成了Gradle功能的IDE。
 
从零开始模组开发
- 从Forge文件站下载Mod开发包(MDK)。点击“Mdk”,等待一段时间之后点击右上角的“Skip”按钮。如果可能的话,推荐下载最新版本的Forge。 
- 解压所下载的MDK到一个空文件夹中。它会成为你的模组的目录,且现在应该已包含一些gradle文件和一个含有example模组的 - src子目录。- !!! 注意 许多文件可以在不同的模组中重复使用。这些文件是: - * `gradle`子目录
 * `build.gradle`
 * `gradlew`
 * `gradlew.bat`
 * `settings.gradle`
 `src`子目录不需要跨工作区进行复制;但是,如果稍后创建java(`src/main/java`)和resource(`src/main/resources`),则可能需要刷新Gradle项目。
- 打开你选择的IDE: - Forge只明确支持在Eclipse和IntelliJ IDEA上进行开发,但还有其他针对Visual Studio代码的运行配置。无论如何,从Apache NetBeans到Vim/Emacs的任何开发环境都可被使用。
- Eclipse和IntelliJ IDEA的Gradle集成,都是已默认安装和启用的,将在导入或打开时处理其余的初始工作区设置。这包括从Mojang、MinecraftForge等下载必要的软件包。如果你使用Visual Studio,则需要安装“Gradle for Java”插件。
- Gradle将需要被调用来重新评估项目中对其相关文件的几乎所有更改(如build.gradle、settings.gradle等等)。有些IDE带有“刷新”按钮来完成此操作;然而,它也可以通过在终端上运行gradlew来完成。
 
- 为你选择的IDE生成运行配置: - Eclipse: 运行genEclipseRuns任务。
- IntelliJ IDEA: 运行genIntellijRuns任务。如果发生了"module not specified"错误,请将ideaModule属性设置为你的'main'模块(通常为${project.name}.main)。
- Visual Studio Code: 运行getVSCodeRuns任务。
- Other IDEs: 你可以通过gradle run*来直接运行这些配置(如runClient、runServer、runData、runGameTestServer)。这对于已提供支持的IDE同样有效。
 
- Eclipse: 运行
自定义你的模组信息
编辑build.gradle文件以自定义你的模组的构建方式(如文件名称、artifact版本等等)。
!!! 重要
除非你知道你在做什么,否则不要编辑settings.gradle。该文件指定ForgeGradle所上传的仓库。
建议的build.gradle自定义项目
Mod Id替换
将包括mods.toml和主mod文件在内的所有出现的examplemo替换为你的模组的mod id。这还包括通过设置base.archivesName(通常设置为你的mod id)来更改你构建的文件的名称。
// 在某个build.gradle文件中
base.archivesName = 'mymod'
Group Id
group属性应该设置为你的顶级程序包,其应为你拥有的域名或你的电子邮件地址:
| 类型 | 值 | 顶级程序包 | 
|---|---|---|
| 域名 | example.com | com.example | 
| 子域名 | example.github.io | io.github.example | 
| 电子邮箱地址 | example@gmail.com | com.gmail.example | 
// 在某个build.gradle文件中
group = 'com.example'
java源文件(src/main/java)中的包现在也应该符合这种结构,更深层的包表示mod id:
com
- example (在group属性中所指定的顶级程序包)
  - mymod (mod id)
    - MyMod.java (重命名后的ExampleMod.java)
版本
将version属性设置为你的模组的当前版本。我们推荐采用Maven版本号命名格式。
// 在某个build.gradle文件中
version = '1.19.4-1.0.0.0'
额外配置
额外配置可在ForgeGradle文档中找到。
构建并测试你的模组
- 要构建你的模组,请运行gradlew build。这将在build/libs输出一个默认名为[archivesBaseName]-[version].jar的文件。这个文件可以被放在已安装了Forge的Minecraft的mods文件夹中,也可以被分发。
- 要在测试环境中运行你的模组,你既可以使用已生成的运行配置,也可以运行功能类似的Gradle任务(例如gradlew runClient)。这将使用任何所指定的源码集从run文件夹中启动Minecraft。默认的MDK包括main源码集,因此任何在src/main/java中编写的源代码都会被应用。
- 如果你想要运行dedicated服务端,无论是通过运行配置,还是通过gradlew runServer,服务端都会立刻宕机。你需要通过编辑run文件夹中的eula.txt文件同意Minecraft EULA。一旦同意后,服务器就会加载,之后就可以通过直连localhost进行访问了。
!!! 注意 在服务端环境测试你的模组是必要的。这包括只针对客户端的模组,因为在加载到服务端后它们不应该做任何事。