Действия (actions)
Параметр actions позволяет вам "оживить" предметы в меню. Когда игрок нажимает на предмет с прописанными действиями, плагин выполняет заданные команды или операции.
Это ключевой инструмент для создания интерактивных кнопок, ссылок на другие меню, выдачи наград, изменения репутации и многого другого.
Как это работает?
Вы просто добавляете секцию actions к описанию иконки (или к состоянию внутри иконки) и перечисляете строки с командами.
# ...внутри icons:
'c':
material: CRAFTING_TABLE
display: '&aОткрыть верстак'
actions:
- 'player: workbench' # Выполнить команду /workbench от имени игрока
- 'viewer_message: &eВы открыли верстак!' # Отправить сообщение тому, кто нажал
- 'close_inventory' # Закрыть меню профиляПри нажатии на этот предмет, все три действия выполнятся последовательно.
Список доступных действий
Действие (action) | Описание |
|---|---|
player: <команда> | Выполняет команду от имени игрока, который нажал на предмет. Команду нужно писать без /. |
console: <команда> | Выполняет команду от имени консоли сервера. Это полезно для действий, требующих повышенных прав. |
viewer_message: <сообщение> | Отправляет сообщение в чат игроку, который нажал на предмет (просмотрщику). Поддерживает цветовые коды &. |
owner_message: <сообщение> | Отправляет сообщение в чат владельцу профиля (если он в сети). Это полезно, если вы хотите уведомить владельца о каком-то действии. |
reputation: like | (Репутация) Ставит "Лайк" владельцу профиля от лица смотрящего. Имеет встроенную задержку (1.5с) против спама. |
reputation: dislike | (Репутация) Ставит "Дизлайк" владельцу профиля от лица смотрящего. |
close_inventory | Немедленно закрывает меню профиля. |
Плейсхолдеры в действиях
Во всех действиях вы можете использовать два специальных плейсхолдера:
%owner%- будет заменён на ник владельца профиля.%viewer%- будет заменён на ник того, кто смотрит профиль.
Также, если у вас установлен PlaceholderAPI, его плейсхолдеры будут работать. Они будут парситься от имени владельца профиля.
Пример с репутацией и плейсхолдерами:
actions:
# Добавить лайк владельцу профиля
- 'reputation: like'
# Отправить сообщение тому, кто нажал
- 'viewer_message: &aВы успешно поставили лайк профилю %owner%!'
# Отправить уведомление владельцу
- 'owner_message: &eИгрок %viewer% лайкнул ваш профиль!'Контроль выполнения: action-executor
Иногда нужно, чтобы кнопку мог нажать только владелец профиля (например, "Настройки") или, наоборот, только другие игроки (например, "Пожаловаться" или "Оценить"). Для этого существует параметр action-executor.
| Значение | Описание |
|---|---|
BOTH | (По умолчанию) И владелец, и зрители могут нажать. |
OWNER | Только владелец профиля может нажать на предмет. |
VIEWER | Только зрители (не владелец) могут нажать. |
Пример:
# ...внутри icons:
's':
action-executor: OWNER # Нажать может только владелец
material: COMPARATOR
display: '&aНастройки'
actions:
- 'player: profile-settings'Теперь, если на этот предмет нажмёт другой игрок, ничего не произойдёт.