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

Помогите Задержка стрельбы.

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

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

    Kloper Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    timqxikzz
    Привет.

    Нужно чтобы при нажатии ПКМ из стрелы вылетали снежки, но с некоторой задержкой.

    Вот мой код, он работает, но снежки летят без задержки.


    Код:
    @EventHandler
        public void fire(PlayerInteractEvent e)
        {
            Player p = e.getPlayer();
            if(e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
            
            if(p.getInventory().getItemInHand().getType() == Material.ARROW) {
            
                ItemStack item = e.getPlayer().getInventory().getItemInHand();
                
                if(!item.getItemMeta().hasDisplayName()) return;
                if(!item.getItemMeta().getDisplayName().equals("§4§lFIRE!")) return;
                
            Entity arrow = p.launchProjectile(Snowball.class);
            arrow.setVelocity(p.getLocation().getDirection().multiply(1f));
            arrow.setCustomName("§6§lRepulsor");
            arrow.setCustomNameVisible(true);
            arrow.setFireTicks(14440);
            arrow.setSilent(true);
            }
        }
    P.S - Да, да, код убогий :DDD
     
  2. _MasterCapeXD_

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

    Баллы:
    76
    Имя в Minecraft:
    _MasterCapeXD_
    храни currentTimeMillis в мапе по ключу игрока и если определённое время не прошло, то отменять бросание.
    PS: можешь сделать класс-хранилище кулдаунов и уже его юзать в мапе, типа cooldowns.get(player).isPassed();
     

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