Установите современный CommandPanels
Скачайте JAR с страницы автора CommandPanels, выбрав файл под свой Paper/Minecraft, положите его в plugins при остановленном сервере и запустите. Этот пример использует текущий формат из Quick Start: старые выпуски с /cp и вложенным panels: имеют другую схему.
На тестовом сервере выполните /pa version от администратора. После первого запуска откройте plugins/CommandPanels/panels и создайте welcome.yml. Обычный текстовый редактор должен сохранить UTF-8, пробелы для отступов и расширение .yml, а не .yml.txt.
Создайте одну проверяемую кнопку
Скопируйте этот минимальный inventory-panel в welcome.yml. Кнопка в центральном слоте только отправляет подсказку: она не телепортирует и не требует внешнего плагина. После штатного перезапуска выполните /pa open welcome; нажмите бумагу и проверьте сообщение в чате. Синтаксис полей и действий сверяйте с примером Inventory Panel.
title: 'Помощь новичку'
type: 'inventory'
rows: 1
layout:
4:
- 'help'
items:
help:
material: 'PAPER'
name: 'Первый шаг'
left-click:
commands:
- '[msg] Откройте страницу правил и выберите режим игры.'Проверьте права и версию схемы
Если /pa open welcome работает только с OP, изучите commandpanels.command.open в списке прав CommandPanels и выдайте требуемое разрешение тестовой группе через LuckPerms. Не выдавайте commandpanels.* игрокам: он затрагивает административные действия. Для опубликованного меню настройте собственный вход по документации своего выпуска.
Следующая кнопка должна открывать помощь или существующее действие сервера, а Назад — исходный экран. Перед копированием YAML из старой статьи сравните установленную версию и команды: несовместимость схемы проявляется ошибкой загрузки, даже если сам YAML синтаксически корректен.
Испытайте маршрут кнопками
Сначала проверьте Java-аккаунтом без OP: вход в меню, клик, закрытие через Escape и повторное открытие. Затем повторите на Bedrock через Geyser/Floodgate. Если используете нативную Bedrock-форму, создавайте type: floodgate по примеру Simple Floodgate Panel; Java inventory и Bedrock форма — разные экраны.
После добавления покупок проверьте достаточный и недостаточный баланс, двойной клик и отмену. Цена в карточке обязана совпадать с суммой действия; сервис покупки повторно проверяет право и деньги. Команда от имени консоли в кнопке не должна превращать случайное нажатие в административный обход.
Нарисуйте маршруты до выбора иконок
Составьте список действий и связей: главное меню ведёт в Survival, мини-игры, прогресс и помощь; раздел мини-игр — в карточку режима; карточка — в лобби или инструкцию. Для каждого узла определите кнопку назад. Полный путь должен работать от любого входа: звезды, NPC, портала и команды.
Название экрана объясняет место игрока, а подпись кнопки — результат действия. «Башня» может открывать выбор режима, тогда как «Начать стандартный забег» уже создаёт сессию. Не прячьте различие в нескольких строках lore. До покупки показывайте сумму, валюту и получаемое право; после клика сообщайте подтверждённый результат.
Возврат зависит от исходного мира
Если игрок открыл помощь из Survival, кнопка назад должна вести к понятному Survival-меню. Если он пришёл со Spawn — к главному навигатору. Храните источник в контексте открытия или выбирайте маршрут по текущему допустимому состоянию. Случайное выполнение одной общей команды может открыть не тот экран или прервать мини-игру.
Начало режима и выход из него требуют проверяемого перехода, который GUI только инициирует. Состояние игровой сессии.
Отличайте недоступность от отсутствия
Закрытый режим можно показать карточкой с короткой причиной, если это помогает игроку понять возможности. Укажите, что нужно сделать: дождаться конца раунда, получить требуемое право или выбрать другую цель. Пустая кнопка без реакции выглядит как поломка. Для необязательной функции, о которой игроку знать не нужно, скрытие может быть уместнее.
Показ цены и права не заменяет повторной проверки действия. Между открытием меню и подтверждением баланс, право или свободное место способны измениться. Обработчик получает намерение, обращается к сервису и возвращает результат. Именно сервис решает, можно ли начать игру или выдать товар, а не цвет предмета в слоте.
Организуйте помощь вокруг вопроса
Страница «Как начать?» должна содержать одно ближайшее действие и путь к подробностям. Отдельные темы удобно разделять: защита базы, торговля, телепортация, задания и режимы. Длинный список всех зарегистрированных команд полезен как справочник, но плохо работает как первое знакомство на маленьком экране телефона.
Укажите команды рядом с действием, чтобы опытный игрок мог перейти напрямую. Сохраните одинаковые названия на сайте, в чате и в GUI. Если сервер называет один режим «Пиксель», карточка «Color survival» без пояснения создаёт лишнее предположение. Для удалённой механики уберите входы одновременно из меню, NPC и публикаций.
Проверяйте, найдёт ли новый игрок короткую цель и вернётся ли к ней после выхода. Первый маршрут новичка.
Практический набор навигационных проверок
Проводите эту проверку обычным Java-аккаунтом и реальным Bedrock-клиентом. Текст lore и поведение кликов способны отличаться. Доступность кнопки на скриншоте не доказывает, что игрок на телефоне правильно понимает подтверждение. Проверяйте также перенос длинных названий и количество действий до основной функции.
- Откройте главное меню всеми опубликованными способами.
- Пройдите каждую ветку до конечного действия.
- Вернитесь кнопками назад до исходного экрана.
- Проверьте закрытый режим и недостаточное право.
- Подтвердите, что отмена покупки не меняет баланс.
- Начните мини-игру, используйте её штатный выход и снова откройте меню.
Разделите описание кнопки и её обработчик
Каталог кнопок хранит идентификатор, текст, иконку и назначение. Обработчик связывает стабильный идентификатор с сервисом, а не угадывает действие по переведённому названию. Это позволяет менять формулировку без изменения логики. При конфигурационных меню проверяйте допустимые команды и параметры до публикации.
Для обновлений храните короткую карту экранов и тест ссылок. При добавлении режима проверьте не только новую карточку, но и обратный путь. При удалении не оставляйте активный портал к несуществующей игре. Навигация является частью состояния сервера: неправильный выход способен нарушить очистку снаряжения и возврат инвентаря.
Временная ошибка API или БД должна оставлять путь назад и повторное действие. Не закрывайте меню молча после неудачи. Сообщите короткую причину, например недоступность данных, и запишите техническую ошибку в журнал. Такое разделение сохраняет понятный пользовательский маршрут и полезную диагностику для администратора.



