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

Помогите Отключить эффект зелья или удалить эффект с игрока

Тема в разделе "Помощь", создана пользователем Ytelfxybr, 23 июн 2016.

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

    Ytelfxybr Ньюби

    Баллы:
    1
    Доброй ночи. Подскажите, можно ли, выдавая в коде игроку зелье, отключить эффекты, которые накладываются при выпивании этого зелья?
    Если нет, то как удалить эти эффекты с игрока после их наложения?

    Все это происходит в методе onPlayerFinishConsume(PlayerItemConsumeEvent event), игрок пьет зелье резиста огню и мне нужно избавиться от самого эффекта резиста.

    Я пробовал реализацию:
    Код:
    event.getPlayer().removePotionEffect(PotionEffectType.FIRE_RESISTANCE);
    Но это не работает.

    Так же еще один вопрос. В описании зелья есть такой пункт как "Огнестойкость (время)", через изменение lore его как-то убрать можно или за это отвечает что-то другое?
     
    Последнее редактирование: 23 июн 2016
  2. xDark

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

    Баллы:
    96
    @EventHandler
    public void splashEvent(PotionSplashEvent event){
    for(LivingEntity player : event.getAffectedEntities()){
    if(player instanceof Player){
    final Player p = (Player) player;
    p.addPotionEffect(new PotionEffect(PotionEffectType.эффект, 1*0, 0));
    this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
    public void run(){
    p.removePotionEffect(PotionEffectType.эффект);
    }
    }, 1L);
    }
    }
    }
    Код:
    @EventHandler
            public void splashEvent(PotionSplashEvent event){
                for(LivingEntity player : event.getAffectedEntities()){
                    if(player instanceof Player){
                        final Player p = (Player) player;
                        p.addPotionEffect(new PotionEffect(PotionEffectType.эффект, 1*0, 0));
                            this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                                public void run(){
                                p.removePotionEffect(PotionEffectType.эффект);
                                }
                        }, 1L);
                    }
                }
            }

    1*0 = уровень 0
     

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