SuperAccessTransformer
将大多数类的修饰符设置为public和非final运行时属性,并支持在开发过程中使用它们。
SuperAccessTransformer (SAT) 是一个开源的 Minecraft 1.21+ coremod,通过在运行时注入 Java Agent 来修改访问修饰符,将大多数 private、protected 和 final 成员转换为 public。它还包含一个 Gradle 插件,允许转换在开发环境中无需额外 JVM 参数即可生效。
核心功能
运行时字节码转换:使用 java.lang.instrument API 和 ASM 库来拦截类加载并修改字节码。转换规则如下:
移除字段的
private、protected和final修饰符,并添加public移除方法(
<clinit>除外)的private、protected和final修饰符,并添加public跳过接口和枚举的
$VALUES字段
开发环境支持
Gradle 插件集成:将 SAT Gradle 插件添加到你的项目中,以在开发时启用转换。该插件与 Fabric 和 NeoForge 模块均兼容。
buildscript {
dependencies {
classpath 'io.github.yiyuyan:SuperAccessTransformerPlugin:1.000'
}
}
apply plugin: 'io.github.yiyuyan.sat-plugin'
你也可以在 test 分支找到针对 Architectury NeoForge 1.21 的示例配置:yiyuyan/SuperAccessTransformer (test)
已知限制与提示
Fabric Loader 开发环境:
Mob::rotlerp和WitherBoss::rotlerp方法不会被转换。NeoForge 模组列表:作为使用
lowcodefml加载器的 coremod,SAT 不会出现在 NeoForge 模组列表中。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。