--- url: /templates/places.md description: >- Все места панели, где используются шаблоны сообщений, и какие переменные доступны в каждом из них. --- # Где используются шаблоны
В каждом месте, где бот что-то пишет, ему известны разные данные. В приветствии бот знает, кто зашел. В ответе команды — кто ее вызвал и что написал после нее. Здесь собраны все места и доступные в них переменные.
## Всегда доступны { #global } Эти переменные есть в любом шаблоне: | Переменная | Что это | |---|---| | `chat` | Текущий чат: название, число участников, ссылка-приглашение. Тип [Chat](/reference/chat) | | `bot` | Сам бот как участник чата. Через него же хранятся общие данные чата — [атрибуты чата](./storage/attributes#chat) | | `astral` | Данные проекта Astral: клубы, игроки, рейтинги. Подробнее — [Пространство astral](./astral) | ## Приветствия и капча { #welcome } Раздел панели **«Приветствия»**. | Место | Переменные | Что в них | |---|---|---| | Приветствие при входе | `member`, `topic`, `event` | `member` — кто вошел; `topic` — топик, куда отправится приветствие; `event.inviteLinkName` — название ссылки-приглашения, по которой пришел участник; `event.viaJoinRequest` — вступил ли он через заявку | | Прощание при выходе | `member`, `topic` | `member` — кто вышел | | Приветствие при наплыве | `event` | `event.members` — список вошедших, `event.count` — сколько их. Используется, когда за несколько секунд заходит много людей | | Капча | `member`, `event` | `event.type` — тип проверки (кнопка, эмодзи, пример), `event.timeoutSeconds` — сколько секунд дается на ответ | ::: tip Пример приветствия при наплыве ```template Добро пожаловать, {% for m in event.members | slice(0, 3) %}{{ loop.first ? '' : ', ' }}{{ m.name }}{% endfor %} {%- if event.count > 3 %} и еще {{ event.count - 3 }}{% endif %}! ``` Результат: «Добро пожаловать, Анна, Иван, Олег и еще 12!» ::: ## Модерация { #moderation } Раздел панели **«Модерация»**. | Место | Переменные | Что в них | |---|---|---| | Уведомление наказанному в ЛС | `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`: ```template {{ target }} получил предупреждение {{ case.warnCount }}/{{ ladder.nextAt }} ``` ## Автомодерация { #automod } Раздел панели **«Автомодерация»**, у каждого фильтра — поле **«Уведомление»**. | Переменные | Что в них | |---|---| | `member`, `message` | Нарушитель и его сообщение | | `infraction.filter` | Какой фильтр сработал | | `infraction.action` | Что сделал бот: удалил, предупредил, замьютил… | | `infraction.word` | Запрещенное слово (фильтр плохих слов) | | `infraction.linkUrl` | Запрещенная ссылка (фильтр ссылок) | | `infraction.count` | Сколько раз сработал фильтр (флуд, упоминания, эмодзи) | | `infraction.mentionType` | Тип упоминания (фильтр упоминаний) | ## Уровни { #leveling } Раздел панели **«Уровни»**, блок **«Сообщение о новом уровне»**. | Переменные | Что в них | |---|---| | `member` | Кто получил уровень, его опыт — в `member.rank` | | `level` | Новый уровень | | `rewards` | Награды за этот уровень | | `rolesAdded`, `rolesRemoved` | Какие роли бота выданы и сняты | ```template 🎉 {{ member }} достиг **{{ level }}** уровня! {% if rolesAdded %}Новая роль: {{ rolesAdded | join(', ') }}{% endif %} ``` ## Логи { #logs } Раздел панели **«Логи»**. Здесь шаблон задает **одну строку** события внутри общей пачки сообщений в лог-чате. | Переменные | Что в них | |---|---| | `event.type` | Тип события | | `event.actor` | Кто сделал | | `event.target` | С кем сделали | | `event.data` | Подробности события | | `event.ts` | Когда это случилось | ## Пользовательские команды { #custom-commands } Раздел панели **«Команды»** → вкладка **«Пользовательские»**. Здесь доступно больше всего данных и возможностей: кнопки, формы, хранение данных, цепочки действий. | Переменная | Что это | |---|---| | `member` | Кто вызвал команду или нажал кнопку. Тип [Member](/reference/member) | | `message` | Сообщение с вызовом команды. Тип [Message](/reference/message) | | `topic` | Топик, куда отправится ответ. Тип [Topic](/reference/topic) | | `sourceTopic` | Топик, в котором вызвали команду | | `arguments` | Что написали после команды. Тип [Arguments](/reference/arguments) | | `parameters` | Данные, переданные из другого действия или от кнопки. Тип [Parameters](/reference/parameters) | | `component` | Нажатая кнопка или выбранный пункт меню. Тип [Component](/reference/component) | | `form` | Ответы на вопросы формы. Тип [Form](/reference/form) | Подробно — в разделе [Пользовательские команды](/commands/). ## Общие шаблоны { #shared } [Общий шаблон](./shared) видит те же данные, что и шаблон, в который его вставили через `{% include %}`.