Но LevelReader — это интерфейс, и мод не запустится, если я попытаюсь отредактировать интерфейс.
И после долгих поисков на InterWebs я ничего не нашел. >
Итак, вопрос:
Так как мне изменить метод интерфейса?
Я использую это код: в: MixinLevelReader
Код: Выделить всё
package net.iateminecraft.jetpacksfix.mixin;
import com.mojang.logging.LogUtils;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.LevelAccessor;
import org.slf4j.Logger;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(LevelReader.class)
public abstract class MixinLevelReader {
@Unique
private static final Logger LOGGER = LogUtils.getLogger();
@Unique
LevelAccessor world = (LevelAccessor) (Object) this;
@Inject(at = @At("HEAD"), method = "isEmptyBlock(Lnet/minecraft/core/BlockPos;)Z", cancellable = true)
private void isEmptyBlock(BlockPos blockposition, CallbackInfoReturnable callback) {
LOGGER.info(String.valueOf(world.getBlockState(blockposition).isAir()));
callback.setReturnValue(world.getBlockState(blockposition).isAir());
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... ered-on-mi
Мобильная версия