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.javabuild.gradle:178