Ошибка при использование PlayerInteractEvent

Статус
Закрыто для дальнейших ответов.
И?
Какого ответа Вы ждёте?
Я думал что, написал текст и скинул код, а вот вижу что скинул только код, так вот, при использованье этого кода при ломании блока он не ломается
 
В чем проблема в начале проверить действие в PlayerInteractEvent и все, лол. И неужели так тяжело скинуть ВЕСЬ код класса, чтобы мы могли лучше понять в чем проблема?
 
Я думал что, написал текст и скинул код, а вот вижу что скинул только код, так вот, при использованье этого кода при ломании блока он не ломается
Ну что накодил, то и получил.
Фикс.
Код:
@EventHandler
public void onBreak(BlockBreakEvent event) {
    if (!event.getBlock().getType().equals(Material.BARREL)) {
        event.setCancelled(true);
    }
}
 
Ну что накодил, то и получил.
Фикс.
Код:
@EventHandler
public void onBreak(BlockBreakEvent event) {
    if (!event.getBlock().getType().equals(Material.BARREL)) {
        event.setCancelled(true);
    }
}
what? Мне нужно чтобы блок ломался, а не наоборот.
 
Так они и так же ломаются, когда не отменен ивент.
setCancelled(false) нельзя делать, сломаются другие плагины на отмену ивента.
Ну у меня от этого кода:

Код:
    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
        if (event.getClickedBlock() == null) {
            return;
        } else {
            if (event.getClickedBlock().getState() instanceof ShulkerBox
                    || event.getClickedBlock().getState() instanceof Barrel) {
                event.setCancelled(true);
            } else {
                return;
            }
        }
    }
Не ломается блоки, вырубаю плагин и все ломается
 
У тебя конкретно этот шалкеры и бочка(или что это) не ломаются?
 
Убери BlockBreakEvent и вместо метода onPlayerInteract вставь этот
PHP:
    @EventHandler
    void onInteract(PlayerInteractEvent e) {
        if (e.getAction() != Action.RIGHT_CLICK_BLOCK)
            return;
        if (!e.hasBlock())
            return;
        if (e.getClickedBlock().getState() instanceof ShulkerBox || e.getClickedBlock().getState() instanceof Barrel)
            e.setCancelled(true);
    }
 
e.hasBlock() не нужен, т.к. клик идет и так по блоку.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх