Итак, что мы имеем сейчас:
- Плагин VarScript имеет свой собственный язык
varscript;
/> скрипт
- Он также может использовать язык
javascript;
/js> скрипт
/-> js скрипт
- Он может использовать любой и другой язык, который есть в вашей JVM.
/-> ваш_любимый_язык скрипт
Тут мне пришла в голову мысль дать свободу в выборе языка:
Просто устанавливаем нужные библиотеки и вперед!
На самом деле java предоставляет
огромный выбор в этом плане (вплоть до самого Java

).
Посмотрим, что из этого получится.
Первый тест, подключил
Groovy и
ruby.
В папку plugins\VarScript\engines закидываем библиотеки, которые можно скачать на офф сайтах.
Я использовал
groovy-all-2.1.6.jar
jruby-complete-1.7.4.jar
Теперь их нужно прописать в конфиге:
YAML:
scheduler:
enabled: true
engines:
ruby: file:plugins\VarScript\engines\jruby-complete-1.7.4.jar
Groovy: file:plugins\VarScript\engines\groovy-all-2.1.6.jar
Замечаю, что в конфиге должна быть указана ссылка на библиотеку.
Если это файл, ссылка начинается с file:
Если библиотека лежит в вебе, то http:\\
Теперь можно запускать сервер!
в директории plugins\VarScript\scripts создадутся еще две папки: Groovy и ruby
Эксперименты с
Groovy:
Я впервые столкнулся с этим языком, однако его синтаксис не составил труда в понимании. Чтобы не заморачиваться, вот эксперименты:

Нажавший на коммандблок получает урон в 2 единицы (сердечко)
Есть только одна проблема:
groovy грузится около 10 секунд перед первым запуском. Чтобы не возникло зависаний во время игры, наверное имеет смысл добавить его в автозагрузку.
Теперь эксперименты с файлами:
Создаем файлик test.groovy с таким содержанием:
Код:
import org.*********ventory.ItemStack
program.onTicks({
item = new ItemStack(Integer.parseInt(args[0]));
caller.send("Give "+item);
me.getInventory().addItem(item)
},40)
Теперь запускаем его:
/->f groovy test 13
В результате через 2 секунды получим блок гравия и сообщение:
[VarScript] Give ItemStask{GRAVEL x 1}
Конечно можно баловаться с его синтаксисом в чате:
/-> groovy caller.send(["world!","hello "].reverse().join())
Получим в ответ ожидаемый [VarScript] hello world!
Он мне показался в разы удобнее, чем JavaScript. Поживем - увидим.
Теперь настала очередь
ruby.
К сожалению, с ним не вышло сделать ничего интересного.
Вот, к примеру:
/-> ruby puts "Hello "+"world!"
ответ в консоли:
>06:12:15 [INFO] Hello world!