当前位置: 首页 > news >正文

开发Minecraft Forge模组遇到的问题记录

开发工具:IDEA 2022.2.5

JDK:21.0.7

Forge:60.0.11

这里一定要清楚这些版本号,很多问题都是因为版本不兼容引起的,所以先声明使用工具的版本号,接下来踩坑开始(遇到的坑大概率会按照逻辑的先后顺去说明,而不是实际开发时遇到的顺序)。

一号坑(小坑坑):开发Minecraft插件,首先想到IDEA的插件:Minecraft Development, 评分4.5颗星,很不错的一个插件,但是需要注意版本号。这就是为什么我开始把IDEA的版本号也声明的原因。

image

这是官网找到的版本兼容,也就是说2022.2.5的版本最高只能使用2022.2-1.6.9的插件版本,而这个版本的开发时间是2023年,无论如何也不可能支持到之后时间的Forge的特性和代码上的书写习惯(变动)。

所以由于版本不兼容引发的问题是,即使能创建完整的项目,通常插件支持的模板文件大概率会有错误。其中可能包含目录层级,配置文件的模板等(不局限于改插件,大多数的插件都会因为版本遇到类似的问题)。

但是这个问题是比较好解决的。两种方案:1、弃用插件,从官方获取MDK(即就是Minecraft-Forge);2、修改模板文件(下载官方的MDK打开,把错误的地方按照官方的写法修改正确)。两种方法的不同之处在于,使用官方的MDK需要每次都修改Mod相关的信息(mod_id,包名,类名等),然而通常开发mod也不会很频繁所以也无所谓,况且部分是关联修改并不一定很繁琐,而第二种方法则是需要修改错误的模板文件或代码。比对是个麻烦的事情,好在也能偷懒直接同名文件替换(这里替换的是模板,不是创建好的项目文件)。

综上,第一个坑踩完了。成功过坑。

二号坑(小坑坑):由于很长时间没写Java,Forge居然不使用Maven了变成了Gradle。不会,怎么办。好在也不是多新的技术,网上资料一大把,而且现在AI也很多,随边找一个请教学习一下,原来大概就是更换了依赖方式。好在不是要我们重头搭建项目,不需要了解的很深。,就算不会用,只要知道它是什么东西遇到什么问题了再去查都赶得上。那么问题就来了。

1、我没有安装使用的IDEA默认自带的。结果发现这玩意儿居然得使用魔法上网,要不然自带的根本下载不下来。然而我没梯子。毫不犹豫使用国内镜像。地址为下:

 

1 官网地址:https://services.gradle.org/distributions/{gradle的具体版本文件}
2 腾讯云镜像 Gradle下载地址:mirrors.cloud.tencent.com/gradle/{gradle的具体版本文件}
3 阿里云镜像 Gradle下载地址:https://mirrors.aliyun.com/macports/distfiles/gradle/{gradle的具体版本文件}
4 阿里云镜像 Gradle下载地址:mirrors.aliyun.com/gradle/{gradle的具体版本文件}

 

其实我测试,通过浏览器官网的是可以打开的,很慢,这可能是IDEA使用这个地址下载不下来的原因。

image

下不了,就得解决,修改配置文件:

 

# gradle-wrapper.properties //文件名称#distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip //注释掉原来的distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.1.1-bin.zip //添加新的

 

槽点在于搜索Gradle镜像,给的几乎全是仓库的镜像地址。为找到以上的地址,可能搜索了不少于30次的关键字,浏览了不少于300的页面。这些人分不清下载镜像和仓库镜像么,真是服了。总之问题解决了,眼看下载好了,自以为之后是路途的我又掉坑了。

2、由于IDEA版本太旧,且我没有安装配置Gradle,使用IDEA默认的每次都会通过配置文件下载Gradle,结果可想而知有时版本问题上面可以看出,默认的Gradle使用的好似8.1.1。查看官网版本兼容性,完美错过。

 

image

 

要么降JDK要么升Gradle。由于JAVA的LTS版本21之上是17有点太旧了,所以决定使用新的Gradle,也没有重新下载,而是继续修改配置文件:

# gradle-wrapper.properties //文件名称#distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip //注释掉原来的distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.12.1-bin.zip //添加新的

 

按道理来说这肯定是模板生成的,结果我可能修改了Gradle的所有和distributionUrl健相关的模板文件全都无效。无奈到最好也就是需要每次修改一下版本号。有哪位大佬知道是什么原因的,请告知一下

image

 

image

 

image

 

image

 

版本号改好之后,就可以开始编译了,IDEA会自动下载Gradle,在使用Gradle下载以来的包。整体逻辑就是这样,在它下载的工程中大概看了一下,好像使用的还是maven的仓库,大体上理解就是一个下载编译工具,通过配置文件告诉它下载什么东西,它再把这些东西编译到一起,就跟Maven的作用是差不多一样的,具体优缺点,没来得及深究,下载报错了。

image

 

https://repo.maven.apache.org/maven2/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-macos-patch.jar

这地址直接404。 说明maven仓库没有这个包。经查询,AI给了一个解决方案,完美解决。

 

image

 至此环境搭建完毕,没有遇到问题了。明天有事有问题的一天。

http://www.jsqmd.com/news/25061/

相关文章:

  • 【ESP32 在线语音】 待写 TTS
  • Fusion++ 语义实例分割​​与​​稠密SLAM重建​​在TSDF子图层面进行了深度融合 - MKT
  • tryhackme-网络安全基础-命令行- Windows PowerShell-22
  • XCPC英语学习day2
  • 2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体阀门专业制造商,精选PFA/四氟阀门优质品牌解析
  • 2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体专用阀门,PTFE/FEP/PFA材质隔膜阀源头企业综合评测
  • 【ESP32 在线语音】音频接收的缓存机制
  • 我在iOS/Swift工程中成功编译了HarfBuzz!
  • Python access mysql and insert data batch by batch
  • CodeForces-2153D Not Alone
  • Codeforces Round 1062 (Div. 4)
  • 一文吃透银行账务打通体系闭环 - 智慧园区
  • uups 逻辑合约也增加了升级函数,那总体不是也费gas吗?
  • 【URP】Unity[纹理压缩]算法多平台对比
  • AI元人文构想:三值纠缠模型
  • EDK2环境搭建以及HelloWorld编译实现
  • 谁生?谁死?从引用计数到可达性分析,洞悉GC的决策逻辑
  • P1561 [USACO12JAN] Mountain Climbing S
  • 六、阅读笔记六:保障软件可靠性的防线
  • 五、阅读笔记五 应对复杂系统的挑战
  • P3988 [SHOI2013] 发牌
  • 映射
  • 文件夹显示绿色成功图标方法
  • 正点原子--手把手教你轻松入门C语言及STM32
  • 【RabbitMQ】与ASP.NET Core集成
  • IMO2025 Problem 1
  • Day6综合案例2-注册信息
  • 2014吉林省赛题解 | CCUT应用OJ——Sign in
  • 访答知识库-可以本地使用的知识库
  • 代码大全2 第三四章