Плагин для серверов Майнкрафт, который создаёт нативные диалоговые окна вместо меню-инвентарей. Через YAML можно сделать навигацию, магазины, варпы, список друзей, профили, награды, анкеты и административные интерфейсы; для сложной логики доступны JavaScript и API.

Возможности
Игроки могут читать сообщения, рассматривать предметы, вводить текст, выбирать варианты, двигать ползунки и нажимать кнопки в одном окне.
- Компоненты текста поддерживают цвета, MiniMessage, переменные, условия, ссылки, команды, копирование в буфер и подсказки с предметами.
- Предметы в окне могут показывать название, описание, зачарования, прочность, модель, голову игрока, экипировку и предметы из других плагинов.
- Поля ввода бывают однострочными и многострочными; есть ползунки, переключатели вариантов и флажки подтверждения.
- Раскладки кнопок: одна кнопка, подтверждение и отмена, сетка кнопок, а также списки с постраничным выводом.
- Динамические списки подходят для игроков онлайн, друзей, заблокированных игроков, варпов, товаров, квестов и наград. По умолчанию на странице выводится 20 записей, число можно изменить от 1 до 99.
- Действия могут отправлять сообщения, запускать команды от игрока или консоли, открывать и закрывать меню, проигрывать звук, телепортировать, выдавать предметы, менять деньги и переключать сервер.
- Условия проверяют права, предметы, значения переменных, списки и сравнения. Поддерживаются PlaceholderAPI и значения из полей ввода вида
$(input_id). - Есть хранилища SQLite и MySQL: личные и общие значения, а также личные и общие списки. Для сохранённых данных доступны плейсхолдеры.
- Меню умеет выполнять действия при открытии, нажатии и закрытии, а также периодически обновляться, пока игрок держит его открытым.
- В
config.ymlможно зарегистрировать собственные команды для открытия меню или запуска набора действий, включая автодополнение аргументов.

Команды
/km guide— открыть встроенное руководство./km list— вывести список меню./km open <menu-id> [player]— открыть меню игроку./km examples [zh_CN|en_US] [overwrite]— установить примеры меню./km language <language-id>— выбрать язык./km reload [all|menu|config|actions|js|lang]— перезагрузить настройки, меню, действия или скрипты./km pause <register|unregister|info>— добавить, удалить или проверить пункт меню паузы.
Меню хранятся в plugins/KaMenu/menus/, общие JavaScript-пакеты — в plugins/KaMenu/js/, а наборы действий — в plugins/KaMenu/actions/. Файл pause_menu.yml позволяет добавить один пункт в экран паузы клиента; после его регистрации сервер нужно полностью перезапустить.
Права
Для административных команд по умолчанию требуется право kamenu.admin.
Настройка
Обычные меню создаются в YAML: в них задают заголовок, текст, поля, кнопки и последовательности действий. JavaScript нужен только для вычислений, живых данных и повторно используемой сложной логики.
Параметры Settings.lifetime, Settings.can_escape и Settings.after_action управляют временем жизни окна, закрытием по Esc и поведением после нажатия. При after_action: NONE и WAIT_FOR_RESPONSE после действия следует использовать close, reset или open, иначе окно может перестать принимать повторные нажатия.
Требования
Нужны Java 21 или новее и сервер на Spigot, Paper либо Folia. При первом запуске серверу нужен доступ к Maven для загрузки библиотек; по умолчанию используется SQLite, а для MySQL требуется MySQL 5.7 или новее.
Необязательные интеграции: PlaceholderAPI для плейсхолдеров, Vault для денежных действий, ItemsAdder, Oraxen и CraftEngine для предметов и графических символов. На Folia пользовательские скрипты, обработчики действий и сторонние расширения PlaceholderAPI должны соблюдать правила потоков платформы.
