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

[Решено] Отмена сообщения WorldGuard

Тема в разделе "Разработка плагинов для новичков", создана пользователем CoolBoy, 24 май 2016.

Статус темы:
Закрыта.
  1. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Проверять в lowest возможность ломания блока. Если блок сломать нельзя, оставляем всё как есть (т.е. ретурним все нафиг).
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Если осуществлять проверку так:
    Код:
    @EventHandler (priority = EventPriority.LOWEST)
    public void onLowestBreak(BlockBreakEvent event)
    {
        if (event.isCancelled())
        {
            return;
        }
    
        event.setCancelled(true);
    }
    
    то LOWEST сработает раньше WorldGuard и словит false.

    Тоесть, выходит, проверку на "можно ломать блок, или нельзя" я сюда прилепить не могу?

    Или мне через API WG проверять? Типо - canBuild?
     
  4. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Код:
    @EventHandler (priority = EventPriority.LOWEST)
    public void onLowestBreak(BlockBreakEvent event)
    {
        if (!this.canBreakBlock(event)) {
            return;
        }
    
        if (event.isCancelled())
        {
            return;
        }
    
        event.setCancelled(true);
    }
    
    Хотя я вообще не знаю, что ты хочешь сделать.
     
  5. Автор темы
    CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Нет метода canBreakBlock. Предлагает создать.

    Если проверять через WG:
    Код:
    @EventHandler (priority = EventPriority.LOWEST)
    public void onLowestBreak(BlockBreakEvent event)
    {
        Player player = (Player) event.getPlayer();
        Block block = (Block) event.getBlock();
    
        if (!this.plugin.getWorldGuard.canBuild(player, block))
        {
            return;
        }
    }
    
    то он опять начинает выводить мне сообщение WG, даже когда я могу ломать блок.

    Чёт ору со всего этого говнокода с приоритетами.[DOUBLEPOST=1464165124,1464163913][/DOUBLEPOST]Решено.

    Всё было гораздо проще чем я думал.
    Всем группам указанным в конфиге я выставил "worldguard.region.bypass.*",
    что автоматически отменяет все баги с сообщениями от WorldGuard.

    Лучше пока решения не нашёл.
    Всем кто отвечал до этого момента - спасибо. Узнал немного новой информации, для себя, о приоритетах в евентах :)
     
    Последнее редактирование: 25 май 2016
Статус темы:
Закрыта.

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