加快你的 Forge 开发环境配置
本文最后更新于 240 天前。

由于不可抗力,Forge 开发环境在境内的搭建速度慢到了极致。本文将以 Minecraft 1.19 为例,详细讲解目前的各种加快 Forge 开发环境搭建的方法,文中所述方法也适用于其他版本,只是操作略有区别。

在 Intellij IDEA 中 Forge 开发环境的搭建可以分为以下两个阶段:

  1. 下载依赖 jar,简称“阶段一”。
  2. 下载 Minecraft assets,简称“阶段二”。

通用方法

最通用的方法当然是使用科学上网工具,直接加速所有阶段的配置。

针对第一阶段,由于项目导入在 IDEA 中进行,因此需要在 IDEA 设置代理,如图所示。

IDEA 设置代理

而第二阶段和 Eclipse 的配置需要使用命令行,因此只需要在命令里添加参数即可,以 IDEA 的配置为例(经测试,将参数放在命令末尾在某些情况下会不起作用)。

# 使用 HTTP 代理
./gradlew -Dhttp.proxyHost=<代理地址> -Dhttp.proxyPort=<端口> genIntellijRuns

# 使用 HTTPS 代理
./gradlew -Dhttps.proxyHost=<代理地址> -Dhttps.proxyPort=<端口> genIntellijRuns

# 使用 socks 代理
./gradlew -DsocksProxyHost=<代理地址> -DsocksProxyPort=<端口> genIntellijRuns

另外,第二阶段也可以直接在 IDEA 中运行(如图所示),走 IDEA 中设置的代理。但是测试发现,1.18 及以下版本可以走 IDEA 代理,而从 1.19 开始,这种运行方式会无视 IDEA 设置的代理,依旧需要使用命令行运行。

在 IDEA 中运行

常规操作

针对阶段 1 的方法有:使用 Lss233 的镜像站、使用离线包、使用 4z 的代理。

针对阶段 2 的方法有:使用 4z 的代理、使用离线包、修改 hosts

针对阶段一

使用 Lss233 的镜像站

一个相当常用的方法就是用 Lss233 的镜像站,这个镜像站不仅可以用于加速下载,还可以用来构建一些特殊版本的 Forge 开发环境(比如 1.7.10、1.18.1 这些连 Forge 官方仓库都 404 的版本)。

来源:Lss233’s.Mirror(); //一个Minecraft插件&Mod开发镜像

推荐地址:https://lss233.littleservice.cn/repositories/minecraft
源地址:https://crystal.app.lss233.com/repositories/minecraft/ (可以下载到最新版本的文件,可以使用文件浏览器功能)
备用地址1:https://maven.fastmirror.net/ (由物语云计算提供的 CDN 服务)
备用地址2:https://lss233.maven.bzgzs.cn/ (由[第三方]@vvvbbbcz 提供的到源站的反向代理,支持 http 访问)

使用方法(以 1.19.3 为例)

首先在 settings.gradle 中,将 repositories {} 里的 gradlePluginPortal() 注释掉,因为镜像站自带了 Gradle Plugin,然后在里面添加 maven { url = "https://lss233.littleservice.cn/repositories/minecraft" } 即可,最终效果如下:

pluginManagement {
repositories {
// gradlePluginPortal()
maven { url = "https://lss233.littleservice.cn/repositories/minecraft" }
}
}

这仅仅是将插件的下载改为使用镜像站,接下来还要在 build.gradle 里的 repositories {} (注意不是 publishing {} 里的那个)中添加 maven { url = "https://lss233.littleservice.cn/repositories/minecraft" },最终效果如下:

repositories {
maven { url = "https://lss233.littleservice.cn/repositories/minecraft" }
}

然后,你就可以用 Lss233 的镜像站加快下载速度了。这个镜像站好像还镜像了 Parchment,如果你要使用 Parchment 的话,也可以直接用这个镜像站,不需要额外添加 Parchment 的仓库了。

使用离线包

来源:[1.19.3-1.7.10] Minecraft模组开发离线包 [Forge/Fabric]

项目地址:https://github.com/mouse0w0/forge-mdk-offline

使用说明[1.12.2-14.23.5.2847以上版本]:
1. 下载后打开压缩包,将会看到两个文件夹,分别为 .gradle 和 forge-x.x.x-x.x.x.xxxx-xxx 。
2. 将 .gradle 文件夹解压至 C:\Users\<当前用户> (例如C:\Users\administrator)文件夹下,如果该目录已存在该文件夹,则覆盖。
3. 将 forge-x.x.x-x.x.x.xxxx-xxx 文件夹解压至任意全英文(路径名称不得有中文等非 ASCII 字符)路径下。
4. 按照所使用的 IDE 在 forge-x.x.x-x.x.x.xxxx-xxx文件夹下打开命令提示符运行如下指令

    1. IntelliJ 用户:gradlew genIntelliJRuns
    2. Eclipse 用户:gradlew eclipse genEclipseRuns
    3. VSCode 用户:gradlew genVSCodeRuns
5. 直接在 IDE 中以 Gradle 项目打开或导入 forge-x.x.x-x.x.x.xxxx-xxx 文件夹。
6. 按照相关 Forge 教程进行后续操作即可。

直接按照教程操作即可。不过缺点也有,因为根据经验,高版本 Forge 在配置工作环境时,即使本地已有 Gradle 缓存,依旧会线上查询依赖库的最新版本,如果仓库中有更新的依赖,就会进行下载,因此建议搭配上文的镜像站使用,或者下文的代理。

另外,如果你使用了离线包,第一阶段完成后可以直接开始第二阶段的配置。当然,如果你的网络环境连不上 Minecraft 官网,即使有离线包,第二阶段的配置也会因为连不上 Minecraft 服务器而直接失败,因此也建议开一下 4z 的代理,或者修改 hosts

使用 4z 的代理

来源:1.1 配置你的工作环境 · FMLTutor

在此我们提供了一个免费 Shadowsocks 代理服务器来帮助您构建. 注意此代理只能用来构建 Forge 无法访问其他墙外网站:

server: forge-build-srar-telecom.ustc-zzzz.net
server_port: 65099
password: 9c4d5a9a6d97
method: rc4-md5

Shadowsocks客户端默认监听 127.0.0.1:1080 作为代理服务来运行, 当您配置完Shadowsocks后您可以执行以下命令来使用代理进行构建:

./gradlew setupDecompWorkspace -Dhttps.proxyHost=127.0.0.1 -Dhttp.proxyHost=127.0.0.1 -Dhttps.proxyPort=1080 -Dhttp.proxyPort=1080

推荐使用的 Shadowsocks 客户端:https://github.com/shadowsocks/shadowsocks-windows/releases

这个代理,目前依旧可用,速度也不错。下载 Shadowsocks 客户端后可以直接填入以上信息,然后依据上文“通用方法”中的代理设置方式进行设置。当然缺点也很明显,就是需要的 Shadowsocks 客户端是托管在 GitHub 上的,下载不方便(虽然可以用离线包帖子里提供的加速站点)。不过,如果你使用的是 Deepin,你可以从系统自带的应用商店中下载到(不知道现在还行不行)。

针对阶段二

相对于阶段一,由于 ForgeGradle 把下载 assets 的地址写死了,只能从 Minecraft 官方服务器获取,因此无法通过直接修改下载地址实现。

开始前的准备(离线包用户不需要)

在开始前,我们需要提前在官方启动器目录下安装好对应版本的 Minecraft,这样在进行第二阶段配置时,ForgeGradle 检测到本地存在 assets 文件,就会直接从本地复制,无需重复下载。也就是说,接下来的加速方法,主要针对下载 assets 索引以及其他依赖。首先,需要打开你的 Minecraft 启动器,把游戏下载路径修改为官方启动器路径(即 ~/.minecraft,在 Windows 下则是 C:\Users\<你的用户名>\.minecraft),如下图所示。

以 HMCL 为例,注意红色框住的部分

然后在该路径下安装对应的 Minecraft 版本,只需要安装纯净版,不需要安装 Forge,安装完成后不要启动(根据经验,启动后 assets 索引的校验值会改变,虽然不知道有没有影响,但也不推荐启动)。一般的教程会让你安装完 Minecraft 就直接开始第二阶段的配置,然而别忘了,我们只是准备好了 assets,还有 assets 的索引没有准备好。笔者在配置工作环境的时候,发现 ForgeGradle 会从本地复制 assets,但是索引依旧需要从 Minecraft 服务器获取,而在笔者的网络环境下,Minecraft 官方服务器的下载速度为 0B/s。因而提取 assets 索引也是必要的。

首先,进入 ~/.minecraft/assets/indexes/ (Windows 下则是 C:\Users\<你的用户名>\.minecraft\assets\indexes),在这里可以找到一个或几个 json 文件,这些就是 assets 索引,找到对应版本的索引文件。多个序列号是共用同一个索引的,因此只需要次版本号一致即可,比如我是 1.19.2,我只需要选择 1.19.json 即可。这里需要注意一点,有些版本比较特殊(比如 1.19.3 是 2.json),如果你在该路径下发现了多个特殊命名的 json,则可以提前迁移游戏数据,然后清空目录再重装对应版本

找到了索引干嘛呢?当然是扔进 Gradle 缓存里。直接将其复制到 ~/.gradle/caches/forge_gradle/assets/indexes/ 下即可(Windows 下则是 C:\Users\<你的用户名>\.gradle\caches\forge_gradle\assets\indexes\)。当然,复制了索引还不够,根据笔者经验,即使索引文件存在,ForgeGradle 依旧会连接 Minecraft 官方服务器,对于有些人的网络根本连不上的,直接下一步就会失败。因而还需要配合 4z 的代理或修改 hosts

4z 的代理与离线包

关于使用 4z 的代理与离线包,按照上文所述方法操作即可,此处不再赘述。

修改 hosts

来源:通过修改 Hosts 加速模组环境配置

引言

由于众所周知的原因,模组开发环境的配置在国内不是那么顺利,虽然 Forge 的依赖可以通过设置 maven 仓库来解决,但是mc 资源下载极其缓慢。不过,mc 的资源分发使用了 CloudFront CDN 那我们有没办法找到一个快速的 CDN 节点让下载不再卡顿呢?这自然是可以的。

找到那个 IP

我们知道 CloudFront 在全球有成千上万的 IP,要找到那么优秀的 IP 不是那么容易,所以我们要借助一些工具。 CloudflareSpeedTest 是一个测试 Cloudflare 优秀节点 IP 的工具,当然它也可以测试 CloudFront 的节点,只需要我们喂给他 CloudFront 的 IP 列表,在本文后面我附上了,CloudFront 节点非大陆的 IP 地址,大家可以下载下来自己测试一下自己所在网络的最快节点是哪个。 下面是步骤:

  • 下载 ip.txt 保存到和 CloudflareST.exe 同一个目录
  • 运行指令
    .\CloudflareST.exe -url [url]https://media.forgecdn.net/files/2935/323/RLCraft+Server+Pack+1.12.2+-+Beta+v2.8.2.zip[/url] -dn 5
    就能寻找出可能的优质节点,当然,如果没找到可以多试几次,或者把 -dn 后的参数调大。
  • 记录下你喜欢的指令 IP

修改 hosts

接下来就是修改 hosts 文件。

<上一步获取的ip> resources.download.minecraft.net
<上一步获取的ip> libraries.minecraft.net
<上一步获取的ip> launcher.mojang.com

刷新 DNS

请注意,一定要刷新本机的 DNS 记录,可以选择重启电脑或者输入 ipconfig /flushdns 指令。

至于如何修改 hosts,那就自己百度了。不过,在上文的准备过后,这种方法的作用就只剩下了“连上 Minecraft 官方服务器”。也有个别连不上而且测速时没一个节点能用的,就只能用 4z 的代理或者离线包了。

本文使用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。

上一篇
下一篇