- Баллы
- 153
-----------------------------------------------------
VarScript 0.5 на рубукките (описание, инструкции, модули)
VarScript 0.5 на dev.bukkit.org
-----------------------------------------------------
Это второй туториал по функциям планировщика плагина VarScript 0.5
Ознакомиться подробнее с плагином можно тут.
Первая часть тут.
Модель задачи
Задача состоит из четырех блоков правил:
- Инициализация (init)
- События (events)
- Условия (conditions)
- Действия (actions)
Каждый блок может содержать несколько элементов или вовсе ни одного.
Рабочий цикл задачи:
1) при включении задачи или загрузке плагина, исполняются все действия из блока init.
2) задача ждет наступления любого события из блока events.
3) при наступлении события формируется окружение.
Окружение - это набор переменных, по которым мы можем в дальнейшем отреагировать на это событие.
4) Начинают проверяться все условия из списка conditions по порядку. Проверка условия дает либо положительный, либо отрицательный результат. Если проверка завершилась отрицательно - задача завершает свою работу.
Каждое условие может использовать переменные из окружения.
5) Как только все условия прошли проверку, начинают по порядку исполняться действия из списка actions.
Пример задачи:
1) При загрузке задачи исполнятся два действия:
1a) VS "foo" %text - на языке varscript: запись текста "foo" в переменную text
1b) JS text2 = "bar" - на языке javascript: запись текста "bar" в переменную text2
Два разных языка выбраны только для наглядности примера.
2) Далее, задача ждет события:
BUKKIT PlayerChatEvent - ожидание сообщения в чат от любого игрока
3) Как только событие происходит - формируется следующее окружение:
Event - произошедшее событие
Player - игрок, который написал сообщение
4) С этим окружением запускается проверка условия:
JS Event.getMessage() == text - javascript проверка того, что сообщение равно переменной text. В нашем случае условие сработает, только если игрок ввел в чат слово foo
5) Если условие верно - с тем же окружением начинают исполняться действия
JS Event.setMessage(text2) - javascript изменение сообщения на text2. В нашем случае - игрок увидит сообщение bar от своего лица, вместо введенного foo.
Следующая задача полностью аналогична по своей работе предыдущей, но не использует переменные и блок init:
Команды для просмотра и редактирования задачи
/task <задача>
Отобразит всю информацию о задаче
/task <задача> <блок>
Показать соответствующий блок у задачи
Блок: init, events, conditions, actions, или просто по первой букве. Например, /task test e
/task <задача> <блок> add <тип> <?текст>
Добавить новую запись в блок.
Типы будут рассмотрены ниже
/task <задача> <блок> <номер> remove
Удалить строчку из блока. Внимание! строки нумеруются, начиная с 0.
/task <задача> <блок> <номер> disable|off
Отключить выбранную строку. Она просто будет игнорироваться задачей.
/task <задача> <блок> <номер> enable|on
Включить строку.
/task <задача> <блок> <номер> edit <тип> <?текст>
Редактирование некоторой строки. Она будет перезаписана
/task <задача> reload
Перезагрузка задачи. Заставляет снова исполнить блок init.
Также загружает новые данные, если yml файл был изменен.
VarScript 0.5 на рубукките (описание, инструкции, модули)
VarScript 0.5 на dev.bukkit.org
-----------------------------------------------------
Это второй туториал по функциям планировщика плагина VarScript 0.5
Ознакомиться подробнее с плагином можно тут.
Первая часть тут.
Модель задачи
Задача состоит из четырех блоков правил:
- Инициализация (init)
- События (events)
- Условия (conditions)
- Действия (actions)
Каждый блок может содержать несколько элементов или вовсе ни одного.
Рабочий цикл задачи:
1) при включении задачи или загрузке плагина, исполняются все действия из блока init.
2) задача ждет наступления любого события из блока events.
3) при наступлении события формируется окружение.
Окружение - это набор переменных, по которым мы можем в дальнейшем отреагировать на это событие.
4) Начинают проверяться все условия из списка conditions по порядку. Проверка условия дает либо положительный, либо отрицательный результат. Если проверка завершилась отрицательно - задача завершает свою работу.
Каждое условие может использовать переменные из окружения.
5) Как только все условия прошли проверку, начинают по порядку исполняться действия из списка actions.
Пример задачи:
YAML:
enabled: true
init:
- VS "foo" %text
- JS text2 = "bar"
events:
- BUKKIT PlayerChatEvent
conditions:
- JS Event.getMessage() == text
actions:
- JS Event.setMessage(text2)
1a) VS "foo" %text - на языке varscript: запись текста "foo" в переменную text
1b) JS text2 = "bar" - на языке javascript: запись текста "bar" в переменную text2
Два разных языка выбраны только для наглядности примера.
2) Далее, задача ждет события:
BUKKIT PlayerChatEvent - ожидание сообщения в чат от любого игрока
3) Как только событие происходит - формируется следующее окружение:
Event - произошедшее событие
Player - игрок, который написал сообщение
4) С этим окружением запускается проверка условия:
JS Event.getMessage() == text - javascript проверка того, что сообщение равно переменной text. В нашем случае условие сработает, только если игрок ввел в чат слово foo
5) Если условие верно - с тем же окружением начинают исполняться действия
JS Event.setMessage(text2) - javascript изменение сообщения на text2. В нашем случае - игрок увидит сообщение bar от своего лица, вместо введенного foo.
Следующая задача полностью аналогична по своей работе предыдущей, но не использует переменные и блок init:
YAML:
enabled: true
events:
- BUKKIT PlayerChatEvent
conditions:
- VS @Evеnt:getMessage "foo" =
actions:
- VS "bar" @Evеnt:setMessage
Команды для просмотра и редактирования задачи
/task <задача>
Отобразит всю информацию о задаче
/task <задача> <блок>
Показать соответствующий блок у задачи
Блок: init, events, conditions, actions, или просто по первой букве. Например, /task test e
/task <задача> <блок> add <тип> <?текст>
Добавить новую запись в блок.
Типы будут рассмотрены ниже
/task <задача> <блок> <номер> remove
Удалить строчку из блока. Внимание! строки нумеруются, начиная с 0.
/task <задача> <блок> <номер> disable|off
Отключить выбранную строку. Она просто будет игнорироваться задачей.
/task <задача> <блок> <номер> enable|on
Включить строку.
/task <задача> <блок> <номер> edit <тип> <?текст>
Редактирование некоторой строки. Она будет перезаписана
/task <задача> reload
Перезагрузка задачи. Заставляет снова исполнить блок init.
Также загружает новые данные, если yml файл был изменен.