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

Помогите Отслеживать уничтожение и создания блоков

Тема в разделе "Разработка плагинов для новичков", создана пользователем travnik, 22 июн 2015.

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

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

    Баллы:
    66
    Добрый день,

    Пишу плагин, который контролирует чтобы игрок не смог поставить больше блоков чем разрешено (Например, чтобы игрок не смог поставить больше 3х карьеров).
    Столкнулся с проблемой, как отследить чтобы игрок не смог поставить блок с помощью черепашки или передвинуть поршнем, а так же как отследить уничтожение блока не игроком, а например другим карьером. Вообщем есть ли какие нить глобальные события которые генерируются при появлении/уничтожении блока в игре?
    Спасибо.
     
  2. Хостинг MineCraft
    <
  3. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Есть ивенты: BlockBreakEvent (когда блок ломают), а когда ставят я забыл.
     
  4. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Глобальных вроде бы нет, только связанное с игроком.[DOUBLEPOST=1434977289,1434977240][/DOUBLEPOST]
    BlockPlaceEvent.
     
  5. Автор темы
    travnik

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

    Баллы:
    66
    Что не хочет срабатывать событие удаление блока

    Код:
    @EventHandler(priority = EventPriority.LOWEST)
        public void onBlockBreak(Block theBlock, Player player) {
    вот событие, что делаю не так?
     
  6. Jamefrus

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

    Баллы:
    66
    Имя в Minecraft:
    JNexil
    А с каких пор так события объявляют?
    Вроде всегда так-то было...
    Код:
        @EventHandler
        public void onBlockDestroy(BlockBreakEvent ev) {
        }
    Код:
    public class Main extends JavaPlugin implements Listener {
    
        @Override
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
        }
    
        @EventHandler
        public void onBlockDestroy(BlockBreakEvent ev) {
        }
    }
     
  7. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    * у говнокодеров. Про ignoreCancelled зря забываете...[DOUBLEPOST=1435072403,1435072262][/DOUBLEPOST]
    Нет. Отследить механизмы нельзя. Они меняют блоки напрямую без всяких там событий. Хотите отслеживать - прикручивайте к ним события.
     
  8. Автор темы
    travnik

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

    Баллы:
    66
    Спасибо, событие срабатывает. Осталось придумать как из мода прокидывать событие.
     

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