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}
Заголовок раздела «Переопределение ${buttonBack}»Общий шаблон buttonBack определяет стрелку с closeMenu: true. В FAQ нам нужно вместо этого вернуться на главную. Переопределим блок click на месте использования:
${buttonBack} { slot: 18, click { openMenu: "ame_faq" } }${buttonBack} приносит материал, имя и lore. Переопределение заменяет блок click. Тот же паттерн работает для любого общего шаблона, который нужно специализировать под конкретное место использования.
Добавить вопрос
Заголовок раздела «Добавить вопрос»Две правки на новый вопрос:
- В список items меню
ame_faqдобавьте бумажную плитку, ведущую на имя нового меню с ответом. - Добавьте новый блок
ame_faq_aNв конец обёрткиmenus { ... }с содержимым ответа.
Попробовать
Заголовок раздела «Попробовать»- Закиньте бандл в
plugins/AbstractMenus/menus/example/. /am reload.- Введите
/ame_faqв игре. - Кликните по любому вопросу. Прочитайте ответ. Кликните стрелку “Назад”, чтобы вернуться.