Помогите Отслеживание топтания грядок

  • Автор темы Автор темы Krutius
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Krutius

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
MrPencilBox
Приветик всем! Мне нужно отследить топтание грядок. Не подскажете, как это можно сделать?
 
Топтание грядок входит в PlayerInteractEvent, Action.PHYSICAL.

Код:
if (event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType() == Material.SOIL) {
//todo
}

Учти что в 1.13 материал грядок изменится.
 
UPD. Для теста набросал такой код
upload_2018-1-21_18-42-41.png

Код:
    public void OnSeedJump(PlayerInteractEvent event) {
        if (event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType() == Material.SOIL) {
            Bukkit.getConsoleSender().sendMessage("OnSeedJump Event!");
            event.getPlayer().sendMessage("OnSeedJump Event!");
            event.setCancelled(true);
        }
    }

Сообщение не выводится, грядки топчутся. Всё ещё требуется помощь.
 
UPD. Для теста набросал такой код
Посмотреть вложение 49600

Код:
    public void OnSeedJump(PlayerInteractEvent event) {
        if (event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType() == Material.SOIL) {
            Bukkit.getConsoleSender().sendMessage("OnSeedJump Event!");
            event.getPlayer().sendMessage("OnSeedJump Event!");
            event.setCancelled(true);
        }
    }

Сообщение не выводится, грядки топчутся. Всё ещё требуется помощь.

Не факт, что этот эвент вообще отвечает за топтание грядок, поэтому попробуй удалить проверки в if и потопчи грядки, чтобы убедиться в обратном
 
Если игрока не надо получать то можно через BlockFadeEvent (мне на JIRA подсказали, также, возможно, добавят евент для контроля влажности грядки)
 
Не факт, что этот эвент вообще отвечает за топтание грядок, поэтому попробуй удалить проверки в if и потопчи грядки, чтобы убедиться в обратном
Убрал IF и получил то же НИЧЕГО, поэтому буду искать другой ивент.
 
Для тех, кто ищет ответ.

Верное решение предоставил Lunyasha, за что ему огромное спасибо!
Топтание грядок входит в PlayerInteractEvent, Action.PHYSICAL.

Код:
if (event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType() == Material.SOIL) {
//todo
}

Учти что в 1.13 материал грядок изменится.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх