MenuBuilder
Построитель меню выбора. Создается функцией select_menu(тип, id, подсказка, действие, неактивное?). В Telegram нет выпадающих списков, поэтому бот рисует меню кнопками-вариантами под сообщением. Руководство — в статье Кнопки и меню выбора.
template
{% do select_menu('STRING', 'mode', 'Выбери режим', 'self')
.addOption('Броулбол', 'brawlball', '⚽')
.addOption('Нокаут', 'knockout', '🎯')
.withDefaultOption('brawlball') %}Когда участник нажимает вариант, запускается действие меню: component.type равен SELECTION_MENU, а component.selectedOptions — список с выбранным значением.
Типы меню
| Тип | Варианты |
|---|---|
STRING | Ваши варианты из addOption |
ROLE | Роли бота |
USER, CHANNEL, MENTIONABLE | Не поддерживаются в Telegram — ошибка unsupported_in_telegram |
Методы
| Метод | Описание |
|---|---|
addOption(надпись, значение, эмодзи?, описание?) | Добавить вариант. Описание в Telegram не показывается. До 25 вариантов |
withDefaultOption(значение) | Отметить вариант галочкой ✓ |
endMenu() | Завершить меню и вернуться к построителю сообщения — нужно, если меню строится внутри createMessage() |
withMinValues(n), withMaxValues(n), withRequiredRange(мин, макс) | Выбор нескольких вариантов с кнопкой «Готово» скоро |
withChannelTypes(…) | Не поддерживается — в Telegram нет каналов |