这里是一个从零开始构建基础Mod的简单导引。该文档的剩余部分会指导你如何完成接下来的步骤。
1.从forge的文件站点获取一个源代码分发版本(需要的是Mdk文件,对于旧的1.7/1.8版本则对应的是Src文件)。
2.将下载的源代码分发版解压到一个空目录里。你应当能看到一堆文件,以及一个位于src/main/java的可以供你查看的示范模组。这些文件中只有一部分是开发模组所必需的,你可以在你的所有项目中复用这些文件,这些文件有:
3.将上述文件(和文件夹)移动到一个新文件夹,这个新文件夹会成为你的模组项目文件夹。
4.打开一个命令行,切换工作目录到步骤(3)中创建的新文件夹,然后执行 gradlew setupDecompWorkspace 。这将会从因特网上下载一系列反编译Minecraft和Forge以及构建Minecraft和Forge所需的构件。这会花费一些时间,因为它会下载并反编译Minecraft。注意,一般来说在你删除gradle构件的缓存前,这些内容只需要被下载和反编译一次。
5.选择你的IDE(译者注:Integrated Development Environment——集成开发环境):Forge显式支持使用Eclipse或者IntelliJ环境进行开发,但是事实上对于任何环境(从Netbeans到vi/emacs)都是可以通过一些方法使其适用的。
6.从IDE中加载你的项目。
注意: 在实际操作中当运行到任务:decompileMC的时候,你可能会遇到一个错误(第四步)
Execution failed for task ':decompileMc'. GC overhead limit exceeded
向文件 ~/.gradle/gradle.properties (~表示用户在某个操作系统中的家目录。如果不存在的话就创建一个)中添加一行 org.gradle.jvmargs=-Xmx2G
以下内容假定你已经通过上述部分中的步骤1到步骤3创建了项目文件夹,因此步骤标号将从4开始。
(译者注:进一步的解释,这里的前三步与上一部分中的前三步一致,因此这里直接从第四步开始)
4.运行IDEA并使用默认的gradle封装器(wrapper)选项打开或导入 build.gradle 文件。当你等待该过程的时候可以打开gradle面板,导入完成时面板中会显示大量的gradle任务信息。
5.在 forgegradle 任务组中执行 setupDecompWorkspace 任务(在 forgegradle 任务组中),这将花费几分钟,并占用不少内存。如果失败了,你可以在IDEA的gradle设置窗口中向 Gradle VM options中加入 -Xmx3G 选项,或者在gradle全局设置里修改。
6.设置工作一旦完成,你需要执行 genIntellijRuns 任务来配置项目的运行和调试目标。
7.上一步完成之后,你应当点击gradle面板上的蓝色刷新按钮(不是主面板上的刷新按钮)。这一步将使得IDEA项目与Gradle的数据重新同步,以确保所有的依赖和设置是最新的。
8.最后,如果你是用的是IDEA 2016或者更新的版本,你还需要更正classpath模块。前往 Edit configuration 并将其中 Minecraft Client 和 Minecraft Server 的 Use classpath of module 项指向诸如 <项目名>_main 这样的名字。
如果上述步骤都正常执行,你应当能够从下拉列表中选择Minecraft运行工作,并点击 Run/Debug 按钮来测试你的设置。
编辑 build.gradle 文件来自定义你的模组的构建信息(文件名、版本以及其他信息)。
重要: 不要编辑 build.gradle 文件的 buildscript {} 部分,该部分对于ForgeGradle运行是必需的。
几乎任何 apply project: forge 和 // EDITS GO BELOW HERE 标记下方的内容都可以被修改,下方的许多内容也可以移除并自行定义。
有一个网站描述了自定义forge中 build.gradle 文件的相关内容——the ForgeGradle cookbook (https://forgegradle.readthedocs.org/en/latest/cookbook/)。当你熟悉了你的mod设置之后,你还会发现很多有用的设置。
简易 build.gradle 自定义方法
强烈建议所有项目应用这些自定义设置。
1.要构建你的模组,运行 gradlew build 。这将会在 build/libs 目录中生成一个 [archivesBaseName]-[version].jar 为名字的文件。该文件可以被放入启用了forge的Minecraft的 mods 文件夹内,并进行分发。
2.要测试你的模组,最简单的方法是使用创建项目时生成的运行配置来运行。否则,你也可以运行 gradlew runClient 。这将会从 <runDir> 目录启动一个包含了你的模组代码的Minecraft。这个命令有许多自定义设置,详见the ForgeGradle cookbook (https://forgegradle.readthedocs.org/en/latest/cookbook/)。
3.你还可以使用执行服务器运行设置来启动独立服务端,或者使用命令 gradlew runServer 。这将启动带有GUI的Minecraft服务器。
注意: 如果你希望你的模组能够在独立服务端上测试,建议一定要在独立服务端中进行测试。 (译者注:例如模组有服务器端计算等等情况,就不应当只做单人世界测试)