发送消息并立即删除它

hal*_*ley 1 javascript discord discord.js

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

Jso*_*owa 15

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

Discord.js v13

message.reply('Invalid command!')
  .then(msg => {
    setTimeout(() => msg.delete(), 10000)
  })
  .catch(console.error);
Run Code Online (Sandbox Code Playgroud)

Discord.js v12

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


LW0*_*001 10

我建议您发送消息,等待响应并在此之后删除返回的消息.这是它的工作方式:

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

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

  • 如果您使用的是discord.js v12(当前为master分支),您需要将`msg.delete(10000)`更改为`msg.delete({ timeout: 10000 })` (14认同)