跳到正文

SuperAccessTransformer

作者:commonplace

Set the modifiers of most classes to public and non-final runtime attributes, and support their use during the development.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

English

SuperAccessTransformer (SAT) is an open-source coremod for Minecraft 1.21+ that modifies access modifiers at runtime by injecting a Java Agent, converting most private, protected, and final members to public. It also includes a Gradle plugin, allowing the transformations to work in development environments without extra JVM arguments.

Core Functionality

Runtime Bytecode Transformation: Uses the java.lang.instrument API along with the ASM library to intercept class loading and modify bytecode. The transformation:

  • Removes private, protected, and final modifiers from fields and adds public
  • Removes private, protected, and final modifiers from methods (except <clinit>) and adds public
  • Skips interfaces and enum $VALUES fields

Development Environment Support

Gradle Plugin Integration: Add the SAT Gradle plugin to your project to enable transformation at development time. The plugin is compatible with both Fabric and NeoForge modules.

buildscript {
    dependencies {
        classpath 'io.github.yiyuyan:SuperAccessTransformerPlugin:1.000'
    }
}
apply plugin: 'io.github.yiyuyan.sat-plugin'

You can also find an example setup for Architectury NeoForge 1.21 at the test branch: yiyuyan/SuperAccessTransformer (test)

Known Limitations & Notes

  • Fabric Loader Dev Environment: Mob::rotlerp and WitherBoss::rotlerp methods will not be transformed.
  • NeoForge Mod List: As a coremod using the lowcodefml loader, SAT does not appear in the NeoForge mod list.

简体中文

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 插件可在开发环境中启用运行时转换,同时适用于 Fabric 与 NeoForge 模块.

buildscript {
    dependencies {
        classpath 'io.github.yiyuyan:SuperAccessTransformerPlugin:1.000'
    }
}
apply plugin: 'io.github.yiyuyan.sat-plugin'

你也可以参考针对 Architectury NeoForge 1.21 的示例项目:yiyuyan/SuperAccessTransformer at test

已知限制与提示

  • Fabric Loader 开发环境:Mob::rotlerp 和 WitherBoss::rotlerp 这两个方法不会被转换。
  • NeoForge 模组列表:该模组基于 lowcodefml 加载器,作为 coremod 不会出现在 NeoForge 模组列表中。

常见问题

SuperAccessTransformer 支持哪些 Minecraft 版本?

SuperAccessTransformer 支持 Minecraft Java 版 1.21–26.2,共 16 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。

SuperAccessTransformer 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端 / 服务端。

评论

登录后评论和评分

commonplace 的其他作品

查看全部 →