访问转换器修复

访问转换器修复

修复了访问转换器相关的库存界面崩溃问题,通过合并类转换器更改并以最终的Mixin优先级重复应用。

Bug修复

访问转换器修复

恢复访问转换器。消除访问错误。

访问转换器修复是 NeoForge 整合包的一款兼容性工具,可在运行时恢复缺失或未正确应用的访问转换器(AT)更改。

大型整合包偶尔会遇到某些类在没有完成所有必要访问转换的情况下被加载的情况。这可能导致看似随机的崩溃,例如:

  • IllegalAccessError
  • 无法访问的 Minecraft 方法或字段
  • GUI 渲染崩溃
  • 物品栏界面故障
  • 原本兼容的模组之间出现不兼容

访问转换器修复不会修补单个模组,而是自动发现并合并已安装模组中的访问转换器定义,以恢复预期的访问级别。


功能

  • 自动扫描已安装模组中的 META-INF/accesstransformer.cfg
  • 检测并合并来自多个模组的访问规则
  • 应用所需的最宽可见性来解决冲突的访问级别
  • 生成详细的诊断报告以进行故障排查
  • 设计用于任何 NeoForge 整合包
  • 无需任何配置

冲突解决

如果多个模组对同一个类成员请求不同的访问级别,访问转换器修复始终应用所需的最宽可见性。

示例:

模组 A:
protected findSlot(...)

模组 B:
public findSlot(...)

结果:
public findSlot(...)

这保证了每个模组至少获得其所需的访问级别。


诊断

该模组会在 logs 目录中生成详细报告,使整合包作者能够检查发现的访问转换器、合并规则以及检测到的冲突。

这些报告使得诊断兼容性问题比仅仅依赖崩溃日志要容易得多。


预期用途

该模组适用于:

  • 大型 NeoForge 整合包
  • 兼容性测试
  • 调试访问转换器问题
  • 从加载器不一致状态中恢复
  • 识别冲突的访问转换器定义

兼容性

专为 NeoForge 1.21.1 设计。

该模组不进行任何游戏性更改,除非明确识别出兼容性问题,否则在客户端和服务端环境中均可安全包含。