tutorial:mixin_accessors
This is an old revision of the document!
Table of Contents
Mixin Accessors
Introduction
Mixin Accessors allow you to access fields and methods that are not visible (private) or final.
Accessor
@Accessor
allows you to access fields.
Set a value to a field
@Mixin(MinecraftClient.class) public interface MinecraftClientAccessor { @Accessor("itemUseCooldown") public int getItemUseCooldown(); }
Usage:
int itemUseCooldown = ((MinecraftClientAccessor) MinecraftClient.getInstance()).getItemUseCooldown();
Get a value from a field
@Mixin(MinecraftClient.class) public interface MinecraftClientAccessor { @Accessor("itemUseCooldown") public void setItemUseCooldown(int itemUseCooldown); }
Usage:
((MinecraftClientAccessor) MinecraftClient.getInstance()).setItemUseCooldown(100);
Provider
@Provider
allows you to access methods.
@Mixin(EndermanEntity.class) public interface EndermanEntityInvoker { @Provider public boolean teleportTo(double x, double y, double z); }
Usage:
EndermanEntity enderman = ...; ((EndermanEntityInvoker) enderman).teleportTo(0.0D, 70.0D, 0.0D);
tutorial/mixin_accessors.1598351960.txt.gz · Last modified: 2020/08/25 10:39 by siglong