Где используются шаблоны
В каждом месте, где бот что-то пишет, ему известны разные данные. В приветствии бот знает, кто зашел. В ответе команды — кто ее вызвал и что написал после нее. Здесь собраны все места и доступные в них переменные.
Всегда доступны
Эти переменные есть в любом шаблоне:
| Переменная | Что это |
|---|---|
chat | Текущий чат: название, число участников, ссылка-приглашение. Тип Chat |
bot | Сам бот как участник чата. Через него же хранятся общие данные чата — атрибуты чата |
astral | Данные проекта Astral: клубы, игроки, рейтинги. Подробнее — Пространство astral |
Приветствия и капча
Раздел панели «Приветствия».
| Место | Переменные | Что в них |
|---|---|---|
| Приветствие при входе | member, topic, event | member — кто вошел; topic — топик, куда отправится приветствие; event.inviteLinkName — название ссылки-приглашения, по которой пришел участник; event.viaJoinRequest — вступил ли он через заявку |
| Прощание при выходе | member, topic | member — кто вышел |
| Приветствие при наплыве | event | event.members — список вошедших, event.count — сколько их. Используется, когда за несколько секунд заходит много людей |
| Капча | member, event | event.type — тип проверки (кнопка, эмодзи, пример), event.timeoutSeconds — сколько секунд дается на ответ |
Пример приветствия при наплыве
Добро пожаловать, {% for m in event.members | slice(0, 3) %}{{ loop.first ? '' : ', ' }}{{ m.name }}{% endfor %}
{%- if event.count > 3 %} и еще {{ event.count - 3 }}{% endif %}!Результат: «Добро пожаловать, Анна, Иван, Олег и еще 12!»
Модерация
Раздел панели «Модерация».
| Место | Переменные | Что в них |
|---|---|---|
| Уведомление наказанному в ЛС | member, event | member — наказанный; event.type — тип наказания, event.reason — причина, event.duration — срок, event.caseNo — номер кейса, event.appeal — как обжаловать |
Тексты ответов команд (/warn, /mute, /ban…) | member, message, target, case, duration, reason, ladder | member — модератор, вызвавший команду; target — к кому применили; case — кейс; ladder.nextAt и ladder.action — при каком числе предупреждений и какое наказание будет следующим |
Тексты ответов меняются в карточке команды, в блоке «Тексты ответов». Например, так можно переписать ответ /warn:
{{ target }} получил предупреждение {{ case.warnCount }}/{{ ladder.nextAt }}Автомодерация
Раздел панели «Автомодерация», у каждого фильтра — поле «Уведомление».
| Переменные | Что в них |
|---|---|
member, message | Нарушитель и его сообщение |
infraction.filter | Какой фильтр сработал |
infraction.action | Что сделал бот: удалил, предупредил, замьютил… |
infraction.word | Запрещенное слово (фильтр плохих слов) |
infraction.linkUrl | Запрещенная ссылка (фильтр ссылок) |
infraction.count | Сколько раз сработал фильтр (флуд, упоминания, эмодзи) |
infraction.mentionType | Тип упоминания (фильтр упоминаний) |
Уровни
Раздел панели «Уровни», блок «Сообщение о новом уровне».
| Переменные | Что в них |
|---|---|
member | Кто получил уровень, его опыт — в member.rank |
level | Новый уровень |
rewards | Награды за этот уровень |
rolesAdded, rolesRemoved | Какие роли бота выданы и сняты |
🎉 {{ member }} достиг **{{ level }}** уровня!
{% if rolesAdded %}Новая роль: {{ rolesAdded | join(', ') }}{% endif %}Логи
Раздел панели «Логи». Здесь шаблон задает одну строку события внутри общей пачки сообщений в лог-чате.
| Переменные | Что в них |
|---|---|
event.type | Тип события |
event.actor | Кто сделал |
event.target | С кем сделали |
event.data | Подробности события |
event.ts | Когда это случилось |
Пользовательские команды
Раздел панели «Команды» → вкладка «Пользовательские». Здесь доступно больше всего данных и возможностей: кнопки, формы, хранение данных, цепочки действий.
| Переменная | Что это |
|---|---|
member | Кто вызвал команду или нажал кнопку. Тип Member |
message | Сообщение с вызовом команды. Тип Message |
topic | Топик, куда отправится ответ. Тип Topic |
sourceTopic | Топик, в котором вызвали команду |
arguments | Что написали после команды. Тип Arguments |
parameters | Данные, переданные из другого действия или от кнопки. Тип Parameters |
component | Нажатая кнопка или выбранный пункт меню. Тип Component |
form | Ответы на вопросы формы. Тип Form |
Подробно — в разделе Пользовательские команды.
Общие шаблоны
Общий шаблон видит те же данные, что и шаблон, в который его вставили через {% include %}.