- 25
- 1
- 2
Хочу добавить код перед или после this.fillStateContainer(builder); в конструкторе Block.
В анотации моего миксина, скорее всего, написана хрень...
Как мне это сделать?
Где можно подробнее почитать про дескрипторы, такие как "Lnet/minecraft/block/Block;fillStateContainer(Lnet/minecraft/state/StateContainer/BuilderV ?
Цель:
public Block(Block.Properties p_i48440_1_) {
Builder<Block, BlockState> builder = new Builder(this);
this.fillStateContainer(builder); // вставить после
this.material = p_i48440_1_.material;
this.materialColor = p_i48440_1_.mapColor;
...
}
Мой миксин:
@Mixin(Block.class)
public class BlockMixin implements IBlockAccess {
@Redirect(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;fillStateContainer(Lnet/minecraft/state/StateContainer/Builder;)V"))
protected void fillStateContainer(Block block, StateContainer.Builder<Block, BlockState> builder) {
System.out.println("fillStateContainer for " + this.getClass()); // никогда не вызывается
}
}
Как мне это сделать?
Где можно подробнее почитать про дескрипторы, такие как "Lnet/minecraft/block/Block;fillStateContainer(Lnet/minecraft/state/StateContainer/BuilderV ?
- Краш-лог
-
warning: Cannot find method mapping for @At(INVOKE.<target>) 'Lnet/minecraft/block/Block;fillStateContainer(Lnet/minecraft/state/StateContainer/Builder;)V'
@Redirect(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;fillStateContainer(Lnet/minecraft/state/StateContainer/Builder;)V"))
^
Краш-лог:
warning: Cannot find method mapping for @At(INVOKE.<target>) 'Lnet/minecraft/block/Block;fillStateContainer(Lnet/minecraft/state/StateContainer/Builder;)V'
@Redirect(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;fillStateContainer(Lnet/minecraft/state/StateContainer/Builder;)V"))
^
Последнее редактирование: