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

  • Автор темы Автор темы alex315
  • Дата начала Дата начала

alex315

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
alex314
Доброго времени суток! Появилась необходимость написать плагин на дроп листвы, при ее ломании каким-нибудь инструментом(на данный момент нужны ножницы:D) . Ибо то ли с Термосом прикол или не знаю, но сейчас не дропается листва при ломании ее ножницами. Как это реализовать? Искать причину пока времени нет, поэтому хочу временно решить проблему плагином. Буду очень благодарен помощи! (желательно куском кода)
 
Доброго времени суток! Появилась необходимость написать плагин на дроп листвы, при ее ломании каким-нибудь инструментом(на данный момент нужны ножницы:D) . Ибо то ли с Термосом прикол или не знаю, но сейчас не дропается листва при ломании ее ножницами. Как это реализовать? Искать причину пока времени нет, поэтому хочу временно решить проблему плагином. Буду очень благодарен помощи! (желательно куском кода)
Java:
@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, могут быть ошибки/неточности. Надеюсь, с инициализацией листенера в майн классе проблем не возникнет?
 
Последнее редактирование:
Код:
@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, могут быть ошибки/неточности. Надеюсь, с инициализацией листенера в майн классе проблем не возникнет?
Думаю нет) Ближе к вечеру попробую, спасибо большое!)
 
Как бы при использовании ножниц на листву уже листва падает
 
Как бы при использовании ножниц на листву уже листва падает
Как бы он описал проблему.

Да кстати, в моём коде будет всегда выпадать дубовая листва, с любого дерева. Так что, тут шаманить нужно =)
 
Последнее редактирование:
Как бы он описал проблему.
Не дочитал, как обычно.

Java:
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);
    }
}
 
Не дочитал, как обычно.

Java:
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);
    }
}
Я без IDE сложный код не пишу =)
 
Я без IDE сложный код не пишу =)
Я такой код в каждом плагине пишу, и уже его выучил нафиг.

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