
微妙的结局兼容性
最新版Subtle Effects和End Remastered(6.3.0+)的兼容性补丁
它的作用
End Remastered 6.3.0 将 JsonEye.getID() 的返回类型从 ResourceLocation 改为了 String。Subtle Effects 是针对旧签名编译的,由于 JVM 通过完整描述符解析方法,该调用已不存在——它会因 NoSuchMethodError 而崩溃。
本模组自行提供该数据,根据你安装的 End Remastered 版本所暴露的方式读取 ID。只需一次注入,无需注册表条目,不捆绑或修改磁盘上的任何内容。
为何崩溃报告指向了错误的模组
失败的方法调用发生在 Subtle Effects 自身的构造函数内,因此该模组永远无法完成加载——且影响不止于此:
- FML 仅在
debug.log中记录Failed to create mod instance. ModID: subtle_effects。latest.log中无任何记录,屏幕上也无提示。 - Subtle Effects 因缺少
ModContainer,任何之后遍历模组列表的操作都会在此中断。 - 如果安装了 Architectury,你实际得到的崩溃报告是
NoSuchElementException,并指向第一个调用Platform.getMods()的模组——在测试中,这个模组是 Dynamic Surroundings,它与涉及的两个模组都毫无关系。
如果你在排查看似类似的问题,在相信崩溃报告之前,请先在 debug.log 中搜索 Failed to create mod instance。
使用方法
放入即可。无需任何配置。
两个依赖项都是可选的,且补丁仅在两个模组同时存在时才会生效,因此该 JAR 文件在其他情况下是惰性的,默认情况下可以安全地包含在整合包中。
需要 NeoForge 1.21.1。 已在 End Remastered 6.3.0 和 Subtle Effects 1.14.3 上测试。
如果 Subtle Effects 将来发布了自己的修复程序,本模组就不再有存在必要——在添加它之前请先查看其更新日志。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。