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

Туториал [VarScript 1.x] Скрипты, классы

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

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

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

    Баллы:
    153
    Skype:
    dpohvar
    VarScript 1.x
    Скрипты, классы
    -------------------------------------------------
    VarScript на dev.bukkit.org |
    Описание плагина на rubukkit.org |
    -------------------------------------------------​
    1 Скрипты
    Все скрипты хранятся в директории plugins/Varcript/scripts/ и имеют расширение .groovy.
    Используемый синтаксис внутри скрипта аналогичен синтаксису команды '/>'
    Пример: plugins/Varcript/scripts/healPlayers.groovy
    Код:
    // скрипт восполняет 1 сердечко здоровья всем игрокам
    players.each {
        if (!it.dead) 
            it.hp += 2
    }
    Использование:
    Чтобы вызвать скрипт, нужно запустить его как функцию:
    /> healPlayers()
    или же просто указать его название:
    /> healPlayers

    Теперь предположим, что мы хотим передать в скрипт какие-либо параметры. Скрипт может их получить с помощью переменной args:
    Код:
    // скрипт восполняет здоровье всем игрокам
    // количество здоровья передавайте в параметре
    players.each {
        if (!it.dead) 
            it.hp += args[0]
    }
    Запуск скрипта:
    /> healPlayers( 10 )
    В сокращенной записи скобочки можно не указывать:
    /> healPlayers 10
    Если параметров больше одного, они указываются через запятую.
    Скрипт возвращает значение, которое выполнилось последним.
    Внутри скрипта также можно запускать скрипты.
    Пример функции факториала: plugins/Varcript/scripts/factorial.groovy
    Код:
    // рекурсивный подсчет факториала
    if (args[0] <= 1) {
        1
    } else {
        args[0] * factorial( args[0] - 1 )
    }
    /> r = factorial 10
    [ws>] 3628800

    2 Классы
    Про классы более подробно написано тут: http://groovy-lang.org/objectorientation.html (en)
    Файлы классов должны иметь расширение .groovy и располагаться в директории scripts.
    Расположение файла должно соответствовать полному имени класса,
    т.е. класс my.package.User должен располагаться в файле plugins/VarScript/scripts/my/package/User.groovy
    Кроме того, классы имеют ряд ограничений, в отличие от скриптов:
    • Внутри класса нет доступа к переменным workspace, me, caller, _ и другим
    • По этой же причине класс не может самостоятельно зарегистрировать таймер или событие.
    • Класс не может исполнить скрипт
    Компиляция классов происходит динамически (в тот момент, когда они понадобились), что позволяет изменять их "на лету".
    Любой сценарий, вызванный из файла или же командной строки имеет доступ ко всем классам по полному имени.
     

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