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

Помогите Очищение эффектов зейли

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

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

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

    Trophy Points:
    66
    подскажите как с помощью if можно реализовать похожее, нужно проверить есть ли эффекты Любые на игроке и если есть очистить:

    Code:
        @EventHandler
        public void join (PlayerJoinEvent e){
            Player p = e.getPlayer();
            String name = p.getName();
                 
            for(PotionEffect effect : p.getActivePotionEffects())
            {
                p.removePotionEffect(effect.getType());
                p.sendMessage(name + ", очищен от эффектов!");
            }
    
     
    Last edited: Jun 2, 2016
  2. Хостинг MineCraft
    <
  3. MrTrojan

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

    Trophy Points:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Ты не русский?
     
  4. Mr_RoboMan

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

    Trophy Points:
    123
    p.hasPotionEffect(PotionEffectType)
     
  5. Автор темы
    pavelf8

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

    Trophy Points:
    66
    Code:
        public void interact (Player p){
            if(p.hasPotionEffect(PotionEffectType.JUMP) == true);       
        }
    а как проверить все эффекты а не один конкретный?
     
  6. Mr_RoboMan

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

    Trophy Points:
    123
    p.hasPotionEffects()
    P.S. При сравнение в if типа boolean не обязательно делать
    if(p.hasPotionEffect(PotionEffectType.JUMP) == true);
    можно просто
    if(p.hasPotionEffect(PotionEffectType.JUMP));
     
  7. Автор темы
    pavelf8

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

    Trophy Points:
    66
    без аргумента эклипс ошибку дает
    Code:
        @EventHandler
        public void interact (Player p){
            if(p.hasPotionEffects());       
        }
        
     
  8. Dymeth

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

    Trophy Points:
    76
    Нужно сделать проверку наличия хотя бы одного эффекта? Можно, конечно, но зачем? Проще банально все эффекты удалить.
    Или я не понял суть вопроса?
     
  9. GigiGgJBIRE

    GigiGgJBIRE Активный участник

    Trophy Points:
    61
    могу предложить не совсем правильный код, но он должен работать так:
    Ивент захода на сервер (Player p)
    Задать команду из консоли: /effect имя_p clear
    Конечно, лучше мне было скинуть код, но вижу что тема заброшена и поэтому скину просто альтернативу в словах.
     

Share This Page