发送消息并立即删除它

时间:2017-10-24 09:44:33

标签: javascript discord discord.js

我试图让Discord机器人删除其系统消息"之后,比方说,10秒,因为我已经看到很多"无效的命令"错误和"完成!"通知,我想清除它们的实际消息。这与删除用户拥有命令的消息不同;我已经具备了这种能力。

3 个答案:

答案 0 :(得分:11)

当前的API与旧版本不同。正确的超时方法现在看起来像这样。

message.reply('Invalid command!')
  .then(msg => {
    msg.delete({ timeout: 10000 })
  })
  .catch(console.error);

Discord.js v12

答案 1 :(得分:8)

我建议您发送消息,等待响应并在此之后删除返回的消息。以下是它的工作原理:

message.reply('Invalid command')
  .then(msg => {
    msg.delete(10000)
  })
  .catch(/*Your Error handling if the Message isn't returned, sent, etc.*/);

正如您可以从the Docs读取的那样,您只需将一个以毫秒为单位的值传递给Message.delete()作为超时。

答案 2 :(得分:0)

每个 Discord.JS 版本都有一种新的超时删除方式。

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:

setTimeout(() => message.delete(), 10000);