Skip to content

编写Transformer

zl930 edited this page Aug 5, 2024 · 3 revisions

新建一个class

Note

若你想在dev.zl930.lepton.core.injection.transformer.asm包外编写,请你在dev.zl930.lepton.util.Constants中的

public static final String[] TRANSFORMER_PACKAGES = {
    MAIN_PACKAGE + ".core.injection.transformer.asm"
};

添加你的包名,这样就可以检测到你的Transformer了

package dev.zl930.lepton.core.injection.transformer.asm;

@CTransformer(Minecraft.class)
public class MixinMinecraft {
    @CInline
    @CInject(method = "runTick", target = @CTarget(value = "INVOKE", target = "Lnet/minecraft/profiler/Profiler;startSection(Ljava/lang/String;)V", ordinal = 0, shift = CTarget.Shift.AFTER))
    private void preRunTick() {
        Lepton.getINSTANCE().getEventBus().call(new EventPreTick());
    }
}

语法请查看ClassTransform

Important

在此声明的任何方法都需要添加@CInline注解,否则无法进行热注入

Clone this wiki locally