# Декораторы

## `Bot.on_message(filter: Callable | None = None)`

Декоратор для получения сообщений.

Поддерживает фильтры. Вставьте `Callable` функцию в параметр функции on\_message - в неё при отправке сообщения будет передаваться `Message`. Если она вернет `True`, функция вызовется.

Если вставить `str`, то будет вызываться в случае, если текст отправленного сообщения будет равен `str`.

Если не вставлять фильтр, функция вызовется при любом отправленном сообщении.

Отправляет функции объект класса `Message`.

## `Bot.on_message_edit()`

Декоратор для получения сообщений при их редактировании.

Отправляет функции два объекта:

* первый (`before`) - предыдущее состояние сообщения `Message`. `None`, если выключен кэш сообщений в `Bot` или если сообщения нет в кэше.
* второй (`after`) - новое состояние сообщения `Message`.

## `Bot.on_message_delete(filter: Callable | None = None)`

Декоратор для получения сообщений при их удалении.

Поддерживает фильтры. Вставьте `Callable` функцию в параметр функции on\_message\_delete - в неё при отправке сообщения будет передаваться `MessageDeletePayload`. Если она вернет `True`, функция вызовется.

Если вставить `str`, то будет вызываться в случае, если удаленное сообщение кешировано и текст удаленного сообщения будет равен `str`.

Если не вставлять фильтр, функция вызовется при любом удаленном сообщении.

Отправляет функции объект класса `MessageDeletePayload`.

## `Bot.on_bot_start()`

Декоратор вызывается, когда пользователь жмет кнопку "Начать" в ЛС с ботом.

Отправляет функции объект класса `BotStartPayload`.

## `Bot.on_ready()`

Декоратор вызывается перед началом долгого опроса (поллинга).

## `Bot.on_command(name: "str | None" = None, aliases = List[str] = [])`

Декоратор для получения команд с префиксом.

Принимает `name` - название команды и `aliases` - список с альтернативными названиями команд.

Если `name` не указан, то название команды берется из имени функции.

Отправляет функции объект класса `CommandsContext`.

## `Bot.on_button_callback(filter: Callable | None = None)`

Декоратор для отслеживания нажатий на кнопки типа `CallbackButton`.

Поддерживает фильтры. Вставьте `Callable` функцию в параметр функции on\_message - в неё при отправке сообщения будет передаваться `Callback`. Если она вернет `True`, функция вызовется.

Отправляет функции объект класса `Callback`.

## `Bot.on_button_chat_create()`

Декоратор для отслеживания нажатий на создание чатов с помощью кнопки типа `ChatButton`.

Отправляет функции объект класса `ChatCreatePayload`.

## `Bot.on_bot_add()`

Декоратор для отслеживания добавления бота в чаты.

Отправляет функции объект класса `ChatMembershipPayload`.

## `Bot.on_bot_remove()`

Декоратор для отслеживания удаления бота с чатов.

Отправляет функции объект класса `ChatMembershipPayload`.

## `Bot.on_user_add()`

Декоратор для отслеживания добавления или входа пользователей в чаты.

Отправляет функции объект класса `UserMembershipPayload`.

## `Bot.on_user_remove()`

Декоратор для отслеживания удаления или выхода пользователей с чатов.

Отправляет функции объект класса `UserMembershipPayload`.

## `Bot.on_chat_title_change()`

Декоратор для отслеживания изменений названий чатов.

Отправляет функции объект класса `ChatTitleEditPayload`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dpnspn.gitbook.io/aiomax/decorators.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
