Перейти к содержимому

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

Автор меню

Плейсхолдер - это часть текста, заключённая между символами %.

Плейсхолдеры работают в любом параметре предмета, действия, правила и в некоторых активаторах. Тип параметра значения не имеет.

Главное - чтобы возвращаемое значение подходило по типу: если параметр ждёт число, плейсхолдер тоже должен вернуть число, иначе будет ошибка.

Плейсхолдеры бывают встроенные в AM и сторонние (PlaceholderAPI).

ПлейсхолдерТипОписание
Плейсхолдеры игрока
%player_name%StringИмя игрока
%player_display_name%StringОтображаемое имя (с цветами)
%player_level%NumberУровень игрока
%player_xp%NumberОпыт игрока
%player_location%StringЛокация игрока
%player_world%StringМир игрока
%player_uuid%StringUUID игрока
%player_gm%StringИмя игрового режима из Bukkit
Плейсхолдеры сервера
%server_players%NumberКоличество игроков
%server_players_<world>%NumberКоличество игроков в указанном мире
%server_name%StringИмя сервера
%server_ip%StringIP-адрес сервера
%server_port%NumberПорт сервера
%server_max_players%StringМаксимум слотов игроков
%server_version%StringВерсия сервера
Плейсхолдеры BungeeCord
%bungee_online%NumberОбщее количество игроков во всей сети BungeeCord
%bungee_players_<server>%NumberКоличество игроков на конкретном сервере BungeeCord
Специальные плейсхолдеры
%hanim_:<animation_name>:<unique_id>%StringВозвращает следующий кадр анимации головы из файла animated_heads.conf
%ctg_page%NumberИндекс текущей страницы
%ctg_pages%NumberОбщее количество страниц меню
%ctg_page_next%NumberИндекс следующей страницы
%ctg_page_prev%NumberИндекс предыдущей страницы
%ctg_elements%NumberОбщее количество объектов в каталоге
%ctg_<extractor placeholder>%Зависит от экстрактораПолучить значение через экстрактор из контекста каталога
%activator_name%StringИмя активатора, открывшего меню
%activator_<extractor placeholder>%Зависит от экстрактораПолучить значение через экстрактор из контекста активатора
%placed_<item_extractor_placeholder>%Зависит от экстрактораИнформация о последнем размещённом предмете
%placed_slot%NumberИндекс слота, в который был размещён последний предмет
%taken_<item_extractor_placeholder>%Зависит от экстрактораИнформация о последнем взятом предмете
%taken_slot%NumberИндекс слота, из которого был взят последний предмет
%changed_<item_extractor_placeholder>%Зависит от экстрактораИнформация о финальном предмете после размещения/взятия

Если стоит PlaceholderAPI, часть встроенных плейсхолдеров отключается и подменяется огромным набором из PAPI. Специальные плейсхолдеры работают и с PAPI, и без него.

Несколько вариантов применения плейсхолдеров в меню.

command {
console: "give %player_name% minecraft:diamond_sword"
}
itemAdd {
slot: 0
material: STONE
name: "&eКамень %player_name%"
}

Отдельной группой идут плейсхолдеры для переменных - они читают значения переменных. Работают и с PlaceholderAPI, и без него.

AbstractMenus умеет хранить контекст события. Например, при открытии меню через clickBlock плагин запоминает блок, по которому кликнули. Плейсхолдеры активатора достают данные из этого контекста - и достают их именно через экстракторы. Как ими пользоваться - см. Контекст активатора.

На каждый тип данных есть свой экстрактор со своим набором плейсхолдеров. Все экстракторы и доступные в них имена - ниже.

Получает данные из блока Minecraft.

ИмяОписание
block_typeМатериал блока
block_dataData блока (MC 1.12-)
block_worldМир блока
block_xПозиция по оси X
block_yПозиция по оси Y
block_zПозиция по оси Z
block_powerСила редстоун-сигнала на блоке
block_tempТемпература биома, в котором стоит блок
block_biomeИмя биома, в котором стоит блок

Получает данные о мире.

ИмяОписание
world_nameИмя мира
world_difficultyСложность мира (peaceful, normal и т.д.)
world_max_heightМаксимальная высота строительства
world_pvpРазрешён ли PVP
world_seedСид мира
world_timeОтносительное игровое время мира. Аналог hours * 1000
world_typeТип мира (default, flat и т.д.)
world_entitiesКоличество сущностей (включая игроков) в мире
world_playersКоличество игроков в мире

Достаёт данные сущности. Если знаешь, что сущность живая (моб, животное, игрок и т.д.), доступны и плейсхолдеры для living-сущностей.

ИмяОписание
Все сущности
entity_typeТип
entity_idЧисловой id
entity_uuidУникальный id
entity_nameОбщее имя
entity_custom_nameКастомное имя (если есть)
entity_worldМир сущности
entity_loc_xПозиция по оси X
entity_loc_yПозиция по оси Y
entity_loc_zПозиция по оси Z
entity_facingНаправление взгляда (north, east и т.д.)
entity_poseПоза сущности (MC 1.14+)
entity_ticks_livedСколько живёт сущность
Living-сущность
entity_last_damageПоследний полученный урон
entity_no_damage_ticksСколько сущность прожила без урона
entity_killerИмя последнего убийцы (если есть)
entity_eye_heightВысота глаз

Получает данные из ItemStack.

ИмяОписание
item_typeМатериал предмета
item_dataData предмета (MC 1.12-)
item_amountКоличество в стаке
item_max_stackМаксимальный размер стака
item_display_nameОтформатированное имя
item_localized_nameЛокализованное имя
item_modelCustom model data (MC 1.14+)
item_serializedВесь предмет, сериализованный в base64-строку. Можно использовать со свойством serialized

Получает данные региона WorldGuard.

ИмяОписание
region_idИмя региона
region_priorityПриоритет региона
region_typeТип региона (cuboid, poly2d и т.д.)
region_ownersСписок владельцев
region_membersСписок участников
region_owners_amountКоличество владельцев
region_members_amountКоличество участников

Получает данные NPC из Citizens.

ИмяОписание
npc_idЧисловой id NPC
npc_nameОбщее имя
npc_full_nameПолное имя
npc_entity_<entity placeholder>Получить значение из сущности NPC через экстрактор сущности

Например, чтобы получить тип сущности NPC, по формату экстрактора сущности плейсхолдер будет такой:

npc_entity_type

Отличие от обычного экстрактора сущности - префикс npc_.

Отдаёт данные распарсенной команды (только в контексте активатора).

ИмяОписание
cmd_nameБазовое имя команды
cmd_argsКоличество аргументов
cmd_arg:<argument key>Значение распарсенного аргумента по ключу
<argument key>:<placeholder>Получить значение обычным плейсхолдером по игроку, который ввёл команду

Например, ты задал в активаторе аргумент с ключом username. Чтобы достать значение, которое ввёл игрок, бери плейсхолдер:

cmd_arg_username

Подробнее про построение команд и чтение аргументов - в разделе Построение команд.