MTCompat

基本信息

net.glease.tc4tweak.MTCompat —— 向 MineTweaker 3 注册自定义脚本类, 使 CraftTweaker 脚本能扩展注入(Infusion)行为。

preInit

MineTweakerAPI.registerClass(MTCompatForInfusionExt.class);

注册 Infusion Recipe 模块 里的 MTCompatForInfusionExt, 使脚本可用 mods.tc4tweaks.* 一类调用。

撤销动作

内部匿名类(IUndoableAction 实现,第 21-46 行)实现了 MineTweaker 的完整撤销协议:

方法 行 说明
apply() 21 应用
canUndo() 26 是否可撤销
undo() 31 撤销
describe() 36 动作描述
describeUndo() 41 撤销描述
getOverrideKey() 46 覆盖键(用于合并同类动作)

getOverrideKey 是 MineTweaker 的动作合并机制: 相同 override key 的多次修改只保留一条日志。

MineTweaker 是编译期依赖

build.gradle:178:

compileOnly "MineTweaker3:MineTweaker3-MC1710-Main:1.7.10-3.0.11.23"

compileOnly —— 不打进 jar,运行期需用户自行安装 MineTweaker。 @Mod(dependencies=...) 也没有声明 MineTweaker。

⚠️ 因此 MineTweakerAPI 类在未装 MT 时不存在, preInit() 若无条件调用会 NoClassDefFoundError。 实际安全性取决于 MT 侧注册路径(通常由 MT 主动调用本类), 而非本类主动探测 —— 与 HUDNotification 模块 的 Class.forName 探测写法不同。

相关条目

源码

  • src/main/java/net/glease/tc4tweak/MTCompat.java
  • build.gradle:178