1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Таймер

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

Статус темы:
Закрыта.
  1. Автор темы
    doodka

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

    Баллы:
    68
    Skype:
    d_oo_d
    Добрый вечер.
    Как лучше реализовать данную задачу: есть, например, 3 числа-реальное время и нужно вызывать ф-ю, когда оно настало.

    Пример:
    В конфиг записаны числа(время по МСК):
    16:20, 21:00, 22:00 и т.д.
    Когда наступает 16:20 -вызывается функция. В следующий раз такое повторяется в 21:00 и т.д.
     
    Лайка2, mahimamax, Denscore и 2 другим нравится это.
  2. ptnk

    ptnk Старожил Пользователь

    Баллы:
    173
    Взять банальный шедуллер, который раз в несколько секунд будет заниматься проверкой времени.
     
    Лайка2, mahimamax, Лайка и 3 другим нравится это.
  3. fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    doodka,
    Варианты:
    1. Можно взять текущее время и вычислить сколько нужно подождать до часа Х. И выполнить задание, отложенное на это время.
    2. Можно сделать повторяющееся задание, который каждую секунду проверяет наступило ли нужное время или нет.
    3. Можно воспользоваться сторонней библиотекой. Я для ReActions выбрал класс CronExpression из пакета Quartz Scheduler. Хотя по идее можно было воспользоваться большим функционалом пакета, но мне хватило одного класса.

    Собственно в ReActions я и использую смесь второго и третьего метода: https://github.com/fromgate/ReActio...romgate/reactions/timer/Timers.java#L188-L200
     
  4. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Таймеры, в которых важна точность хорошо делать в отдельном потоке, чтобы они не лагали вместе с сервером.
     
    Лайка2, mahimamax, Лайка и 2 другим нравится это.
  5. GodlikE

    GodlikE Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    GodlikE
    Можно просто создать BukkitRunnable и в методе runTastTimer(this, 1L, 20L) поставить периодичность 72000L (вместо 20L. 72000L = 1 час), а в его личном цикле run прописать функции=)
     
    Лайка3, Javascript, mahimamax и 2 другим нравится это.
  6. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
    Зачем опять тему поднял?
     
    Лайка3 и mahimamax нравится это.
Статус темы:
Закрыта.

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