The worst best thing to happen to Fabric modding.
It allows you to do direct bytecode manipulation and aims to make it "easy". You should only use this when mixins really can't do what you need.
Anything you want it to, since it allows you to edit classes at the most basic level.
Just be mindful of what classes you load and things should work fine.
- Raw class transformations
- A large collection of helper methods
- @ForceBootstrap and @ForceInline for when you need
to break thingsspeed. - Custom entry point
Create a class the implements AsmInitializer
and put it in your mod config file as an entrypoint, something like:
{
...
"entrypoints": {
"gud_asm": [
"com.example.mod.ILikeBreakingThings"
]
},
...
}
Then implement the AsmInitializer.onInitializeAsm()
method and do something like this:
package com.example.mod;
import net.gudenau.asm.api.v0.AsmInitializer;
import net.gudenau.asm.api.v0.AsmRegistry;
public class ILikeBreakingThings implements AsmInitializer{
@Override
public void onInitializeAsm(){
AsmRegistry.getInstance().registerTransformer(new AmazingTransformer());
}
}
The rest should be pretty straight forward.
Also, please don't combine AsmInitializer
with other initializers. That is just asking for crashes.