不再有姿势崩溃

不再有姿势崩溃

自动修复由Pehkui与自定义实体渲染器冲突导致的臭名昭著的“Pose stack not empty”崩溃问题。不再有随机断线。

Bug修复

PoseStack Guardian

彻底阻止“Pose stack not empty”崩溃。

如果你的整合包同时使用了 Pehkui(实体缩放)和带有自定义实体渲染器的模组(如 AzureLib、GeckoLib、Artifacts、冰与火传说等),你很可能遇到过因以下错误而随机断开连接的情况:

java.lang.IllegalStateException: Pose stack not empty

这是一个已知的、存在多年且被反复报告给 Pehkui 的兼容性问题。PoseStack Guardian 会在渲染状态不平衡即将导致游戏崩溃前检测到它,并安全地予以纠正——从此告别断开连接。

特性

  • 自动检测与纠正,零配置
  • 轻量级,仅客户端
  • 极简日志记录(不会刷屏你的控制台)

这是一种临时解决方案,而非根本性修复

根本的 Bug 在于 Pehkui 的渲染钩子与某些自定义实体渲染器的交互方式。本模组安全地处理症状(崩溃),而不去触碰实际冲突的模组。完整的免责声明请查看 Modrinth 页面 / GitHub 仓库。

需求

  • Fabric Loader
  • Minecraft 1.21.1
  • 仅客户端(在服务器上也是安全的,只是不会在服务端执行任何操作)

支持

如果你遇到了本模组无法解决的问题?请附上你的 latest.log 和模组列表提交一个 issue。

 

免责声明

本模组是一种临时解决方案,并非官方修复。

  • 它不修复 Pehkui 或任何其他模组内部的 Bug。它拦截一个特定的崩溃症状(渲染变换栈不平衡)并在最后一刻安全地纠正它,避免其导致游戏崩溃。
  • 它是针对一个特定的、有据可查的崩溃特征(源自 Pehkui 实体渲染钩子的 Pose stack not empty)构建和测试的。它不是针对此异常所有可能原因的通用修复——如果你的崩溃源于不同的模组交互,本模组可能无法捕获。
  • 在发生纠正的确切帧中,有很小的概率会出现一次美观上的、单帧的视觉小故障(例如实体的缩放/旋转看起来非常短暂地“异常”)。这是预期的——否则将导致完全的崩溃/断开连接,本模组用这个微不足道、通常难以察觉的视觉小问题换取了稳定运行。
  • 本模组不修改、修补或重新分发 Pehkui 或任何其他第三方模组的任何代码。它仅通过标准的 Fabric Mixin 钩子观察和纠正 Minecraft 自身的渲染变换栈。
  • 请自行斟酌使用。作者对因将本模组与其他模组组合使用而产生的任何问题概不负责。在添加新模组之前,请务必备份你的世界/服务器。
  • 如果你是 Pehkui(或其他模组)的维护者,并认为本模组的存在指向了你希望在上游修复的问题,请联系我——如果有官方修复,本模组将欣然被淘汰。

路线图 / 未来开发构想

  • 添加配置选项,用于在“静默自动修复”(当前默认)和“仅记录 / 检测模式”(旧的仅调试行为)之间切换,方便那些想要诊断自身模组冲突而不被自动修复掩盖问题的人。
  • 在日志中添加按模组归属的功能——自动解析堆栈跟踪并仅打印出负责的模组 ID(例如“检测到来自:pehkui 的泄漏”),而不是原始的 Java 堆栈跟踪,这样非技术用户也能立即分辨出涉及的是哪个模组。
  • 更广泛的检测覆盖范围——目前针对一个已知能捕获 Pehkui + 自定义渲染器案例的特定注入点。研究是否能将该技术推广,以捕获来自其他来源的不平衡姿态栈。
  • 指标/遥测(仅限选择加入)——可选的匿名统计自动修复触发的频率以及其追溯到哪个模组,以帮助构建已知冲突模组组合的公开列表。
  • 支持 1.20.x / 1.21.x 版本范围——目前仅针对 1.21.1 构建和测试。一旦核心方法被确认为长期稳定,将进行向后/向前移植。
  • 针对 Quilt 的专项测试——由于它构建在 Fabric Loader API 之上,应该可以工作,但尚未在 Quilt 上明确测试过。
  • 减少对人工核对的 Yarn 方法名的依赖(用于注入目标)——研究一种更能适应映射变化的定位方式,以便在 Minecraft/Yarn 版本更新时精确找到检查点。

如果你遇到了本模组未能捕获的情况,请附上你的日志提交一个 issue——这将直接有助于确定上述路线图的优先级。