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

Помогите Как реализовать выпадение листвы про ломании каким-нибудь инструментом??

Discussion in 'Разработка плагинов для новичков' started by alex315, Apr 20, 2016.

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    alex314
    Доброго времени суток! Появилась необходимость написать плагин на дроп листвы, при ее ломании каким-нибудь инструментом(на данный момент нужны ножницы:D) . Ибо то ли с Термосом прикол или не знаю, но сейчас не дропается листва при ломании ее ножницами. Как это реализовать? Искать причину пока времени нет, поэтому хочу временно решить проблему плагином. Буду очень благодарен помощи! (желательно куском кода)
     
  2. Хостинг MineCraft
    <
  3. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Code:
    @EventHandler
    public void onLeafDestroy(BlockBreakEvent event)
    {
        Player player = event.getPlayer();
    
        if (event.getBlock().getType() == Material.LEAVES)
        {
            if (player.getItemInHand().getType() == Material.SHEARS)
            {
                Location location = event.getBlock().getLocation();
                ItemStack leaf = new ItemStack(Material.LEAVES, 1);
                location.getWorld().dropItemNaturally(location, leaf);
            }
        }
    }
    
    Писал без IDE, могут быть ошибки/неточности. Надеюсь, с инициализацией листенера в майн классе проблем не возникнет?
     
    Last edited: Apr 20, 2016
  4. Автор темы
    alex315

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

    Trophy Points:
    76
    Имя в Minecraft:
    alex314
    Думаю нет) Ближе к вечеру попробую, спасибо большое!)
     
  5. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Как бы при использовании ножниц на листву уже листва падает
     
  6. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Как бы он описал проблему.

    Да кстати, в моём коде будет всегда выпадать дубовая листва, с любого дерева. Так что, тут шаманить нужно =)
     
    Last edited: Apr 20, 2016
  7. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Не дочитал, как обычно.

    Code:
    private final List<Material> leaves = Arrays.asList(new Material[]{Material.LEAVES, Material.LEAVES_2});
    @EventHandler
    public void onBlockBreak(BlockBreakEvent event) {
        if (event.getPlayer() == null) {
            return;
        }
        if (!this.leaves.contains(event.getBlock().getType())) {
            return;
        }
        if (event.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.SHEARS)) {
            ItemStack toDrop = new ItemStack(event.getBlock().getType(), 1, event.getBlock().getData());
            event.getBlock().getWorld().dropItemNaturally(event.getBlock().getLocation(), toDrop);
        }
    }
     
  8. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Я без IDE сложный код не пишу =)
     
  9. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Я такой код в каждом плагине пишу, и уже его выучил нафиг.

    Кстати, сей код валиден для 1.9.*+, ниже пошлёт нафиг. Исправляется под старые версии весьма и весьма просто.
     

Share This Page