1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Туториал [VarScript 1.x] Базовый синтаксис

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем DPOH-VAR, 1 мар 2015.

  1. Автор темы
    DPOH-VAR

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

    Баллы:
    153
    Skype:
    dpohvar
    VarScript 1.x
    Базовый синтаксис
    -------------------------------------------------
    VarScript на dev.bukkit.org |
    Описание плагина на rubukkit.org |
    -------------------------------------------------​
    1 Исполнение команд
    VarScript для исполнения команд использует синтаксис языка Groovy. Код исполняется с помощью команды />.
    Примеры:
    /> server.motd
    [ws>] A Minecraft Server
    /> 'foo' + 'bar'
    [ws>] foobar

    После исполнения команды пользователю отображается результат
    (за исключением случаев, если результат - null).
    Формат ответа:
    [название_воркспейса>] результат
    В случае ошибки при исполнении команды плагин отображает сообщение об ошибке
    Пример:
    /> non_existent_command
    [ws>] MissingPropertyException
    No such property: non_exist_command for class: CONSOLE@ws
    Формат сообщения об ошибке:
    [название_воркспейса>] тип ошибки
    описание ошибки
    Дополнительно с синтаксисом Groovy можно ознакомиться по ссылкам:
    -------------------------------------------------
    Синтаксис Groovy (en) |
    Операторы (en) |
    -------------------------------------------------

    2 Многострочный ввод
    Если команда не умещается в одну строку, есть возможность ввести ее в несколько строк.
    Пример:
    /> worlds.each {
    println it.name
    }
    [ws>] world
    [ws>] world_nether
    [ws>] world_the_end

    [ws>] [CraftWorld{name=world}, CraftWorld{name=world_nether}, CraftWorld{name=world_the_end}]
    Результат команд print и println отображается в следующем формате:
    [название_воркспейса>] сообщение
    Режим ввода автоматически переключается на многострочный, если команда в первой строке не завершена (не закрыта скобочка, в конце стоит точка, запятая, '\', и т.д. )
    Как только команда будет введена полностью, она будет исполнена.
    Чтобы отменить ввод команды, используйте:
    \cancel
    Для редактирования предыдущей строки:
    \up
    Выполнить команду немедленно :
    \run
    (это скорее всего вызовет ошибку компиляции).
    В многострочном режиме при синтаксической ошибке на строке будет отображено сообщение об ошибке. После этого нужно будет ввести строчку снова или отменить ввод командой \cancel.

    3. Переменные
    Список переменных, доступных всегда только на чтение:
    • me - исполнитель команды
    • binding - набор локальных переменных
    • workspace - текущий воркспейс
    • caller - исполнитель команды (оболочка)
    • _ - результат исполнения предыдущей команды
    • server - сервер
    • global - набор глобальных переменных и воркспейсов
    • args - массив аргументов (используется в скриптовых файлах)
    Остальные переменные можно перезаписать.
    Для создания переменной в текущем воркспейсе ее не нужно объявлять:
    /> x = 15
    [ws>] 15
    /> x
    [ws>] 15
    /> x + 10
    [ws>] 25
    При объявлении переменной она будет доступна только для текущего скрипта (строчки):
    /> int y = 50
    [ws>] 50
    /> y
    [ws>] MissingPropertyException

    No such property: y for class: CONSOLE@ws
    Possible solutions: _, me
    Чтобы объявить переменную глобально (для всех пользователей), нужно занести ее в объект global:
    /> global.foo = 'bar'
    [ws>] bar
    /> foo
    [ws>] bar
    Мы имеем такие области видимости переменных:
    • переменная объявлена в коде
    • локальная видимость (внутри объекта binding, только для текущего скрипта)
    • рабочая видимость (внутри workspace, для пользователей текущего воркспейса)
    • глобальная видимость (внутри global, для всех пользователей)
    • дополнительные переменные.
    Поиск переменной происходит именно в таком порядке.
    К дополнительным переменным относятся:
    • here - текущая позиция игрока (недоступно при вводе в консоль)
    • entities - список всех энтитей
    • players - список всех игроков
    • items - список всех предметов, разбросанных на сервере
    • worlds - список всех миров на сервере
    • block - блок, на который смотрит игрок (недоступно при вводе в консоль)
    4 Классы
    Groovy автоматичекси импортирует все классы из пакетов:
    • java.lang
    • java.io
    • java.math
    • java.net
    • java.util
    • groovy.lang
    • groovy.util
    Для удобства VarScript добавляет к импорту следующие классы:
    • все из org.bukkit
    • все из org.bukkit.block
    • все из org.bukkit.command
    • все из org.bukkit.entity
    • все события из org.bukkit.event (*Event)
    • все из org.*********ventory
    • все из org.bukkit.map
    • все из org.bukkit.projectiles
    • все из org.bukkit.scoreboard
    • org.bukkit.util.Vector
    • org.bukkit.util.BlockVector
    • org.bukkit.event.EventPriority
    Примеры:
    /> loc = new Location(world, 128.5, 112, 212.3)
    [ws>] Location{world=CraftWorld{name=world},x=128.5,y=112.0,z=212.3,pitch=0.0,yaw=0.0}
    /> pigzombie = loc.spawn( PigZombie )
    [ws>] CraftPigZombie
    /> pigzombie.helmet = Material.IRON_HELMET
    [ws>] IRON_HELMET
    /> pigzombie.hand = new ItemStack( Material.GOLD_SWORD )
    [ws>] ItemStack{GOLD_SWORD x 1}
     
    Последнее редактирование: 2 мар 2015

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