Mikhail Veretelnikov
Mikhail Veretelnikov

Reputation: 13

Problems with messageDelete in Discord js

I try to make my bot on Discord server. Want to make a function, which will copy all deleted message in text channel, but, messageDelete hear only deleted message which was writing after bot start. When I delete message which make earlier bot start, its not work.

{
client.on ("messageDelete", messageDelete =>{
    let channel = client.channels.find(channel => channel.name === 'log-deleted-message')
    console.log(`Deleted :${messageDelete.content}`)
    channel.send(`${messageDelete.author.username} write : ${messageDelete.content}` 
})
}

Upvotes: 1

Views: 4810

Answers (2)

Ricky
Ricky

Reputation: 791

The above answer is now outdated. With Discord.js V12 you can now Cache messages on the messageDelete event, You would need to enable Partials. Once this is enabled, you can fetch the message beforehand like this:

if(message.partial){ 
let msg = await message.fetch()
console.log(msg.content)
}

That will then log the content of the previously uncached message.

Upvotes: 2

Aplet123
Aplet123

Reputation: 35512

messageDelete is an event that is called when a message is deleted while the bot is on. If a message is deleted before the bot is turned on there is no way to recover it, which is why it's known as deleted. The only way to accomplish the goal that you want is to leave the bot on permanently. Read more in the docs if you want more information.

Upvotes: 1

Related Questions