微妙的结局兼容性

微妙的结局兼容性

最新版Subtle Effects和End Remastered(6.3.0+)的兼容性补丁

Bug修复

它的作用

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 将来发布了自己的修复程序,本模组就不再有存在必要——在添加它之前请先查看其更新日志。