[Решено] Таймеры в Java Bukkit

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

FortiStrike

Активный участник
Пользователь
Баллы
66
Я уже хорошо делаю плагины но меня интересует момент с таймерами.

Мне нужно что бы кто-то помог с кодом.

Смысл кода: При запуске плагина должен начинаться таймер который выполнять действия.
Я не понимаю как это сделать помогите пожалуйста.

Буду очень благодарен!
 
Для этого в Bukkit присутствует Scheduler.
Код:
Bukkit.getScheduler().scheduleSyncRepeatingTask(
        PLUGIN_INSTANCE,
        () -> Bukkit.broadcastMessage("Hello!"),
        0L, 400L
);
  • PLUGIN_INSTANCE - это ссылка на главный класс вашго плагина
  • () -> Bukkit.broadcastMessage("Hello!") - это действие, которое будет выполнять Scheduler (реализация интерфейса Runnable из Java)
  • 0L - это задержка, которую должен выждать Scheduler перед первым запуском (в тиках)
  • 400L - это задержка между каждым вызовом метода (действия), тоже в тиках
В общем, приведенный выше код запланирует цикличный вызов Bukkit.broadcastMessage("Hello!") каждые 20 секунд (400 тиков)

Более подробное описание работы с Scheduler (в том числе различные варианты планировки, вроде выполнения один раз или асинхронных вызовов) находится тут: https://bukkit.fandom.com/wiki/Scheduler_Programming
 
Оно выводит привет в консоль каждое то время?
 
Каждые 20 секунд будет говорить всем "Hello"
 
Если вам нужно, допустим, подождать минуту после запуска плагина и сказать "Hello" всего 1 раз, то вот:
Код:
Bukkit.getScheduler().runTaskLater(
        PLUGIN_INSTANCE,
        () -> Bukkit.broadcastMessage("Hello!"),
        1200L
);
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх