Таймеры

Таймер — это своеобразный планировщик событий, реализованный в ReActions.

Таймеры позволяют Вам запускать активаторы EXEC в определенное время. При этом, можно ориентироваться как внутри-игровое время (и выполнять какой-то активатор, допустим каждый майнкрафтовский час), а также можно привязывать выполнение задач к реальному (серверному) времени. Например, можно выполнять активатор в какое-то определенное время (допустим 1 января 2016 г в 0:00) или же запускать его каждый день в 12 часов дня.

Создание таймера

Чтобы создать новый таймер надо воспользоваться командой:

/react add timer <ИдТаймера> timer-type:<INGAME|SERVER> activator:<ИдАктиватораEXEC> time:<HH:MM,HH:MM|*_*_*_*_*_?> [player:<Игрок>] [world:<Мир>]

Чтобы добавить внутри-игровой таймер необходимо использовать формат ЧЧ:ММ, который ссылается на майнкрафтовское время. Можно определить несколько моментов времени, когда будет срабатывать таймер. Например, 01:05,01:10,07:00 будет указывать на внутри-игровое время 01:05, а также 01:10 , а также 07:00. Т.е. активатор будет выполнен три раза в течение майнкрафтовских суток.

Чтобы добавить таймер реального времени, необходимо указывать время в формате CRON. Он немного неудобен поначалу, но ознакомившись поближе, понимаешь насколько он гибок. ReActions использует стороннюю библиотеку для обработки cron-формата. И лучше всего знакомиться с этим форматом на сайте автором библиотеки (потому что в этой реализации есть ряд отличий от классического Unix формата): http://quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/crontrigger

ReActions добавляет ещё один нюанс к этому формату. При использовании команды можно заменять пробелы на символ "_". Но точно также можно использовать и пробелы, если заключить время в фигурные скобки.

Примеры

  • /react add timer TIMER1 timer-type:ingame activator:EXEC1 time:07:00 player:all — эта команда создаст таймер названный TIMER1, который будет выполнять активатор EXEC1 каждый майнкрафтовский день на рассвете (07:00
  • /react add timer EveryTenMin timer-type:server activator:TenMin time:0_0/10_*_*_*_? player:all — Эта команда создаст таймер, который будет выполнять активатор каждые 10 минут реального времени (Т.е. вt: 00:00, 00:10, 00:20 и т.д.)

Команды

  • /react add timer <ИдТаймера> activator:<ИдАктиватораEXEC> timer-type:<INGAME|SERVER> time:<HH:MM,HH:MM|*_*_*_*_*_?> [player:<Игрок>] [world:<Мир>] — Добавить новый таймер
  • /react list timer [page] — Вывести список таймеров
  • /react remove timer <id> — Удалить таймер

Действия и флаги свяазнные с таймерами

Таймерами можно управлять также используя специальные действия и флаги:

  • TIMER_STOP — Действие. Останавливает работу таймера. Параметр: timer:<ИдТаймера>
  • TIMER_RESUME — Действие. Восстанавливает работу таймера. Параметр: timer:<ИдТаймера>
  • TIMER_ACTIVE — Флаг. Проверяет состояние указанного таймера. Параметр: <ИдТаймера>