Туториал [VarScript 0.5] Использование javascript.

DPOH-VAR

Старожил
Пользователь
Баллы
153
-----------------------------------------------------
Разработка плагина
Плагин на dev.bukkit.org
-----------------------------------------------------
Это первый туториал по использованию языка javascript в плагине VarScript.
С плагином можно ознакомиться тут.
Предполагается, что читатель знает java и javascript хотя бы на базовом уровне
VarScript использует движок Rhino для интерпретации javascript.
Для исполнения скрипта предназначена команда:
/js> <скрипт>
Пользователь имеет доступ к константам, определенным в Runtime, всем плагинам, а также своим переменным.
Константы, которые определены:
Server - сервер bukkit
Runtime - объект Runtime плагина VarScript
PluginManager - менеджер плагинов
Scheduler - планировщик VarScript
program - текущая программа
me - тот, кто вызвал программу (обычно Player, Block, ConsoleCommandSender, Task)
caller - обертка над me
Также каждый плагин доступен по названию.

Для вывода сообщения в консоль используется функция:
print(сообщение);
Чтобы вывести сообщение на экране, используется:
program.send(сообщение);
или
caller.send(сообщение);

Примеры:
вывод Hello World
/js> caller.send( "Hello " + "world" );
отобразить список плагинов
/js> plugins = PluginManager.getPlugins()
/js> for(i=0; i<plugins.length; i++) caller.send(plugins[i])
Показать список задач в планировщике
/js> caller.send(Scheduler.getTasks())
убить какого-либо игрока
/js> Server.getPlayer("Player").setHealth(0)

телепортировать игрока к себе
/js> Server.getPlayer("Player").teleport(me)


Каждый игрок имеет свой набор переменных. Плагин позволяет использовать одни и те же переменные между разными языками:
/vs> "foo" %bar
/js> caller.send(bar) // выведет foo

Пример создания функций:
/js> function bc(msg) { Server.broadcastMessage(msg) }
/js> bc("Всем привет!")

Импортирование классов Java и работа с ними:
/js> importClass(org.bukkit.util.Vector)
/js> me.setVelocity(new Vector(1,2,1))

/js> importClass(org.bukkit.ChatColor)
/js> caller.send("color is " + ChatColor.RED + "red")

Для ознакомления с документацией по объектам и методам Bukkit, прошу сюда.
 
А я вот не знаю Java, но мне интересно - зачем исполнение скриптов на сервере? Для создания супер портала, таблички отображения онлайна сервера, или изменения жителей?

Подойдет для всего перечисленного.
Можно написать небольшую функцию на javascript, которая будет мониторить игроков.
А супер-портал делается с помощью модулей javascript.
Например у нас на сервере работает функция, которая собирает портал по кусочкам. Телепортирование происходит мгновенно, на координату, которая записана рядом с порталом.
 
Подойдет для всего перечисленного.
Можно написать небольшую функцию на javascript, которая будет мониторить игроков.
А супер-портал делается с помощью модулей javascript.
Например у нас на сервере работает функция, которая собирает портал по кусочкам. Телепортирование происходит мгновенно, на координату, которая записана рядом с порталом.
Ясно :)
 
Назад
Верх