#discord.py
Вопрос:
Итак, я только что закончил создание бота для регистрации сообщений для сервера, но столкнулся с проблемой: когда я редактирую / удаляю сообщение, отправленное до запуска бота, оно не подтверждает изменение. Можно ли загрузить предыдущие сообщения, чтобы on_message_edited() или on_message_deleted() обнаруживали изменения во всех сообщениях (даже если это просто более свежие)?
Ответ №1:
on_message_delete(message)
и on_message_edit(before, after)
являются обработчиками событий. Для обоих событий требуется, чтобы исходное сообщение находилось в кэше сообщений, поскольку Discord не предоставляет исходное сообщение вместе с событием WebSocket.
Если исходного сообщения нет в кэше, ваш бот не сможет узнать содержимое исходного сообщения, поэтому невозможно discord.py чтобы переслать эти события.
Однако, если вас не волнует исходное сообщение, и вам просто нужно знать, что сообщение с идентификатором сообщения было удалено или отредактировано, тогда есть on_raw_message_delete(payload)
on_raw_message_edit(payload)
события и, которые запускаются независимо от того, было ли сообщение найдено в кэше, но оно не содержит информации об исходном сообщении до удаления / редактирования.