Skip to content

Плейсхолдеры

Daniil Z edited this page Nov 21, 2022 · 11 revisions

Плейсхолдеры — это специальные текстовые поля, которые в процессе выполнения активатора заменяются на соответствующие им динамически вычисляемые значения.

Например, плейсхолдер %player% будет заменяться на имя текущего игрока. Это можно использовать в различных действиях. Например, MESSAGE=%player% hello!

С версии 0.14.1 при включении в конфиге опции general.use-modern-placeholders изменяется система определения плейсхолдеров. Вместо %placeholder% плейсхолдеры будут иметь форму %[placeholder] для более понятного определения границ плейсхолдера. Со временем эта опция будет включена по умолчанию.

Вот перечень плейсхолдеров:

Плейсхолдер Описание
%TIME_SERVER%
%TIME_SERVER:<TimeFormat>%
Системное врем. Можно использовать дополнительный параметр, чтобы задать формат в котором будет выводиться время:
К примеру, %TIME_SERVER:HH:mm:ss% будет отображать только часы, минуты и секунды (Пример: 10:59:44)
Формат описания времени описан здесь
%TIME_INGAME% Внутри-игровое время в мире, в котором находится игрок. Если игрок не указан, то отобразиться время главного (первого) мира.
%PLAYER_LOC% Текущие координаты игрока
%PLAYER_LOC_EYE% Координаты головы (глаз) игрока
%PLAYER_LOC_VIEW% Координаты точки, куда смотрит игрок
%PLAYER_UUID% UUID игрока
%PLAYER_NAME% Имя игрока
%PLAYER_DISPLAY% Имя игрока для отображения (может отличаться от обычного)
%HEALTH% Значение здоровья игрока
%PLAYER_LOC_DEATH% Последние координаты, где игрок умирал
%TARGETPLAYER% Целевой игрок (имя), используется в ряде активаторов
%MONEY% Остаток денежных средств на счете игрока (Нужен плагин Vault)
%RANDOM:<Число>%
%RANDOM:<От>-<До>%
%RANDOM:<Значение1>,<Значение2> [,...,<ЗначениеN>]%
Случайное число или одно из случайно выбранных слов.
Пример:
%RANDOM:100% — вернет случайное целое число от 0 до 100.
%RANDOM:100-200% — вернет случайное целое число от 100 до 200
%RANDOM:hello,hi,good day% — вернёт одну из подстрок, разделённых запятой
%CALC:<expression>% Вычислить выражение. Пример: %CALC:1+2% заменится на 3.
Можно использовать плейсхолдеры внутри этого плейсхолдера.
Поддерживаются следующие операции:
· Базовые математические операторы (^ * / % + -);
· Преимущество выражений в скобках;
· Поддержка стандартных математических функций.
%PLAYER_ITEM_HAND% Строковое представление предмета, который игрок держит в руке
%PLAYER_INV:<Slot>% Строковое представление предмета, который находится в указанном слоте. <Слот> может быть обозначен как номером слота инвентаря (от 0 до 35) или названием helmet, chestplate, leggings, boots, hand, offhand.
Примеры:
%player_inv:10% — Предмет в слоте номер 10;
%player_inv:helmet% — Шлем игрока;
%player_inv:hand% — Предмет в руках у игрока.
&\%Placeholder% Только на Legacy системе опознования. Плейсхолдер, который служит для того чтобы предотвратить разворачивание вложенных плейсхолдеров. Т.е. &\%var:test% будет заменено на %var:test%, а не на значение переменной test
\%[Placeholder]
\%[Placeholder\]
Только на Modern системе опознования. Блокирует раскрытие плейсхолдера, оставляя его как есть. Т.е. \%[var:test] будет заменено на %[var:test], а не на значение переменной test. Для лучшего ограничения следует также экранировать скобку ], чтоб её не "видели" другие плейсхолдеры.
%[Placeholder](phs) Только на Modern системе опознования. Раскрывает плейсхолдер лишь раз, оставляя "внуренности" как есть. Например, если значение переменной test будет Моё здоровье %[player_health], то при раскрытии Сообщение: %[var:test](phs) мы получим Сообщение: Моё здоровье %[player_health], а не Сообщение: Моё здоровье 20.0
%[Placeholder](prms) Только на Modern системе опознования. Экранирует символы {} при надобности для работы в параметрах. Это может помочь при обработке, например, сообщений игрока или названий предметов, и позволяет ограничить возможность инъекций. Может быть совмещено с phs через запятую

Переменные-плейсхолдеры

Любая переменная может быть использована в качестве плейхолдера.

Нужно просто воспользоваться форматом: %var:<ИмяПеременной>% для глобальных переменных и %varp:<ИмяПеременной>% для персональных. Также можно обратиться к переменной любого игрока используя плейсхолдер: %var:<Игрок>.<ИмяПеременной>%

Временные плейсхолдеры

Некоторые активаторы, действия или флаги создают временные плейсхолдеры. Эти плейсхолдеры описаны в соответствующих разделах. Использовать временный плейсхолдер можно только в процессе исполнения данного активатора, потом он будет удален. Однако, никто не мешает сохранить его значение в переменную, если значениие такого плейсхолдера надо будет использовать в дальнейшем. Создать свою собственную переменную можно действием VAR_TEMP_SET.

Поддержка плейсхолдеров плагина PlaceholderAPI

Если у вас на сервере установлен плагин PlaceholderAPI, то вы можете использовать плейсхолдеры предоставляемые этим плагином в любых активаторах, действиях или флагах.

Плейсхолдеры вводе команды плагина

Ряд плейсхолдеров может быть использовать только при вводе команды, когда вы добавляете новые действия, флаги или активаторы. Эти плейсхолдеры были введены, чтобы сделать процесс ввода команд немного проще. Эти плейсхолдеры не зависят от системы опознавания.

К примеру, можно написать команду /react add activator action TP %here% вместо того чтобы указывать координаты точки перемещения полностью.

Название Плейсхолдер (и алиасы) Описание
Координаты игрока %here% Этот плейхолдер будет заменен на текущие координаты игрока (включая направление взора)
Координаты головы %eye%
%head%
Этот плейхолдер будет заменен на текущие координаты головы (глаз) игрока (включая направление взора)
Блок под прицелом %view%
%viewpoint%
Коордианты блока, на который направлен прицел (курсор)
Координаты выделенного блока %selection%
%select%
%sel%
Координаты блока, который был выделен ранее при помощи команды /react select. (Нужно посмотреть на нужный блок, написать команду /react select. После этого можно будет использовать пдейсхолдер %select% для подстановки в параметры команды /react add <...>.
Clone this wiki locally