Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Плагин [DEV] Varscript 0.5 - Планировщик задач [1.6.2]

Тема в разделе "Релизы плагинов", создана пользователем DPOH-VAR, 23 ноя 2012.

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

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    [Varscript]
    планировщик скриптов
    Версия: 0.5.4

    Плагин представляет из себя планировщик задач со встроенным скриптовым языком.

    Особенности:
    • запуск скриптов из файла,
    • многопоточность исполнения
    • регистрация событий и обработка их во время исполнения
    • продвинутый планировщик задач (события - условия - действия)
    • Использование Java рефлексий
    • Может почти всё! =)
    Описание:

    Синтаксис​
    varscript это язык с обратной польской нотацией. Проще говоря, имеется стек с данными смешанного типа. Каждая операция может взять из стека объект на обработку и/или положить объект в стек. Большинство объектов можно конвертировать между собой.​
    Можно посмотреть краткую справку по команде, введя​
    />c <команда>​
    будут показаны название операнда, краткие формы записи(если есть), типы входящих объектов (количество объектов, которые команда возьмет из стека и тип, к которому она их приведет), выходные типы (что команда положит в стек), а также краткое описание действия команды. Поддерживается tab-completion
    Чтобы не просматривать весь список, можно посмотреть список команд только по определенному тегу:​
    />t <тег>​
    отобразит все команды с данным тегом (тоже можно нажимать tab)
    />t​
    список всех тегов.​

    Особенности языка:
    - Замыкания​
    - Прототипное наследование​


    Планировщик​
    Все команды для планировщика можно просмотреть с помощью авто-заполнения (нажатие на tab при написании команды), тут рассмотрены основной метод работы с планировщиком.​
    Включение планировщика
    Пока что включить/выключить планировщик можно только в конфиге.​
    Создание задачи
    /task <название> create [описание]​
    задачи хранятся в YAML файлах в директории ./plugins/varscript/tasks.​
    при создании задачи будет создан соответствующий файл. (расширение yml, не указывается). описание не обязательно.​
    Задача будет создана отключенной.​
    Задача состоит из трех частей: событий, условий и действий. их может быть любое количество.​
    Список задач
    /task​
    это отобразит список всех задач.​
    Статус задачи можно узнать по цвету​
    (отключена|включена,не активна|в работе|содержит ошибку|неработоспособна)
    Просмотр задачи
    /task <имя>​
    Так можно просмотреть информацию о задаче: список событий, условий, действий, а также состояние задачи.​
    Статус у каждого (события|условия|действия) определяется его цветом​
    Редактирование задачи
    в задачу можно добавить компоненты, изменить, удалить, отключить​
    В общем виде команды выглядят так:​
    /task <имя> <events|conditions|actions>​
    просмотр событий, условий или действий​
    /task <имя> <events|conditions|actions> add <строка>​
    добавить новый элемент​
    /task <имя> <e|c|a> <номер, начиная с 0> remove​
    удалить элемент​
    /task <имя> <e|c|a> <номер> edit <строка>​
    редактировать. Чтобы получить предыдущее значение строки, используйте tab
    /task <имя> <e|c|a> <номер> enable​
    /task <имя> <e|c|a> <номер> disable​

    События
    На этот момент поддерживаются такие события:​

    BUKKIT <событие> <приоритет>
    Прослушивать любое из событий.​
    событие - название класса события.​
    для стандартных событий можно указать только имя.​
    для остальных - полный путь класса.​
    приоритет (не обязательно) - приоритет события.​
    значения: LOWEST, LOW, NORMAL, HIGH, HIGHEST, MONITOR​
    Например BUKKIT PlayerChatEvent HIGH

    REPEAT <период> <задержка>
    событие происходит с определенной периодичностью.​
    Время указывается в серверных тиках (1/20 секунды)​
    задержка - необязательный параметр.​
    Например, ежесекундно: REPEAT 20

    LOAD <задержка>
    однократное событие при загрузке сервера.​
    задержка - необязательный параметр, указывается в тиках.​

    Условия
    Для выполнения задачи должны выполниться все из перечисленных активных условий.​

    EVENT <параметры>
    Проверка некоторых свойств события:​
    EVENT is cancelled
    EVENT is not cancelled
    EVENT TYPE is <тип>
    тип - указываем класс события​

    CHANCE <шанс>
    Шанс указывается числом от 0 до 1​
    или в процентах от 0% до 100%​
    Например:​
    CHANCE 0.998
    CHANCE 15%

    Действия
    Действия исполняются в том порядке, в котором они объявлены.​

    VARSCRIPT <скрипт>
    Исполняет скрипт. Полная свобода действий. =)​

    BROADCAST <текст>
    Пишет следующий текст всем игрокам на сервере​

    LOG <текст>
    Записать текст в логгер.​
    Его будет видно в консоли и он запишется в лог-файл.​

    TASK<операция><задача>
    Выполнить что-либо с другой задачей​
    операция - ENABLE, DISABLE, RUN, CHECKRUN​
    ENABLE - включить​
    DISABLE - отключить​
    RUN - запустить все действия задачи без проверки​
    CHECKRUN - проверить условия и в случае удачи запустить действия​
    задача(не обязательно) - цель. Если не указано, то цель - текущая задача.​
    Можно выбрать группу задач, указав звездочку в конце.​

    Включение и отключение задачи
    /task <имя> <enable|disable>​
    таким образом можно включить или отключить задачу​
    Редактирование вручную
    во многих случаях бывает удобнее вручную отредактировать YAML файл.​
    файлы находятся в директории plugins/varscript/tasks/​
    после редактирования необходимо перезагрузить задачу:​
    /task <имя> reload​

    На dev.bukkit.org
    Последняя версия
    GitHub
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    @fromgate, спасибо!
    Думаю, что найдутся гики, которым плагин по зубам.
     
    ITrAnEI нравится это.
  4. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    1. Нужны ли туториалы по использованию плагина?
    2. Нужен ли перевод справок и функций на русский язык?
     
    ITrAnEI, Bars и stew нравится это.
  5. smilesdc

    smilesdc Няша Модератор

    Баллы:
    153
    Имя в Minecraft:
    smilesdc
    Вроде как все оформлено хорошо. Я требую соответствующий статус автору.
     
    Aim-X, ITrAnEI, Bars и 2 другим нравится это.
  6. stew

    stew Старожил

    Баллы:
    103
    Skype:
    antonov330
    Имя в Minecraft:
    StewMan
    Хотелось бы чтобы вы дополнили вики
     
  7. stew

    stew Старожил

    Баллы:
    103
    Skype:
    antonov330
    Имя в Minecraft:
    StewMan
    И полный список операторов с пояснениями 1,2 слова
     
    Сникерсни нравится это.
  8. PedrO

    PedrO Активный участник

    Баллы:
    68
    И выдавать бонусы за мультипостинг
    (Чувак, для тебя что не существует кнопки "Редактировать" ? :why:)
     
  9. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Вики будет со временем дополняться.
    Это не в моих силах. Там около 600 операторов. Если каждый из них описывать - на это уйдет полгода. Краткое описание есть уже в составе плагина.[DOUBLEPOST=1374494751,1355949059][/DOUBLEPOST]Итак, вышла версия 0.5.2

    Не могу даже сказать, сколько отличий от 0.4...
    Весь движок переписан с нуля.
    Основные команды остались такими же (около 90%).
    Планировщик теперь может отключать события, условия, действия по отдельности.
    Обещанного Rhyno пока что в нем нету... Но добавлю позже)

    Принимаются идеи:
    По планировщику. Новые виды событий, условий и действий.
    По синтаксису (от профи ;))
    и любые другие замечания

    Для наглядности вот пример задачи:
    Код:
    enabled: true
    description: Caps in chat!
    events:
    - BUKKIT PlayerChatEvent
    conditions:
    - CHANCE 50%
    actions:
    - VARSCRIPT @Evеnt:getMessage %m
    - VARSCRIPT @m:toUpperCase @Evеnt:setMessage
    При ее работе с вероятностью 50% каждый игрок будет писать в чат капсом.

    На данный момент (пока документация не составлена) задавайте любые вопросы по поводу плагина или синтаксиса здесь или мне в лс/скайп.
    Постепенно документация будет пополняться (на английском)[DOUBLEPOST=1376932249][/DOUBLEPOST]Все дальнейшие апдейты будут в этой теме:
    http://www.rubukkit.org/threads/разработка-плагина-varscript.21863/
     
    ITrAnEI и stew нравится это.
Статус темы:
Закрыта.

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