Плагин [ADMN/DEV/FUN] VarScript 1.2 - Пишем скрипты на Groovy

Коробочная поддержка питона остановилась на версии 0.6, как и всех остальных JSR223-совместимых языков.
Сейчас, в версии 1.+, чтобы кодить на питоне, нужно запустить скрипт на груви, который скачает и запустит питон.
Код:
@Grab(group='org.python', module='jython-standalone', version='2.5.2')
А как потом скрипты создавать на питоне?
 
А как потом скрипты создавать на питоне?
Нужно на груви запустить интерпретатор питона.
Например, создаем скрипт:
Код:
@Grab(group='org.python', module='jython-standalone', version='2.5.2')
import org.python.util.PythonInterpreter;

// создаем интерпретатор
PythonInterpreter interp = new PythonInterpreter();
// передаем в него нужные переменные из груви-окружения
interp.set("workspace",workspace)
interp.set("global",global)
interp.set("server",server)
// запускаем файл
interp.execfile("plugins/varscript/scripts/python/test.py")
Теперь создаем файл plugins/varscript/scripts/python/test.py, в котором пишем скрипт на питоне.
При запуске этого груви-скрипта запустится питоновский скрипт.
 
Нужно на груви запустить интерпретатор питона.
Например, создаем скрипт:
Скрипты на питоне пишутся таким же образом, как для старых версий VarScript'а ? Т.е. доступ к BukkitAPI и тому подобное
 
Обновление до версии 1.2
https://www.spigotmc.org/resources/varscript.9190/
Тут очень-очень много накопленных за полгода изменений.
Вот основные:

1. Гит!

Да, он работает. Но в рамках плагина - только на чтение. Теперь можно разрабатывать скрипты локально и затем отправлять их на удаленный сервер. Или же скачать готовый проект со всеми плюшками по ссылке.
Пример:
Клонируем себе проект по ссылке в папку project1
/ws git clone httр://mygitserver/user/bukkit-project.git project1
При необходимости авторизации в гите вводим логин и пароль.
По умолчанию проект не создает локальных бренчей и пытается сделать чекаут origin/master
Переключаемся в воркспейс project1
/ws set project1
Если нам нужен другой бренч, мы можем выбрать любой из списка:
/ws git branch all
А теперь переключиться в нужный бренч:
/ws git checkout origin/dev
Также можно откатиться на любой коммит. Историю коммитов можно посмотреть командой:
/ws git log
Теперь добавляем воркспейс в автозагрузку:
/ws autorun add project1
Если не хочется перезагружаться, мы можем запустить его немедленно:
/ws start project1
Допустим, нам нужно синхронизировать проект с удаленным репозиторием.
/ws fetch remote
При необходимости авторизации в гите снова вводим логин и пароль.
Хорошо, мы синхронизировали проект. Чтобы применить изменения, нужно снова сделать чекаут в нужную ветку:
/ws git checkout origin/dev
Это всё. Для тех, кто знаком с гитом, это не будет проблемой.
В общем случае, чтобы скопировать себе и запустить чей-то готовый проект, достаточно ввести только эти команды:
/ws git clone httр://mygitserver/user/bukkit-project.git project1
/ws autorun add project1
/ws start project1

Поэтому распространять скрипты будет проще.

2. Воркспейс может использовать отдельную директорию
По умолчанию это plugins/VarScript/autorun/<имя>.
При запуске воркспейса из директории ищется файл main.groovy, а в остальном это аналогично обычным autorun-скриптам.
Еще одно замечание: если создать класс в этой директории, он будет доступен для всех groovy скриптов.

3. Воркспейсы теперь в глобальной области видимости
Каждый созданный воркспейс доступен по своему имени.
Вот наглядный пример:
Код:
// File autorun/ws_badPlayers.groovy
badNames = ["Nagibator", "Anonymous"]
Код:
// File autorun/ws_security.groovy
isNameBad = { player ->
    player.name in ws_badPlayers.badNames
}
/> ws_security.isNameBad(me)
[workspaceName]> false

При обращении к воркспейсу он загружается автоматически.

4. Автозагрузка
Теперь скрипт недостаточно скопировать в папку autorun. Нужно явно его добавить в список автозагрузки:
/ws autorun add [workspace]
Это касается как обычных groovy файлов, так и проектов.

Также исправлены некоторые баги:
- ошибка в workspace API при остановке генератора скриптов
- на некоторых дедиках VarScript вообще не запускался (ограничения безопасности доступа к домашней папке)
- помощь ко командам: /ws help и /ws git help
- исправлены ошибки в таб-комплитере.
 
Извиняюсь, это я накосячил, все нормально теперь.
Когда релиз PowerTower?
Боюсь, что не дождётесь.
Вроде бы плагин не сложный, но: ...
У меня не получилось себе же составить ТЗ. Поэтому уже третий раз я его откладываю в долгий ящик.
 
Назад
Верх