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

(Закрыто)Нужна помощь в FoodLevelChangeEvent

Discussion in 'Разработка плагинов для новичков' started by birka, May 19, 2022.

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

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

    Trophy Points:
    66
    Code:
    @org.bukkit.event.EventHandler
        public void hungryEvent(FoodLevelChangeEvent e) {
            Player player = (Player) e.getEntity();
            if (player.getFoodLevel() == 20) {
                player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 100, 1));
            }
        }
    Есть вот такая констурукция, её задача - при определённом уровне голода выдавать определённый эффект. Но так как это FoodLevelChangeEvent, то эффект выдаётся только при изменении уровня голода. Хотелось бы узнать как лучше реализовать мою идею. Возможно есть другой эвент, более подходящий или как-то можно это реализовать при помощи данного эвента? Буду очень багодарен за помощь
     
  2. Хостинг MineCraft
    <
  3. veyn12

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

    Trophy Points:
    68
    Имя в Minecraft:
    Veynique
    Цикличный ивент с проверками
     
  4. veyn12

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

    Trophy Points:
    68
    Имя в Minecraft:
    Veynique
    Или любой другой ивент, допустим MoveEvent
     
  5. Автор темы
    birka

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

    Trophy Points:
    66
    Хорошо, это работает, но есть ещё одна проблема. Как сделать так, чтобы эффект был на игроке только пока уровень голода = n. Я понимаю, что это делается через while, но есть ли способ заменить
    addPotionEffect на что-то другое, чтобы эффект не просто выдавался на какой-то срок, а только на тот промежуток, пока у игрока определённый уровень голода? Для этого стоит применить FoodLevelChangeEvent?
     
  6. Автор темы
    birka

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

    Trophy Points:
    66
    UP! Не нашёл ответа на вопрос
     
  7. MySoulIsCry

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

    Trophy Points:
    68
    Такого нет. Можешь выдавать эффект на 20 тиков каждые 20 тиков и если у игрока не то значение просто не выдавать.
     
  8. Автор темы
    birka

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

    Trophy Points:
    66
    Спасибо за совет, я уже решил таким способом, но забыл закрыть тему (дэбил)
     

Share This Page