Skip to content

Действия (actions)

Параметр actions позволяет вам "оживить" предметы в меню. Когда игрок нажимает на предмет с прописанными действиями, плагин выполняет заданные команды или операции.

Это ключевой инструмент для создания интерактивных кнопок, ссылок на другие меню, выдачи наград, изменения репутации и многого другого.

Как это работает?

Вы просто добавляете секцию actions к описанию иконки (или к состоянию внутри иконки) и перечисляете строки с командами.

yaml
# ...внутри 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, его плейсхолдеры будут работать. Они будут парситься от имени владельца профиля.

Пример с репутацией и плейсхолдерами:

yaml
actions:
  # Добавить лайк владельцу профиля
  - 'reputation: like'
  # Отправить сообщение тому, кто нажал
  - 'viewer_message: &aВы успешно поставили лайк профилю %owner%!'
  # Отправить уведомление владельцу
  - 'owner_message: &eИгрок %viewer% лайкнул ваш профиль!'

Контроль выполнения: action-executor

Иногда нужно, чтобы кнопку мог нажать только владелец профиля (например, "Настройки") или, наоборот, только другие игроки (например, "Пожаловаться" или "Оценить"). Для этого существует параметр action-executor.

ЗначениеОписание
BOTH(По умолчанию) И владелец, и зрители могут нажать.
OWNERТолько владелец профиля может нажать на предмет.
VIEWERТолько зрители (не владелец) могут нажать.

Пример:

yaml
# ...внутри icons:
's':
  action-executor: OWNER # Нажать может только владелец
  material: COMPARATOR
  display: '&aНастройки'
  actions:
    - 'player: profile-settings'

Теперь, если на этот предмет нажмёт другой игрок, ничего не произойдёт.