Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите BlockEvent

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

  1. Автор темы
    Den42

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

    Баллы:
    66
    Помогите! Как добавить обработчика для BlockEvent?
     
  2. Хостинг MineCraft
    <
  3. OsipXD

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

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    Разве можно ловить это событие?
     
    Последнее редактирование: 13 мар 2017
  4. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Никак, данное событие не имеет HandlerList, соответственно подписаться на него нельзя.
     
  5. Dymeth

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

    Баллы:
    76
    Ты можешь создать собственное событие, наследующее BlockEvent и его уже регистрировать.
    Если хочешь, допустим, отменять и установку, и уничтожение блоков - придётся слушать два события: BlockBreakEvent & BlockPlaceEvent.
    Регистрируется класс с эвентами точно так же, как и любой другой слушатель событий
     
  6. GoodCoder

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

    Баллы:
    76
    Только так. Подписаться на абстрактный класс нельзя.
    Код:
    public class Example implements Listener {
    
       @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
       public void handleBlockPlace(BlockPlaceEvent e) {
         processBlockEvent(e);
       }
    
       @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
       public void handleBlockPlace(BlockBreakEvent e) {
         processBlockEvent(e);
       }
    
       private void processBlockEvent(BlockEvent event) {
         // тут ваш код
       }
    
    }
     

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