Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 5067|回复: 26

[Mod开发教程] [IntelliJ IDEA|多版本通用]Forge安装到导出详细入门教程|各种报错解决方法j

[复制链接]
普冷姆 当前离线
积分
245
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-1-17
查看详细资料
发表于 2021-4-22 14:19:45 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 dengyu 于 2021-8-17 18:02 编辑

〇,循环的开始
你可能会在一段时间内,多次反复打开这个帖子;你会在安装过程中遇到各种各样的问题;即使你终于完成了安装,但也许会因为以后某天想要安装新版本forge,亦是参考或修改别人的mod,而不得不再次打开这个帖子。
本文是安装的正常流程,而能真正完美地按顺序一遍过的人几乎没有,但你可以通过如下方式得到帮助
1.查看本文最末尾章节——关于各种错误的解决方案
2.回复本帖,或联系我
3.如果因为需要访问国外网站,而导致的网络问题,请更换到"能访问国外网站的网络环境",或者使用一定的网络辅助工具
本文使用的版本:Windows10 2004,IntelliJ IDEA 2020.3.2,Forge 1.16.5
此教程是通用教程,原则上不区分Forge版本。如果你安装其他版本的时候报错,请留言, 我会手动测试并找到解决方案,再更新此贴。

P.S.:等等!你学过java吗?没学过?那也没有关系,但是你先得会安装jdk,去百度一下再回来吧!如果你想制作mod但不会java怎么办?你可以选择一边制作mod一边学习java哦!或者……直接参与负责mod模型、贴图或玩法等设计方面的工作?

一,下载IntelliJ IDEA与Minecraft开发包
打开IntelliJ IDEA官网:https://www.jetbrains.com/idea/download

IDEA

IDEA

可以选择社区版(Community)或专业版(Ultimate)。社区版开源免费,功能足够;专业版需要付费,并且只有三十天的免费体验,但功能完整强大。这里我选择的是社区版,就是右下角那个黑色(截止发稿日此界面如此,不保证以后改版)。然后下载安装即可,如有任何问题请百度。

Forge Website

Forge Website
左侧是选择Minecraft游戏的版本。选择某一Minecraft的版本后,再选择任意版本的MDK(Minecraft Development Kit),最好是推荐版本(Download Recommended)的,兼容性最好,BUG最少(不一定)。
或者最新版(Download Latest),会有更多新特性。

下载完成后,是一个压缩包,解压之后,如下图所示:
注:请把文件解压到一个目录,这个目录不能有任何非英文字符(即,不能用中文、日文、越南文、德文、法文等等),并且这个文件夹下的任何文件(例如*.java文件)都不能有非英文字符。但是,如果你已经放在了这种文件夹里,如果不报错,就不能修改;或者,请在另一个符合条件的目录下,再下载一个新的zip压缩包并解压。
错误索引如果出现任何奇奇怪怪的报错或乱码文字,请先参考错误编号0

Click To Build

Click To Build
文件build.gradle用以构建整个项目,因为Minecraft Forge是一个gardle项目。
如果你的build.gradle不是默认用IDEA打开(即图标不是IJ),可以右键属性后,选择打开方式为IntelliJ IDEA
Select how to open.png





二,进行Building
然后你就可以双击build.gradle打开了。当然,也可以通过IDEA内的File>>Open选中build.gradle并打开。
然后IDEA就会开始自动下载所需文件了。注意,此过程需要访问国外的网站,如果出现网速过慢连接失败下载失败等网络问题,请自行百度解决,或者找站内其他帖子——使用国内镜像(https://www.mcbbs.net/thread-1076799-1-1.html),亦或者直接使用离线包https://www.mcbbs.net/thread-896542-1-1.html)。
Gradle Downloading.png
可能需要的时间比较多,只需静静等待完毕即可。
Building Compeleted.png

错误索引:如果你不能Build,并且红色报错,请参考错误编号6
期间可能会有报错(或只是提示),如果其不影响接下来的流程,可以忽略。但是也有可能对以后的某个操作会有影响,请自己斟酌是否要寻求解决方案。




三,运行生成任务
初次加载完毕后,在你的IDEA界面上可以找到一个菜单栏Gradle。如果找不到,可以双击shift,在弹出的搜索栏中输入”Gradle”;或者百度。

Run Gradle Task

Run Gradle Task
然后在”大象”菜单底下选择Tasks文件夹,并找到子目录fg_runs(Forge Gradle的缩写),双击其中的genIntelliJRuns,就会开始自动生成项目了。
在短暂的等待后,会显示任务完成。
Task Compeleted.png
genIntelliJRuns任务会帮你自动创建在IntelliJ IDEA上进行运行与调试的配置和其他所需的内容。

如果你在github上下载了别人的mod代码,请务必进行这一步操作,因为Forge MDK压缩包里的.gitignore文件(git修改的上传忽略规则)里面会把IDEA的配置给忽略掉。
错误索引:如果你不那么做,会造成错误编号5



四,运行与调试
下载并初始化后,会有一个默认的ExampleMod,如果你的IDEA对于每个java关键字都有不同颜色的高亮显示,则代表MDK安装并识别成功。否则,出现代码报错,请查阅错误编号4
Finished.png

接下来可以尝试运行一下,点击最上方菜单栏 Run>>Run...,之后会在你的屏幕中央弹出一个小窗口(颜色太相似了,注意辨别,点外面就直接取消掉了)
Try to Run.png
Config Run Successfully.png
然后点击runClient(运行物理客户端)即可,其中runServer(运行物理服务端)可以在自己的电脑上更好地调试@SideOnly(Server)的仅服务端代码。
对于调试来说,只是把Run>>Run...换成了Run>>Debug...(就是刚才点的Run...下面那个),具体调试的用途请百度"IDEA 调试"。
错误索引:如果你的Run小窗口里面什么都没有,请参考错误编号5

此时会弹出Minecraft游戏窗口,如果其中的Mods列表里面有你刚才的ExampleMod,即表示Minecraft可以正常加载你的mod。(图中以github上 暮色森林mod 1.16.5为例)

Twilight Mod Loaded

Twilight Mod Loaded





五,开始写代码吧!
你可以复制整个MDK多次,自己备用;或者分发给别人,作为离线包。这样一来,就无需在每次写mod前都下载一遍了。如果你有网络问题,这也是终极解决方案。

推荐几个教程文档,但不可全盘照抄,请结合实践结果判断。
[ALL]Forge 官方文档:https://mcforge.readthedocs.io

Forge的API随Minecraft版本变化改动而改动,需要具体问题具体分析,每个教程只能适合对应的版本 (甚至有些教程虽然是同一MC版本下,但是因为使用旧版本forge的API,所以在你进行modding的时候,名称会发生改变!)。
编写Minecraft Mod的很多思维方式和哲学是可以学习积累的,即使你只学其中一个版本的教程,对以后其他版本开发都受益匪浅。对于一些最新版本的修改内容,可以参考Forge官方文档。

如果在开发期间,Forge更新了新版本,可以通过如下方式进行升级。(建议升级到稳定版本)

How to Get Gradle Version

How to Get Gradle Version

你可以找到 类似于"1.16.5-36.1.0" 的文字,这个就是ForgeGradle的版本号,请复制它。并将其与 项目根目录下 build.gradle中的这一行所替换:
  1. dependencies {
  2. minecraft 'net.minecraftforge:forge:1.16.5-36.1.13'
复制代码
把新的版本号(此处是1.16.5-36.1.0),与其中的"net.minecraftforge:forge"的冒号后面的版本号(此处是1.16.5-36.1.13)进行替换。然后再次执行第二步第三步的操作即可。

How to Update Forge

How to Update Forge

你会发现,我刚刚竟然拿"低的版本号"去替换"高的版本号",也就是说——这是降级操作。当最新版有致命BUG的时候,可以选择降级回退到之前的稳定版本。



六,制作Mod的联机模式!
如果你在github上下载(pull)了别人的开源mod的代码,你需要按顺序重复上面"第二步"与"第三步"的操作,之后就可以正常对mod进行调试了。
如果你本来就因为网络原因,使用了离线包请注意,你还是有可能因网络原因而下载失败,请自行考虑是否使用离线包进行替换文件(是否成功视情况而定)。
如果期间出现了非网络原因造成的报错,请联系mod作者解决。

七, 分享你的mod!
如果你已经成功做出了mod,或者只是想要测试下"是否能正确导出mod的jar包",那么你就需要看接下来的步骤了。
首先,你需要确保你的mod可以在开发环境(这里指IDEA)下运行。
导出jar包,你需要打开Gradle菜单,并且运行"jar"这个任务。

Export Jar

Export Jar
然后,静静地等待它生成完毕。
之后你就可以在 X:\...\<你的项目文件夹>\build\libs 中看到"xxx.jar"这个文件了。
特别地,如果你的版本是1.12.2,并且使用了错误编号7的解决方案。请务必将添加的那一行代码给注释掉(或者删除),不然导出成jar包时,会复制两遍资源文件,导致生产环境(这里指Minecraft启动器所打开的游戏)报错。与此同时,如果你想在开发环境(这里指IDEA)中运行,那么必须要重新添加那行代码(或取消注释)。

接下来,在经过自己的测试后,你就可以分享你的mod给别人,或者上传到curse forge、mcmod或mcbss等任何分享站上(注意:请务必详细阅读并遵守每个论坛、分享站的规定与协议)。

如果你使用了外部库(例如Maven库),导入了数**算库、工具库等,请使用Shadow Jar这个Gradle插件。至于如何使用,你可以先行百度,这个话题目前暂时不在入门级教程的范围内,不过以后会添加相关内容的。


END,无限循环——各种错误解决方案
如果解决方案无效,请先查看是否有其他问题存在(即多个问题同时造成的结果),若依旧未果,请回帖或联系我。
为了不使帖子显得很长,对所有问题的解决方案进行了隐藏,点击即可展开查看
错误编号0:奇奇怪怪的错误或者乱码
误原因:你的项目所在路径中使用了非ASSIC字符,导致java无法识别。
解决方案:那就别用。像我这样做:D:\MyProject\Minecraft\XXXMod。
错误编号1:SSL连接中断
SSL Shut Down.jpg
错误原因:网络问题。

错误编号2:过时的Gradle
Gradle Out of Date.png
错误原因:可能是因为你使用了老旧的Forge离线包。

错误编号3:JDK选择错误
错误原因:没有选择JDK,或者选择错误的版本(例如过期的java 8,过新的java 11等等)


错误编号4:大量imoprt net红色报错
Red and Black.png
错误原因:MDK没有识别成功。

错误编号5:缺少Run的配置

No Run Config

No Run Config

错误原因:缺少 项目根目录下 .idea\runConfigurations\runClinet 等几个运行配置文件。

错误编号6:没法Build

Failed to apply plugin 'net.minecraftforge.gradle'

Failed to apply plugin 'net.minecraftforge.gradle'

Failed to apply plugin [id 'net.minecraftforge.gradle']

Failed to apply plugin [id 'net.minecraftforge.gradle']
错误原因:没有选择JDK,导致无法Build

错误编号7:资源文件没有加载(1.12.2)
No mod information found.png
错误详情:IntelliJ IDEA 开发 Forge 1.12.2 调试(运行)时没有加载资源文件(语言,材质,模型)。
错误原因:因为IDEA和Eclipse的生成文件目录不一样,mod会找不到resources文件夹。但是导出jar包的时候是正常的。



出于更好的服务大众的目的,你可以自愿在以下几种情况下回帖
1.根据教程成功安装。如果期间出现问题(或教程外的问题)但已经解决的,你可以附上你的问题说明和解决方法(如果是教程内提供的解决方案,直接给出错误编号即可)。
2.安装期间发生失败,并且无法根据 "教程内提供的解决方案" 解决,请回帖(最好有截图)说明详情。

如果有"很难用语言描述"或"非常复杂"的问题,可以直接联系我咨询

Export Shadow Jar.png

评分

参与人数 7人气 +9 金粒 +105 收起 理由
1848680016 + 1 + 15 成功入门
aoxiangtianji + 1 + 20 解决问题了!非常非常感谢!
Seals_Tak + 2 + 30 安装成功,感谢楼主
道家深湖 + 1 顶一个
Black_tea红茶 + 2 + 20 感谢
w312416 + 1 蟹蟹大老~~~~
306小游戏 + 1 + 20 Ssssssssssssssssssss

查看全部评分

3TUSK 当前离线
积分
8132
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-3-8
查看详细资料
发表于 2021-4-22 14:42:29 | 显示全部楼层
因为里面有.gitXXX配置文件,防止把巨大的二进制文件一并同步。

那个文件叫 .gitignore。

fg_runs(Forge的简写)

fg是 ForgeGradle 的简写。
回复

使用道具 举报

普冷姆 当前离线
积分
245
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-1-17
查看详细资料
 楼主| 发表于 2021-4-22 14:45:04 | 显示全部楼层
3TUSK 发表于 2021-4-22 14:42
那个文件叫 .gitignore。

谢谢提醒,已修改。顺便一提,第一个.gitignore其实是为了防止有人把git和ignore看成一个整体,特地突出git。

评分

参与人数 1人气 +1 收起 理由
3TUSK + 1 加粗 git 或者改个颜色?

查看全部评分

回复

使用道具 举报

东骊默栖 当前离线
积分
83
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-4-17
查看详细资料
发表于 2021-4-24 18:29:10 | 显示全部楼层
可可可,好可可。。。咕咕
回复

使用道具 举报

1312091433 当前离线
积分
209
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-1-11
查看详细资料
发表于 2021-4-25 21:40:16 | 显示全部楼层
可!结束了罪恶的循环.
回复

使用道具 举报

mr铎吖 当前离线
积分
103
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-9-11
查看详细资料
发表于 2021-4-26 18:24:12 | 显示全部楼层
还行,过时的Gradle直接改文件即可解决,不推荐使用离线包,新手一个很大的问题是idea的配置写的是eps的命令,eps的配置写的是vscode的命令
回复

使用道具 举报

普冷姆 当前离线
积分
245
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-1-17
查看详细资料
 楼主| 发表于 2021-4-27 09:35:32 | 显示全部楼层
mr铎吖 发表于 2021-4-26 18:24
还行,过时的Gradle直接改文件即可解决,不推荐使用离线包,新手一个很大的问题是idea的配置写的是eps的命 ...

好的,我去尝试一下修改Gradle文件来解决错误编号2
回复

使用道具 举报

我是小玉xy 当前离线
积分
36
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-4-16
查看详细资料
发表于 2021-5-1 17:29:13 | 显示全部楼层
本帖最后由 我是小玉xy 于 2021-5-1 17:30 编辑

从寒假搞到现在终于成功了

评分

参与人数 1人气 +1 收起 理由
普冷姆 + 1 恭喜你~!

查看全部评分

回复

使用道具 举报

YSHui 当前离线
积分
34
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-2-21
查看详细资料
发表于 2021-5-5 02:47:34 | 显示全部楼层
最速传说..要命

评分

参与人数 1人气 +1 收起 理由
普冷姆 + 1 你现在是纪录的保持者!——2个小时就完成.

查看全部评分

回复

使用道具 举报

寻真八云白 当前离线
积分
373
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-5-28
查看详细资料
发表于 2021-5-9 05:37:46 | 显示全部楼层
在调试中,游戏窗口内的Mods列表里,没有我的mod,请问这是怎么回事??
回复

使用道具 举报

普冷姆 当前离线
积分
245
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-1-17
查看详细资料
 楼主| 发表于 2021-5-10 21:26:30 | 显示全部楼层
寻真八云白 发表于 2021-5-9 05:37
在调试中,游戏窗口内的Mods列表里,没有我的mod,请问这是怎么回事?? ...

你需要保证以下三件事:
一,Modid不能有大写字母,只能使用小写英文字母或者下划线。
二,Modid在所有代码中,都保持相同
三,你使用IDEA运行runClient任务(或者Run>>Debug>>renClient)
回复

使用道具 举报

236671808 当前离线
积分
39
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-4-22
查看详细资料
发表于 2021-5-14 02:25:26 | 显示全部楼层
喜欢的来看看
回复

使用道具 举报

w312416 当前离线
积分
120
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-7-16
查看详细资料
发表于 2021-5-14 18:56:24 | 显示全部楼层
可恶!结束了罪恶的循环.
回复

使用道具 举报

w312416 当前离线
积分
120
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-7-16
查看详细资料
发表于 2021-5-14 19:00:41 | 显示全部楼层
万分感谢普冷姆(楼主)的"手把手"指导,带我走出了这该死的循环~
file:///C:/Users/w312416/AppData/Roaming/Tencent/QQ/Temp/$4%250TO42PWU0A)B%7B7YHX_%7BU.jpg
回复

使用道具 举报

Kylin_Lu 当前离线
积分
629
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-10-21
查看详细资料
发表于 2021-5-25 19:51:13 | 显示全部楼层
大佬,问一下在build时他显示Could not GET 'http://repo1.maven.org/maven2/net/minecraftforge/gradle/ForgeGradle/1.2-SNAPSHOT/maven-metadata.xml'. Received status code 501 from server: HTTPS Required,查了一下说前缀必须是https,我在Maven的setting.xml和pom.xml里都改了还是没用,删了重下再改也一样,3.8版本也不行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2021-12-4 01:32 , Processed in 0.080963 second(s), Total 26, Slave 25 queries, Release: Build.2021.11.26 1022, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表