Помогите Не работает block break event

Welester

Участник
Пользователь
Баллы
36
Имя в Minecraft
Welester
Вот код:
Java:
if(getConfig().getInt("jobs." + p.getPlayer()) == 1){
                    if(e.getBlock().getType() !=Material.WHEAT){
                        e.setCancelled(true);
                    }
                }
Суть в том, что если блок не пшеница, то неразрушаемый, однако я ломаю пшеницу, и ничего, она такая же неуязвимая, как и другие .
Я никак не пойму, в чём тут ошибка?
 
Вот код:
Java:
if(getConfig().getInt("jobs." + p.getPlayer()) == 1){
                    if(e.getBlock().getType() !=Material.WHEAT){
                        e.setCancelled(true);
                    }
                }
Суть в том, что если блок не пшеница, то неразрушаемый, однако я ломаю пшеницу, и ничего, она такая же неуязвимая, как и другие .
Я никак не пойму, в чём тут ошибка?
Может быть потому что Material.WHEAT это не блок???
 
Хм вопрос конечно интересный, столкнулся с этой проблемой когда писал квест на сервере на разрушение блоков. В итоге сделал квест на доставку а не разрушение. (citezens + quest)

Как узнать какой блок сломал?

Код:
Logger log = getLogger();

@EventHandler
private void breacBlock(BlockBreakEvent e){
Block block = e.getBlock();
log.info('BreakBlock '+block.getType());
}

Запустить сервер, останеться сломать пшеницу и посмотреть что напишет.
 
  1. Я ещё раз (третий) постараюсь намекнуть ТСу на то, что получать инстанс игрока и неявно кастовать его к строке не очень хорошая идея, т.к. при входе/выходе игрока и уж тем более рестарте сервера объект будет иметь совершенно другой случайный адрес.
    upload_2016-9-26_12-30-19.png
    Либо я чего-то не знаю и в Player-е перегружен метод toString(), который выдаёт вместо "Player#<адрес>" реально его ник или uuid?

  2. Вероятно, ТС отменяет событие для всех блоков ( setCancelled(true) ), а для пшеницы он хочет отменить отмену ( setCancelled(false) )?
    upload_2016-9-26_12-31-56.png
 
Ему нужен просто p.getName(). p.getPlayer () должен вроде сохраняться как CraftPlayer[NICK] или приближенный к этому виду в конфиге(во всяком случае так выводил System.out.print)
 
Назад
Верх