Помогите Аналог шедулеров.. Много шедулеров

Статус
Закрыто для дальнейших ответов.
Пф, блин... даже не озадачили.
Создаешь один щчедуллер, который срабатывает каждый тик...
Java:
int timer = 0; // Глобальная переменная

...

getServer().getScheduller().runTaskTimer(this, new Runnable() {
@Override
public void run() {
  if (timer % 20 == 0) { // 20 тиков / 20 = 1 секунда
    // Здесь код будет выполняться каждую секунду
  }

  if (timer % 1200 == 0) { // 1200 тиков / 20 = 60 секунд = 1 минута
    // Здесь код будет выполняться каждую минуту
  }

  if (timer % 240 == 0) { // 240 тиков / 20 = 12 секунд
    // Здесь код будет выполняться каждые 12 секунд
  }

  ++timer;
}
}, 1L, 1L);

Всё в одном! Юзаю сам и советую вам
ну а почемубы не сделать задержку 20 тиков? Ведь всёравно измеряем в целых числах, а не в 2.5 секунд и тд.
 
ну а почемубы не сделать задержку 20 тиков? Ведь всёравно измеряем в целых числах, а не в 2.5 секунд и тд.
Ну это если надо что-то выполнять допустим 0.5 секунды (или 0.05). Естественно если минимальный таймер на одну секунду, то логичнее выставить таймер на каждые 20L тиков и делить с остатком уже на единицу, а не 20-ку.

Ты прав, тут уже каждый должен адаптировать под свои нужды
 
Пф, блин... даже не озадачили.
Создаешь один щчедуллер, который срабатывает каждый тик...
Java:
int timer = 0; // Глобальная переменная

...

getServer().getScheduller().runTaskTimer(this, new Runnable() {
@Override
public void run() {
  if (timer % 20 == 0) { // 20 тиков / 20 = 1 секунда
    // Здесь код будет выполняться каждую секунду
  }

  if (timer % 1200 == 0) { // 1200 тиков / 20 = 60 секунд = 1 минута
    // Здесь код будет выполняться каждую минуту
  }

  if (timer % 240 == 0) { // 240 тиков / 20 = 12 секунд
    // Здесь код будет выполняться каждые 12 секунд
  }

  ++timer;
}
}, 1L, 1L);

Всё в одном! Юзаю сам и советую вам
Класс, просто отличное решение, Барс, сейчас опишу так правила для 63 спеллов, 24 оружий и 19 эффектов.
Отличный код выйдет. (нет)
 
Лол, чо. Неадекват что-ль?
 
Оформляй нужные задачи через отдельный интерфейс с методами long getTicks() и void execute().
В твой планировщик как у Барса добавляй их в коллекцию.
На тике пробегай по ней и делай ticks % task.getTicks().
Ещё можно получать минимальный общий делитель для всех нужных ticks и автоматически перенастраивать твой субпланировщик.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх