
Malstone x Fantasy 结局兼容性
修复了Forge 1.20.1版本中Malstone和Fantasy Ending之间出现的StackOverflowError崩溃问题。
Malstone x Fantasy Ending 兼容补丁
一个适用于 Minecraft Forge 1.20.1 的兼容补丁,用于修复 Malstone 与 Fantasy Ending 之间导致游戏崩溃的冲突。
问题
当两个模组同时安装时,创建世界会因 java.lang.StackOverflowError 而崩溃,其原因是 getMaxHealth 与 getHealth 之间形成了无限循环。
修复方案
Fantasy Ending 会将所有 getHealth() 调用都经由 EntityASMUtil#special_getHealth 转发,而后者会请求 getMaxHealth()。Malstone 向 getMaxHealth() 中添加了会调用 Player#isAlive() 的代码,而原版的 isAlive() 又会再次调用 getHealth()。结果就是无限递归。
本补丁在最大生命值查询周围添加了一个按线程的重入保护:
- 第一次调用行为与之前完全一致,因此 Malstone 的 ToughBlood 加成仍然有效。
- 任何嵌套调用都只返回原版的最大生命值,而不会无限递归下去。
本补丁仅在 同时 安装了 Malstone 和 Fantasy Ending 时才会生效。如果缺少其中任意一个模组,它不会执行任何操作。
前置要求
- Minecraft 1.20.1
- Forge 47.x
- Malstone
- Fantasy Ending
安装方法
- 照常安装 Malstone 和 Fantasy Ending。
- 将
malstone_fe_compat-1.0.0.jar放入你的mods文件夹。 - 启动游戏。创建世界不再崩溃。
备注
- 这是一个客户端/服务端补丁;如果你在服务器上游玩,请在两端都安装它。
- 仓库所有者不懂代码,也不了解 GitHub;本项目完全由 DeepSeek(一个 AI 助手)创建。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。