В discord.js для отслеживания удаления сообщения от его автора можно использовать событие `messageDelete` и проверять, совпадает ли ID автора сообщения с ID бота.
```javascript
client.on('messageDelete', async (message) => {
if (message.author.id === client.user.id) {
// Сообщение было удалено ботом
console.log(`Сообщение от бота удалено: ${message.content}`);
} else {
// Сообщение было удалено самим автором
console.log(`Сообщение от автора удалено: ${message.content}`);
}
});
```
Чтобы улучшить код и расширить функциональность для проверки удаления сообщений в каналах, можно использовать событие `Events.GuildAuditLogEntryCreate`, чтобы получить дополнительную информацию о пользователе, который удалил сообщение. Это событие вызывается при создании записи в журнале аудита сервера, включая удаление сообщений.
```javascript
client.on('guildAuditLogEntryCreate', async (entry) => {
if (entry.action === 'MESSAGE_DELETE') {
const { executor, target } = entry;
if (executor.id === client.user.id) {
// Сообщение было удалено ботом
console.log(`Сообщение от бота удалено: ${target.content}`);
} else {
// Сообщение было удалено другим пользователем
console.log(`Сообщение от пользователя ${executor.username} удалено: ${target.content}`);
}
}
});
```
Таким образом, использование события `Events.GuildAuditLogEntryCreate` позволяет отслеживать удаление сообщений как ботом, так и другими пользователями.