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

Активаторы

Автор меню

Активатор - это событие, которое вызывает открытие меню.

Активаторы лежат в блоке activators в корне меню, рядом с title и size. Можно указать один, несколько или вообще не указывать. Пример:

activators {
command: [ // Открывать меню по одной из команд в списке
"menu",
"game"
]
join: true // Также открывать меню при заходе на сервер
}

В этом примере меню откроется при заходе на сервер либо если ввести команду /menu или /game.

НазваниеТип данныхОписание
commandНесколько типовОткрыть меню по команде
chatСписок строкОткрыть меню по введённому сообщению в чате
containsChatСписок строкОткрыть меню, если сообщение в чате содержит указанное слово
joinBooleanОткрыть, когда игрок заходит на сервер
regionJoinСписок строкОткрыть меню при входе игрока в регион WG
regionLeaveСписок строкОткрыть меню при выходе игрока из региона WG
clickItemСписок объектовОткрыть меню по ПКМ по предмету в руке
clickNPCСписок чиселОткрыть меню по ПКМ по NPC (из Citizens)
clickEntityСписок объектовОткрыть меню по ПКМ по сущности
shiftClickEntityСписок объектовОткрыть меню по Shift+ПКМ по сущности
clickBlockСписок объектовОткрыть меню по клику на блок в указанной локации
clickBlockTypeСписок строкОткрыть меню по клику на блок указанного типа
buttonСписок объектовОткрыть меню по нажатию кнопки
leverСписок объектовОткрыть меню по переключению рычага
plateСписок объектовОткрыть меню при срабатывании плиты
tableСписок строкОткрыть меню по клику на табличку с указанным текстом
swapItemsNoneОткрыть меню по нажатию клавиши смены предмета. По умолчанию это клавиша ‘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%).

Тип экстрактора: extractor-cmd

Открывает меню по команде. Форматов несколько - смотри ниже.

Просто имя команды без аргументов. Пример:

command: "menu"

К команде можно добавить алиасы - для этого command нужно превратить в список строк. Пример:

command: [
"menu",
"game"
]

Меню откроется при вводе /menu или /game.

У command есть и более сложные форматы - можно собирать собственные команды с аргументами. См. ввод активатора.

Тип экстрактора: None

Список со словами или фразами. Если игрок напишет в чат любое из них целиком, меню откроется. Пример:

chat: [ // Открыть меню, когда в чат отправлено одно из сообщений
"привет",
"открой меню"
]

То же, но срабатывает по вхождению. Меню откроется, если сообщение игрока содержит хотя бы одно из указанных слов, фраз или символов. Пример:

containsChat: [
"hey",
"menu",
"or"
]

Если сообщение содержит hey, menu или or - меню откроется.

Тип экстрактора: extractor-region

Эти активаторы требуют WorldGuard и useWorldGuard: true в config.conf.

Здесь перечислены регионы WorldGuard, при входе в которые откроется меню. Пример:

regionJoin: [ // Открыть меню при входе в регион
"spawn",
"otherRegion"
]

Меню откроется при входе в регион spawn или otherRegion.

Здесь перечислены регионы WorldGuard, при выходе из которых откроется меню. Пример:

regionLeave: [ // Открыть меню при выходе из региона
"pvp",
"someRegion"
]

В этом примере меню откроется при выходе из региона spawn или otherRegion.

Тип экстрактора: extractor-item

Открывает меню, когда игрок берёт в руку конкретный предмет и нажимает ПКМ. Например: положил IRON_BLOCK в hotbar, выбрал его, кликнул правой - открылось меню.

clickItem {
material: STONE
name: "Открыть меню"
}

Тип экстрактора: extractor-npc

Список id NPC, по клику на которых сработает меню. Пример:

clickNPC: [
1,
23
]

Меню откроется при клике на NPC с id 1 или 23.

Открытие меню по клику на сущность. Есть две разновидности: обычный клик и клик с зажатым Shift.

Тип экстрактора: extractor-entity

clickEntity - это список объектов. Каждый объект описывает одну сущность. Пример:

clickEntity {
type: ZOMBIE
name: "&eЗомби"
}

Чтобы указать несколько сущностей, оформляй как список. Пример:

clickEntity: [
{
type: ZOMBIE
name: "&eЗомби"
},
{
type: PLAYER
}
]

Параметры объекта:

В примере выше указаны PLAYER и ZOMBIE с именем &eЗомби. Меню откроется, если игрок кликнет по любому игроку или по зомби с именем &eЗомби.

Тип экстрактора: extractor-entity

Формат такой же, как у clickEntity. Отличие одно: срабатывает, только если в момент клика у игрока зажат Shift (он крадётся). Пример:

shiftClickEntity {
type: PLAYER
}

Чтобы указать несколько сущностей, оформляй как список. Пример:

shiftClickEntity: [
{
type: ZOMBIE
name: "&eЗомби"
},
{
type: PLAYER
}
]

Эти активаторы реагируют на клик по блоку (ЛКМ или ПКМ). Есть две разновидности: по конкретной локации блока или по его типу (материалу).

Тип экстрактора: 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",
]

Тип экстрактора: extractor-block

Здесь задаётся тип блока. Кликнул по любому блоку этого типа - меню открылось. Пример:

clickBlockType: STONE

Несколько типов задаются списком:

clickBlockType: [
STONE,
CAKE
]

Тип экстрактора: 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",
]

Тип экстрактора: None

table - это список строк, задающих текст на табличке построчно.

table: [
"[ОТКРЫТЬ]"
]

Здесь на первой строке таблички должен быть текст [ОТКРЫТЬ].

table: [
"[ОТКРЫТЬ]"
""
"меню"
]

Здесь на первой строке - [ОТКРЫТЬ], а на третьей - меню.

Тип экстрактора: None

Открывает меню по нажатию клавиши смены предметов - по умолчанию F. Аргументов у активатора нет, поэтому просто ставим true. Пример:

activators {
swapItems: true
}