Discord.py как загрузить сообщения, отправленные до загрузки бота

#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) события и, которые запускаются независимо от того, было ли сообщение найдено в кэше, но оно не содержит информации об исходном сообщении до удаления / редактирования.