1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Krutius, 21 янв 2018.

Статус темы:
Закрыта.
  1. Автор темы
    Krutius

    Krutius Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    Приветик всем! Мне нужно отследить топтание грядок. Не подскажете, как это можно сделать?
     
  2. Lunyasha

    Lunyasha Активный участник Пользователь

    Баллы:
    61
    Skype:
    live:mail_58380
    Имя в Minecraft:
    Night1ngale
    Топтание грядок входит в PlayerInteractEvent, Action.PHYSICAL.

    Код:
    if (event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType() == Material.SOIL) {
    //todo
    }
    Учти что в 1.13 материал грядок изменится.
     
  3. Автор темы
    Krutius

    Krutius Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    Спасибо!
     
  4. Автор темы
    Krutius

    Krutius Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    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);
            }
        }

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

    AtomicScience Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Не факт, что этот эвент вообще отвечает за топтание грядок, поэтому попробуй удалить проверки в if и потопчи грядки, чтобы убедиться в обратном
     
  6. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Если игрока не надо получать то можно через BlockFadeEvent (мне на JIRA подсказали, также, возможно, добавят евент для контроля влажности грядки)
     
  7. Автор темы
    Krutius

    Krutius Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    Убрал IF и получил то же НИЧЕГО, поэтому буду искать другой ивент.
     
  8. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    А аннотация намеренно опущена, или пропущена?
     
  9. Автор темы
    Krutius

    Krutius Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    Не понял сути вопроса.
     
  10. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    @EventHandler перед методом.
    Туда же вопрос, был ли зарегистрирован листенер с этим методом.
     
  11. Автор темы
    Krutius

    Krutius Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    Ох.. Что-то я забыл про @EventHandler ...
    Извиняюсь за "разборки" длинной в 9 сообщений. Теперь буду внимательнее.

    Спасибо, @Reality_SC :coffee:
     
  12. Автор темы
    Krutius

    Krutius Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MrPencilBox
    Для тех, кто ищет ответ.

    Верное решение предоставил Lunyasha, за что ему огромное спасибо!
     
Статус темы:
Закрыта.

Поделиться этой страницей