Reputation: 204
I'm trying to delete a message after a few seconds after it was send. I noticed that my Discord v.12 Code isn't working anymore. Can someone tell me what the replacement for .then(m => m.delete({ timeout: 3000 }))
is?
My v.12 Code:
else if (parts[0] == prefix + 'c') {
if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send("You don't have permission to do that!")
if (!parts[1]) return message.channel.send('You forgot the number').then(m => m.delete({ timeout: 3000 }))
if (isNaN(parts[1])) return message.channel.send('You need a number').then(m => m.delete({ timeout: 3000 }))
if (parts[1] > 100) return message.channel.send("You can't delete more than 100 messages").then(m => m.delete({ timeout: 3000 }))
if (parts[1] < 2) return message.channel.send('You need to delete at least 2 messages').then(m => m.delete({ timeout: 3000 }))
message.channel.bulkDelete(parts[1])
message.channel.send(`I deleted ${parts[1]} messages`).then(m => m.delete({ timeout: 3000 }))
My v.13 Code:
case 'c':
case 'C':
let parts = message.content.split(" ");
if (!message.member.permissions.has(Discord.Permissions.FLAGS.MANAGE_ROLES)) return;
if (!parts[1]) return message.channel.send('You need a number!')
if (isNaN(parts[1])) return;
if (parts[1] > 100) return;
if (parts[1] < 2) return;
message.channel.bulkDelete(parts[1]);
break;
Upvotes: 1
Views: 2882
Reputation: 2210
You can use this code:
message.channel.send(`I deleted ${parts[1]} messages`)
.then(msg => {
setTimeout(() => msg.delete(), 3000)
}).catch((err) => {console.log(err)})
Upvotes: 0
Reputation: 9041
message.delete
no longer accepts the options
parameter.
The timeout must now be done with setTimeout
. See the official guide.
//message.delete({ timeout: 3000 }) in v12 is now
setTimeout(() => message.delete(), 3000)
Upvotes: 5
Reputation: 199
Well, discord completely removed the option to add a delay when deleting messages, so you will have to use the setTimeout function.
let msg = await message.channel.send("test")
setTimeout(function() {
msg.delete();
}, 3000) // replace the 3000 with the amount of miliseconds.
Upvotes: 0