MessageBuilder
Построитель сообщения: позволяет собрать сообщение методами и отправить его прямо из шаблона — например, в другой топик. Создается вызовом chat.createMessage() или topic.createMessage().
Методы возвращают тот же построитель, поэтому их пишут цепочкой и заканчивают send():
template
{% set winner = arguments.targetMember %}
{% require winner returning 'Кто победил? Ответь командой на его сообщение' %}
{% do chat.createMessage()
.heading('Итоги турнира', 2)
.paragraph('Победитель — ' ~ winner.name)
.table([['Уровень', winner.rank.level], ['Место в чате', winner.rank.rank]], { bordered: true })
.footer('Поздравляем!')
.send() %}Отправок из шаблона — не больше 3 за выполнение. В чате с режимом Text блоки упрощаются.
Блоки: createMessage()
| Метод | Блок |
|---|---|
.heading(текст, размер) | Заголовок 1–6 |
.paragraph(текст) | Абзац |
.list(элементы, нумерованный?) | Список |
.checklist(элементы) | Чек-лист |
.table(строки, настройки?) | Таблица — настройки как у функции table |
.quote(текст, автор?, раскрывающаяся?) | Цитата |
.pullquote(текст, автор?) | Выноска |
.details(заголовок, содержимое, открыт?) | Сворачиваемый блок |
.divider() | Разделитель |
.footer(текст) | Подвал |
.math(выражение) | Формула |
.photo(ссылка, подпись?, спойлер?) | Фото |
.video(…), .animation(…), .audio(…), .voice(…), .document(…) | Другие медиа |
.collage(медиа, подпись?), .slideshow(медиа, подпись?) | Коллаж, слайдшоу |
.map(широта, долгота, масштаб?, подпись?) | Карта |
.buttonRow(кнопки, выравнивание?) | Ряд кнопок внутри сообщения |
.button(…) | Кнопка под сообщением — аргументы как у функции button |
Доставка
| Метод | Что делает |
|---|---|
.inTopic(id) | Отправить в топик |
.replyTo(id) | Ответом на сообщение |
.silent() | Без звука |
.protect() | Запретить пересылку и сохранение |
.pin() | Закрепить |
.deleteAfter(секунды) | Удалить через N секунд |
.ephemeral(id_участника) | Показать только одному участнику |
.rtl() | Текст справа налево |
.send() | Отправить |
.sendAndGet() | Отправить и вернуть отправленное сообщение |
Несобранный построитель можно вернуть из require … returning или return — тогда он станет сообщением об ошибке.