Send message and shortly delete it
I recommend you send the message, wait for the response and delete the returned message after that time. Here's how it'd work now:
message.reply('Invalid command')
.then(msg => {
setTimeout(() => msg.delete(), 10000)
})
.catch(/*Your Error handling if the Message isn't returned, sent, etc.*/);
See the Discord.JS Docs for more information about the Message.delete()
function and the Node Docs for information about setTimeout()
.
Old ways to do this were:
Discord.JS v12:
message.reply('Invalid command')
.then(msg => {
msg.delete({ timeout: 10000 })
})
.catch(/*Your Error handling if the Message isn't returned, sent, etc.*/);
Discord.JS v11:
message.reply('Invalid command')
.then(msg => {
msg.delete(10000)
})
.catch(/*Your Error handling if the Message isn't returned, sent, etc.*/);
Current API differs from older versions. Proper way to pass timeout looks like this now.
Discord.js v13
message.reply('Invalid command!')
.then(msg => {
setTimeout(() => msg.delete(), 10000)
})
.catch(console.error);
Discord.js v12
message.reply('Invalid command!')
.then(msg => {
msg.delete({ timeout: 10000 })
})
.catch(console.error);
Every Discord.JS Version has a new way to delete with timeout.
Discord.JS V11:
message.channel.send('Test!').then(msg => msg.delete(10000));
Discord.JS V12:
message.channel.send('Test!').then(msg => msg.delete({timeout: 10000}));
Discord.JS V13:
message.channel.send('Test!').then(msg => setTimeout(() => message.delete(), 10000));