Java-серверы; совместимость Bedrock отмечается отдельно · 6 мин чтения

Меню Minecraft-сервера: маршруты, кнопки назад и понятные действия

Начните с работающего меню из двух кнопок, затем добавьте помощь и возврат. Ниже — воспроизводимый пример для современного CommandPanels с командой /pa, а затем проверки прав и Bedrock.

Редакция LonelyCraft · Обновлено

Схема: Главный экран → Подменю → Возврат
Главный экран, тематическое действие и явный путь обратно. Авторская схема LonelyCraft.

Установите современный 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 и поведение кликов способны отличаться. Доступность кнопки на скриншоте не доказывает, что игрок на телефоне правильно понимает подтверждение. Проверяйте также перенос длинных названий и количество действий до основной функции.

  1. Откройте главное меню всеми опубликованными способами.
  2. Пройдите каждую ветку до конечного действия.
  3. Вернитесь кнопками назад до исходного экрана.
  4. Проверьте закрытый режим и недостаточное право.
  5. Подтвердите, что отмена покупки не меняет баланс.
  6. Начните мини-игру, используйте её штатный выход и снова откройте меню.

Разделите описание кнопки и её обработчик

Каталог кнопок хранит идентификатор, текст, иконку и назначение. Обработчик связывает стабильный идентификатор с сервисом, а не угадывает действие по переведённому названию. Это позволяет менять формулировку без изменения логики. При конфигурационных меню проверяйте допустимые команды и параметры до публикации.

Для обновлений храните короткую карту экранов и тест ссылок. При добавлении режима проверьте не только новую карточку, но и обратный путь. При удалении не оставляйте активный портал к несуществующей игре. Навигация является частью состояния сервера: неправильный выход способен нарушить очистку снаряжения и возврат инвентаря.

Временная ошибка API или БД должна оставлять путь назад и повторное действие. Не закрывайте меню молча после неудачи. Сообщите короткую причину, например недоступность данных, и запишите техническую ошибку в журнал. Такое разделение сохраняет понятный пользовательский маршрут и полезную диагностику для администратора.

Частые вопросы

Нужно ли показывать все команды на главном экране?

Главный экран лучше описывает направления. Подробные команды относятся к тематической помощи и карточке действия, где понятно, зачем они нужны.

Почему кнопка назад иногда открывает другое меню?

Нужно учитывать источник и текущий мир. Зафиксированный маршрут одного экрана не всегда подходит входу со Spawn, Survival и активной игры.

Достаточно скрыть кнопку от группы?

Нет. Команда и сервис должны повторно проверять право, включая ручной вызов и состояние после открытия GUI.

Что проверить после удаления режима?

Меню, NPC, порталы, команды и описание сайта. Все опубликованные входы должны вести к существующему действию или ясной недоступности.

Просмотры: … · Один просмотр с браузера за день

Было полезно?Общий счёт: …

Одна реакция с браузера. Нажмите повторно, чтобы снять её, или выберите другую.

Источники и документация

Minecraftсервер Minecraftадминистрирование

Читайте дальше