Войти или зарегистрироваться

Помогите Как сделать что бы эффект пропал только после 10 минут

Статус
Закрыто для дальнейших ответов.

Rion_GM

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Rion_GM
Добрый день.
Мне нужно сделать что бы нельзя было отменить эффект замедления, я думаю для этого нужно выдать эффект на несколько секунд, и потом когда эффект пропадает, дается такой же только новый, и это должно продолжатся на протяжении 10 минут.
public class EventListener implements Listener {

@EventHandler
public void perelom(EntityDamageEvent e) throws InterruptedException {
Player player = (Player) e.getEntity();
if (e.getCause() == EntityDamageEvent.DamageCause.FALL) {
player.sendMessage(ChatColor.YELLOW + "Ты сломал ноги");
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 1, 1));

}
}
}
 
Запускай шедулер и обновляй там эффект
 
Запускаешь #runTaskTimer.
В теле выдаешь игроку нужный эффект.
Когда нужно остановиться, стопаешь таймер.

Таким образом, таймер сам будет накидывать игроку эффект раз в N времени до тех пор, пока ты его не остановишь
 
Ответ, в целом, уже дан, но хотел бы уточнить - зачем?
Если для того, чтобы не снимали молоком - лучше отслеживать EntityPotionEffectEvent с причиной MILK.
Ещё можно обойтись без эффекта вовсе, добавив атрибуту скорости модификатор - player.getAttribute(GENERIC_MOVEMENT_SPEED).addModifier(...). Единственное, тогда, если на игрока будет наложен ещё и эффект замедления, они будут складироваться.
 
Ответ, в целом, уже дан, но хотел бы уточнить - зачем?
Если для того, чтобы не снимали молоком - лучше отслеживать EntityPotionEffectEvent с причиной MILK.
Ещё можно обойтись без эффекта вовсе, добавив атрибуту скорости модификатор - player.getAttribute(GENERIC_MOVEMENT_SPEED).addModifier(...). Единственное, тогда, если на игрока будет наложен ещё и эффект замедления, они будут складироваться.
разве смерть тоже не сбросит атрибуты или EntityPotionEffectEvent?
 
Запускаешь #runTaskTimer.
В теле выдаешь игроку нужный эффект.
Когда нужно остановиться, стопаешь таймер.

Таким образом, таймер сам будет накидывать игроку эффект раз в N времени до тех пор, пока ты его не остановишь
спасибо, наконец то понял как оно работает
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх