- 41
- 1
Привет, вот метод класса моего предмета, который странно работает:
Я создал новый блок(без своего класса) и новый предмет (С своим классом), в предмете я отслеживаю блок по которому игрок кликает и если этот блок является моим новым блоком, то вызываю метод SpawnSmoke, который работает исправно.
Проблема заключается в том, что
HookahHoseItem:
@Override
public @NotNull InteractionResult useOn(UseOnContext context) {
Player player = context.getPlayer();
Level level = context.getLevel();
if (level.getBlockState(context.getClickedPos()).getBlock() == KALBLOCK.get()) {
SpawnSmoke(level, player);
player.getCooldowns().addCooldown(this, 40);
return InteractionResult.SUCCESS;
}
player.getItemInHand(InteractionHand.MAIN_HAND).hurtAndBreak(1, player,
player1 -> player1.broadcastBreakEvent(player1.getUsedItemHand()));
System.out.println(level.getBlockState(context.getClickedPos()).getBlock());
System.out.println(KALBLOCK.get());
return super.useOn(context);
}
Я создал новый блок(без своего класса) и новый предмет (С своим классом), в предмете я отслеживаю блок по которому игрок кликает и если этот блок является моим новым блоком, то вызываю метод SpawnSmoke, который работает исправно.
Проблема заключается в том, что
level.getBlockState(context.getClickedPos()).getBlock() == KALBLOCK.get()
срабатывает всегда, на какой блок я бы не кликал, хотя так не должно быть.
Последнее редактирование: