# ForgeGradle
ForgeGradle 是 Forge 开发团队推出的 Gradle 插件,主要用途就是简化基于 MCP 和 Forge 的 Minecraft Mod 开发的流程。
# 为什么?
思考一下 Mod 开发和发布的流程:
- 首先我们要下载 Minecraft 本体。
- 然后我们要下载 Minecraft 的所有依赖项。
- 接着我们要反编译并反混淆,这样我们才能读懂 Minecraft 底层。
- 这个时候我们才能开始写代码。
- 到了发布 Mod 的时候,在编译好 Mod 的基础上我们还要重混淆。
显然,我们可以并且应该让 Gradle 帮我们搞定这些。ForgeGradle 应运而生。
# ForgeGradle 能干什么?
- 部署开发环境
- 下载、反编译及反混淆 Minecraft
- 下载 assets(音效和语言文件等)
- 反混淆和重混淆
- Mod 构建时会自动过一遍重混淆
- 对于依赖项目,可用
fg.deobf
- IDE 相关
- 自动生成 Run/Debug Configuration,目前支持 Eclipse、IntelliJ IDEA 和 VSCode。
- 连带当前项目一起运行 Minecraft:
- 运行服务器(
runServer
task) - 运行客户端(
runClient
task) - 运行数据生成器(
runData
task)
- 运行服务器(
# 面向用户的配置
ForgeGradle 最常用的选项都可以在 build.gradle
的 minecraft
block 中找到:
minecraft {
// 在这里指定映射表版本。
// 关于 MCP 版本号的说明可在 MCP 一节中找到。
mappings channel: 'snapshot', version: '20200225-1.15.1'
// 在这里可以修改运行 Minecraft 时的配置。
runs {
// 客户端配置
client {
// 指定 Minecraft 根目录(即俗称 .minecraft 的那个目录)的位置
workingDirectory project.file('run')
// 调试日志相关,下同。
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.console.level', 'info'
// 指定 Minecraft 的启动参数。下面这个参数可以用来修改玩家名称
args '--username=Foo'
// 这一串是让游戏识别到你写的代码的,不用管它。下同。
mods {
examplemod {
source sourceSets.main
}
}
}
// 服务器配置
server {
// 指定服务器根目录的位置
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.console.level', 'info'
mods {
examplemod {
source sourceSets.main
}
}
}
// 数据生成器配置
data {
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.console.level', 'info'
// 记得把 your_mod_id 换成你的 Mod id。
args '--mod', 'your_mod_id', '--all', '--output', file('src/generated/resources/')
mods {
examplemod {
source sourceSets.main
}
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59