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

new BlockBreakEvent

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

  1. BeYkeR

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

    Баллы:
    173
    Если использовать breakNaturally(), то нет:

    Код:
    //*
    https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
    //*
    
    public boolean breakNaturally() {
            // Order matters here, need to drop before setting to air so skulls can get their data
            net.minecraft.server.Block block = this.getNMSBlock();
            byte data = getData();
            boolean result = false;
    
            if (block != null && block != Blocks.AIR) {
                block.dropNaturally(chunk.getHandle().world, x, y, z, data, 1.0F, 0);
                result = true;
            }
    
            setTypeId(Material.AIR.getId());
            return result;
        }
     
  2. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    serega6531,
    Ломание блока плагином в большинстве случаев означает вызов метода block.setType(Material.AIR); или, как в данном случае block.breakNaturally();
    Ни то ни этот метод событие не инициируют и не зависят от него. Именно поэтому его в данному случае нужно вызывать и обрабатывать вручную.
     
    BeYkeR нравится это.

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