Перейти к содержимому

FAQ

FAQ по сути - дерево навигации: список вопросов в корне, под каждый ответ - своё подменю. В этом примере используется блок menus { ... } с несколькими меню в одном файле, чтобы держать все четыре экрана в одном конфиге, а связи между ними - через вызовы openMenu. Общий шаблон ${buttonBack} получает переопределение на каждой странице, чтобы вести обратно на главную FAQ.

  • Использование menus { ... }, чтобы объявить хаб и несколько экранов с ответами в одном файле
  • Переопределение полей общего шаблона на месте использования - ${buttonBack} { slot: 18, click { openMenu: "..." } }
  • Паттерн “страница ответа”: крупный предмет с lore + кнопка “Назад”, больше никакой интерактивности
  • Один из вопросов ведёт в другое существующее меню (вопрос про правила открывает меню Правила сервера)

Почему FAQ удобно держать в одном файле с несколькими меню

Заголовок раздела «Почему FAQ удобно держать в одном файле с несколькими меню»

FAQ из 10 вопросов в виде 10 отдельных файлов - неаккуратно: 10 путей, 10 строк include под общие шаблоны. Если собрать их в одном блоке menus { ... }, связанные экраны лежат вместе, а редактирование FAQ становится операцией над одним файлом.

Соглашение об именах важно: каждое меню получает уникальное имя в пределах сервера. Берите ame_faq, ame_faq_a1, ame_faq_a2 и т.д., чтобы не пересечься с другими меню из примеров или собственными конфигами пользователя.

Общий шаблон buttonBack определяет стрелку с closeMenu: true. В FAQ нам нужно вместо этого вернуться на главную. Переопределим блок click на месте использования:

${buttonBack} { slot: 18, click { openMenu: "ame_faq" } }

${buttonBack} приносит материал, имя и lore. Переопределение заменяет блок click. Тот же паттерн работает для любого общего шаблона, который нужно специализировать под конкретное место использования.

Две правки на новый вопрос:

  1. В список items меню ame_faq добавьте бумажную плитку, ведущую на имя нового меню с ответом.
  2. Добавьте новый блок ame_faq_aN в конец обёртки menus { ... } с содержимым ответа.
  1. Закиньте бандл в plugins/AbstractMenus/menus/example/.
  2. /am reload.
  3. Введите /ame_faq в игре.
  4. Кликните по любому вопросу. Прочитайте ответ. Кликните стрелку “Назад”, чтобы вернуться.