nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)

SuperAccessTransformer

Mod

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

Client or server Management

36 downloads
0 followers

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,将大多数 privateprotectedfinal 修饰符转换为 public。该模组还提供 Gradle 插件,使得转换在开发环境中也能直接生效,无需额外 JVM 参数。

核心功能

运行时字节码转换:利用 java.lang.instrument API 与 ASM 库拦截类加载过程并修改字节码。转换规则如下:

  • 移除字段的 privateprotectedfinal 修饰符,并添加 public

  • 移除方法(<clinit> 除外)的 privateprotectedfinal 修饰符,并添加 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::rotlerpWitherBoss::rotlerp 这两个方法不会被转换。

  • NeoForge 模组列表:该模组基于 lowcodefml 加载器,作为 coremod 不会出现在 NeoForge 模组列表中。

External resources


Project members

commonplace

Member


Technical information

License
Client side
optional
Server side
optional
Project ID