[Varscript 0.4]
Прототип готов.
К сожалению, пока что поддерживает
небольшое число событий (со временем добавлю остальные).
Особенности:
- скрипты не создают собственные потоки (если не задано), а используют основной поток сервера
- все команды изменены
- Scheduler
Вот список всех команд:
YAML:
vsfile:
description: read file to buffer
usage: /vsfile <filename>
permission: varscript.file
aliases: '>f'
vsurl:
description: read url to buffer
usage: /vsurl <url>
permission: varscript.url
aliases: '>u'
vsbook:
description: read book contents to buffer
usage: /vsbook
permission: varscript.url
aliases: '>b'
vssign:
description: read sign contents to buffer
usage: /vssign (then right-click to sign)
permission: varscript.sign
aliases: '>s'
vscopy:
description: copy text to buffer
usage: /vscopy [text]
permission: varscript.copy
aliases: '>c'
vsfilebin:
description: read binary file to buffer
usage: /vsfilebin <file>
permission: varscript.filebin
aliases: '>fb'
vsurlbin:
description: read binary contents of url to buffer
usage: /vsurlbin <url>
permission: varscript.urlbin
aliases: '>ub'
vswfile:
description: write buffer to file
usage: /vswfile <file>
permission: varscript.wfile
aliases: '>wf'
vswbook:
description: write buffer to book in your hand
usage: /vswbook
permission: varscript.wfile
aliases: '>wb'
vswbook:
description: write buffer to book in your hand
usage: /vswbook
permission: varscript.wfile
aliases: '>wb'
vswsign:
description: write buffer to selected sign
usage: /vswsign (then right-click to sign)
permission: varscript.wsign
aliases: '>ws'
vswfilebin:
description: write buffer to file in binary mode
usage: /vswfilebin <file>
permission: varscript.wfilebin
aliases: '>wfb'
vswfilecmp:
description: compile text file and write to binary file
usage: /vswfilecmp <file>
permission: varscript.vswfilecmp
aliases: '>wff'
vswnewsign:
description: write buffer to new sign
usage: /vswnewsign (then place chain of signs)
permission: varscript.wnewsign
aliases: '>wn'
vsrun:
description: compile and execute script
usage: /vsrun <script>
permission: varscript.run
aliases: '>'
vscmprun:
description: compile buffer and execute
usage: /vscmprun
permission: varscript.cmprun
aliases: '>>'
vsrunbin:
description: execute bytes from buffer
usage: /vsrunbin
permission: varscript.runbin
aliases: '>>b'
vsrunfile:
description: compile file and execute
usage: /vsrunfile <file>
permission: varscript.runfile
aliases: '>>f'
vsrunfilebin:
description: execute bytes from file
usage: /vsrunfilebin <file>
permission: varscript.runfilebin
aliases: '>>fb'
vsrunurl:
description: compile url and execute
usage: /vsrunurl <url>
permission: varscript.runurl
aliases: '>>u'
vsrunurlbin:
description: execute bytes from url
usage: /vsrunurlbin <url>
permission: varscript.runurlbin
aliases: '>>ub'
vscmp:
description: compile buffer
usage: /vscmp
permission: varscript.cmp
aliases: '>cmp'
vscmpfile:
description: compile file and write bytes to buffer
usage: /vscmpfile <file>
permission: varscript.cmpfile
aliases: '>cmpf'
vscmpurl:
description: compile url and write bytes to buffer
usage: /vscmpur <url>
permission: varscript.cmpurl
aliases: '>cmpu'
vspaste:
description: print buffer
usage: /vspaste
permission: varscript.paste
aliases: '>p'
vslen:
description: print buffer length
usage: /vslen
permission: varscript.len
aliases: '>l'
vshex:
description: print buffer in hex mode
usage: /vshex
permission: varscript.hex
aliases: '>h'
vssavebook:
description: save book to file
usage: /vssavebook <filename>
permission: varscript.savebook
aliases: '>sb'
vsloadbook:
description: load book from file
usage: /vsloadbook <filename>
permission: varscript.loadbook
aliases: '>lb'
vsvalidbook:
description: validate book
usage: /vsvalidbook
permission: varscript.validbook
aliases: '>vb'
vsvalidsign:
description: validate selected sign
usage: /vsvalidsign (then right-click to sign)
permission: varscript.validsign
aliases: '>vs'
vsbookflag:
description: set book flags
usage: /vsbookflag <flags>
permission: varscript.bookflag
aliases: '>bf'
vssignflag:
description: set sign flags
usage: /vssignflag <flags>
permission: varscript.signflag
aliases: '>sf'
vsconfig:
description: read config
usage: /vsconfig <option>
permission: varscript.config
aliases: '>conf'
vssetconfig:
description: read config
usage: /vssetconfig <option> <value>
permission: varscript.setconfig
aliases: '>setconf'
vsoperand:
description: get help for operand
usage: /vsoperand [operand]
permission: varscript.operand
aliases: '>o'
vstag:
description: view operands with tag
usage: /vstag [tag]
permission: varscript.tag
aliases: '>t'
vsevent:
description: view help with event
usage: /vsevent [event]
permission: varscript.event
aliases: '>e'
task:
description: varscript task commands
usage: /task <name> (view|rename <name>|enable|disable|remove|(action|condition|event) <add [task]|remove <id>|edit <id> [task]>)
permission: varscript.task
aliases: '>:'
scheduler:
description: varscript scheduler commands
usage: /scheduler (enable|disable|reload|cron (enable|disable)|newtask <name> [description])
permission: varscript.scheduler
aliases: '>sch'
Планировщик:
при запуске, планировщик ищет yml файлы в директории /plugins/varcript/tasks/ и считывает данные.
Включение/выключение планировщика:
/scheduler enable/disable
Включение/выключение компонента cron:
/scheduler cron enable/disable
Обновить задачи (при редактировании файлов вручную):
/scheduler reload
Создание новой задачи для планировщика:
/scheduler newtask название описание задачи
будет создана новая пустая задача и соответствующий yml файл
Список задач:
/task
красные - отключены. зеленые - активны.
Посмотреть задачу:
/task название
Удалить задачу
/task название remove
Включить/отключить:
/task название enable/disable
Перезагрузить задачу из файла:
/task название reload
Посмотреть события:
/task название event
Посмотреть условия:
/task название condition
Посмотреть действия:
/task название action
Редактировать события:
/task название event add событие
/task название event remove индекс(начиная с 0)
/task название event edit индекс событие
Редактировать условия и действия - аналогично
Пока что есть два варианта событий:
1) события cron. пишем "CRON выражение" пример события, повторяющегося каждые 15 минут:
CRON */15 * * * *
2) события bukkit. пищем "BUKKIT событие", где событие - название класса или название события из списка. примеры:
BUKKIT PHYSIC
BUKKIT BlockBreak
список поддерживаемых событий можно посмотреть с помощью команды /vsevent
Условия:
раздел в разработке. Но пока что работает в таком режиме:
строка условия представляет из себя скрипт, который должен оставить в стеке булево выражение. Пример:
EVENT(PLAYER) OP
условие проверяет, является ли игрок опом.
Действия:
1) скрипт. пишем "SCRIPT наш скрипт". вот пример:
SCRIPT EVENT(PLAYER) KILL
убьет игрока, который вызвал событие.
2) скрипт из файла, пишем "FILE имя файла"
3) байт-код из файла пишем "FILEBIN имя файла"
Файлы скриптов и бинарники:
теперь файлы хранятся в директории /plugins/varscript/scripts
имя файла указывается только латиницей, без расширения, директории разделяются точкой.
например: файл "games.helljump"
скрипт будет содержаться в файле /plugins/varscript/scripts/games/helljump.var
байт-код (при компиляции или записи) в файле /plugins/varscript/scripts/games/helljump.bin
Вроде пока что все. В случае чего дополню пост.
PS:
MYXOMOPX, реквестирую пример!
PS2:
Все задания проще всего редактировать в yaml-файлах.
Сохраняем файлы в кодировке
UTF-8!!!
после редактирования задачи делаем перезагрузку этой задачи или же планировщика.