Активаторы
Активатор - это событие, которое вызывает открытие меню.
Активаторы лежат в блоке activators в корне меню, рядом с title и size. Можно указать один, несколько или вообще не указывать. Пример:
activators { command: [ // Открывать меню по одной из команд в списке "menu", "game" ] join: true // Также открывать меню при заходе на сервер}В этом примере меню откроется при заходе на сервер либо если ввести команду /menu или /game.
Все активаторы
Заголовок раздела «Все активаторы»| Название | Тип данных | Описание |
|---|---|---|
| command | Несколько типов | Открыть меню по команде |
| chat | Список строк | Открыть меню по введённому сообщению в чате |
| containsChat | Список строк | Открыть меню, если сообщение в чате содержит указанное слово |
| join | Boolean | Открыть, когда игрок заходит на сервер |
| regionJoin | Список строк | Открыть меню при входе игрока в регион WG |
| regionLeave | Список строк | Открыть меню при выходе игрока из региона WG |
| clickItem | Список объектов | Открыть меню по ПКМ по предмету в руке |
| clickNPC | Список чисел | Открыть меню по ПКМ по NPC (из Citizens) |
| clickEntity | Список объектов | Открыть меню по ПКМ по сущности |
| shiftClickEntity | Список объектов | Открыть меню по Shift+ПКМ по сущности |
| clickBlock | Список объектов | Открыть меню по клику на блок в указанной локации |
| clickBlockType | Список строк | Открыть меню по клику на блок указанного типа |
| button | Список объектов | Открыть меню по нажатию кнопки |
| lever | Список объектов | Открыть меню по переключению рычага |
| plate | Список объектов | Открыть меню при срабатывании плиты |
| table | Список строк | Открыть меню по клику на табличку с указанным текстом |
| swapItems | None | Открыть меню по нажатию клавиши смены предмета. По умолчанию это клавиша ‘F’ |
Контекст активатора и плейсхолдеры
Заголовок раздела «Контекст активатора и плейсхолдеры»Под каждым активатором ниже стоит строка Тип экстрактора. Это название набора %activator_<ключ>%-плейсхолдеров, через которые в открытом меню можно читать данные той сущности, которая зацепила активатор: предмет в руке, регион, NPC, блок, аргументы команды.
Использование: подставляй %activator_<ключ>% в title меню, в name/lore предметов, в условия правил, в аргументы действий. Список ключей для каждого типа смотри в Экстракторах значений. В строке Тип экстрактора под нужным активатором кликай по имени типа - попадёшь сразу на его таблицу.
Пример. У clickItem тип extractor-item. Игрок кликнул ПКМ по DIAMOND с именем “Excalibur”:
title: "Кликнул по %activator_item_type% (%activator_item_display_name%)"Заголовок откроется как Кликнул по DIAMOND (Excalibur).
Помимо этого всегда работает %activator_name% - возвращает имя самого активатора (clickItem, command, regionJoin…).
У некоторых активаторов в строке указано *None* - значит, своего контекста они не дают, и %activator_<ключ>% для них не работают (доступен только %activator_name%).
Активатор command
Заголовок раздела «Активатор command»Тип экстрактора: extractor-cmd
Открывает меню по команде. Форматов несколько - смотри ниже.
Одиночная команда
Заголовок раздела «Одиночная команда»Просто имя команды без аргументов. Пример:
command: "menu"Команда с алиасами
Заголовок раздела «Команда с алиасами»К команде можно добавить алиасы - для этого command нужно превратить в список строк. Пример:
command: [ "menu", "game"]Меню откроется при вводе /menu или /game.
Команда с аргументами
Заголовок раздела «Команда с аргументами»У command есть и более сложные форматы - можно собирать собственные команды с аргументами. См. ввод активатора.
Активатор chat
Заголовок раздела «Активатор chat»Тип экстрактора: None
Точное слово или фраза
Заголовок раздела «Точное слово или фраза»Список со словами или фразами. Если игрок напишет в чат любое из них целиком, меню откроется. Пример:
chat: [ // Открыть меню, когда в чат отправлено одно из сообщений "привет", "открой меню"]Часть слова, фразы, символ
Заголовок раздела «Часть слова, фразы, символ»То же, но срабатывает по вхождению. Меню откроется, если сообщение игрока содержит хотя бы одно из указанных слов, фраз или символов. Пример:
containsChat: [ "hey", "menu", "or"]Если сообщение содержит hey, menu или or - меню откроется.
Регионы WorldGuard
Заголовок раздела «Регионы WorldGuard»Тип экстрактора: extractor-region
Эти активаторы требуют WorldGuard и useWorldGuard: true в config.conf.
Активатор regionJoin
Заголовок раздела «Активатор regionJoin»Здесь перечислены регионы WorldGuard, при входе в которые откроется меню. Пример:
regionJoin: [ // Открыть меню при входе в регион "spawn", "otherRegion"]Меню откроется при входе в регион spawn или otherRegion.
Активатор regionLeave
Заголовок раздела «Активатор regionLeave»Здесь перечислены регионы WorldGuard, при выходе из которых откроется меню. Пример:
regionLeave: [ // Открыть меню при выходе из региона "pvp", "someRegion"]В этом примере меню откроется при выходе из региона spawn или otherRegion.
Активатор clickItem
Заголовок раздела «Активатор clickItem»Тип экстрактора: extractor-item
Открывает меню, когда игрок берёт в руку конкретный предмет и нажимает ПКМ. Например: положил IRON_BLOCK в hotbar, выбрал его, кликнул правой - открылось меню.
clickItem { material: STONE name: "Открыть меню"}Активатор clickNPC
Заголовок раздела «Активатор clickNPC»Тип экстрактора: extractor-npc
Список id NPC, по клику на которых сработает меню. Пример:
clickNPC: [ 1, 23]Меню откроется при клике на NPC с id 1 или 23.
Клики по сущностям
Заголовок раздела «Клики по сущностям»Открытие меню по клику на сущность. Есть две разновидности: обычный клик и клик с зажатым Shift.
Активатор clickEntity
Заголовок раздела «Активатор clickEntity»Тип экстрактора: extractor-entity
clickEntity - это список объектов. Каждый объект описывает одну сущность. Пример:
clickEntity { type: ZOMBIE name: "&eЗомби"}Чтобы указать несколько сущностей, оформляй как список. Пример:
clickEntity: [ { type: ZOMBIE name: "&eЗомби" }, { type: PLAYER }]Параметры объекта:
-
type- тип сущности из Bukkit. -
name- [опционально] отображаемое имя сущности.
В примере выше указаны PLAYER и ZOMBIE с именем &eЗомби. Меню откроется, если игрок кликнет по любому игроку или по зомби с именем &eЗомби.
Активатор shiftClickEntity
Заголовок раздела «Активатор shiftClickEntity»Тип экстрактора: extractor-entity
Формат такой же, как у clickEntity. Отличие одно: срабатывает, только если в момент клика у игрока зажат Shift (он крадётся). Пример:
shiftClickEntity { type: PLAYER}Чтобы указать несколько сущностей, оформляй как список. Пример:
shiftClickEntity: [ { type: ZOMBIE name: "&eЗомби" }, { type: PLAYER }]Клик по блоку
Заголовок раздела «Клик по блоку»Эти активаторы реагируют на клик по блоку (ЛКМ или ПКМ). Есть две разновидности: по конкретной локации блока или по его типу (материалу).
Активатор clickBlock
Заголовок раздела «Активатор clickBlock»Тип экстрактора: extractor-block
Здесь задаётся локация конкретного блока в мире. Кликнул по нему - меню открылось.
clickBlock { world: "world" x: 0.0 y: 0.0 z: 0.0 yaw: 0.0 pitch: 0.0}Короткая версия:
clickBlock: "world, 0.0, 0.0, 0.0, 0.0, 0.0"Формат этой версии:
clickBlock: "<world>, <x>, <y>, <z>, <yaw>, <pitch>"Локаций можно указать несколько - clickBlock поддерживает список:
clickBlock: [ "world, 0, 0, 0", "world, 1, 1, 1",]Активатор clickBlockType
Заголовок раздела «Активатор clickBlockType»Тип экстрактора: extractor-block
Здесь задаётся тип блока. Кликнул по любому блоку этого типа - меню открылось. Пример:
clickBlockType: STONEНесколько типов задаются списком:
clickBlockType: [ STONE, CAKE]Активаторы button, lever, plate
Заголовок раздела «Активаторы button, lever, plate»Тип экстрактора: extractor-block
У button, lever и plate одинаковый формат. Пример для кнопки:
button { world: "world" x: 0.0 y: 0.0 z: 0.0}Локацию можно записать и одной строкой, как везде:
button: "<x>, <y>, <z>" - мир по умолчанию (world), yaw и pitch равны нулю.
button: "world, <x>, <y>, <z>" - yaw и pitch равны нулю.
button: "world, <x>, <y>, <z>, <yaw>, <pitch>" - все параметры локации.
Локаций можно указать несколько - button, lever и plate поддерживают список:
plate: [ "world, 0, 0, 0", "world, 3, 1, 8",]Активатор table (табличка)
Заголовок раздела «Активатор table (табличка)»Тип экстрактора: None
table - это список строк, задающих текст на табличке построчно.
table: [ "[ОТКРЫТЬ]"]Здесь на первой строке таблички должен быть текст [ОТКРЫТЬ].
table: [ "[ОТКРЫТЬ]" "" "меню"]Здесь на первой строке - [ОТКРЫТЬ], а на третьей - меню.
Активатор swapItems
Заголовок раздела «Активатор swapItems»Тип экстрактора: None
Открывает меню по нажатию клавиши смены предметов - по умолчанию F. Аргументов у активатора нет, поэтому просто ставим true. Пример:
activators { swapItems: true}