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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем birka, 19 май 2022.

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

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

    Баллы:
    66
    Код:
    @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 Активный участник Пользователь

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

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

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

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

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

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

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

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

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

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

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

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