Отслеживать нажатие правой кнопкой мыши по блоку

17
1
1
Здравствуйте, возникла такая проблема: хочу обрабатывать использование предмета по блоку. Видел несколько примеров, но они на более старую версию. (Я новичок, так что не бейте). Я помню, что нужно вроде бы использовать ActionResultType(по крайней мере это работало при обработке события right клика по блоку).
 
1,560
86
204
Существует метод onItemUse, который возращает ActionResultType.
Java:
@Nonnull
@Override
public ActionResultType onItemUse(ItemUseContext context) {
    context.getPlayer(); // получение игрока
    context.getPos(); // получить позицию блока
    context.getFace(); // получить сторону блока
    context.getHitVec(); // получение вектора взаимодействия
    context.getWorld(); // получение мира

    return ActionResultType.SUCCESS; // удачно, взмах руки
    return ActionResultType.PASS; // тоже удачно, но рука не взмахивает
    return ActionResultType.FAIL; // неудачно
    return ActionResultType.CONSUME; // удачно, как я понял, ещё не отменяет взаимодействие с блоком или с сущностью
}
 
context.getWorld().getBlockState(context.getPos());
но как его с чем-то сравнить? Я хотел что-то на подобии вот этого сделать:

Java:
Object item = context.getItem();
Object block = context.getWorld().getBlockState(context.getPos());
if(block == RegistryHandler.CATAZ_ORE && item == RegistryHandler.COMPRESSED_GEM){
    
}/CODE]
 
Последнее редактирование:
1,560
86
204
Зачем Object использовать если возвращаемые объекты известны?
Java:
ItemStack item = context.getItemInHand().getItem();
Block block = context.getWorld().getBlockState(context.getPos()).getBlock();
if (block == RegistryHandler.CATAZ_ORE && item == RegistryHandler.COMPRESSED_GEM) {
    // ...
}
 
Последнее редактирование:
Сверху