让机器人在超时后删除自己的消息

Posted

技术标签:

【中文标题】让机器人在超时后删除自己的消息【英文标题】:Making a bot delete its own message after a timeout 【发布时间】:2018-12-29 08:06:46 【问题描述】:

我希望我的机器人发送一条消息,确认它执行了命令,然后在超时后删除该确认消息;以免使聊天混乱。

这是我希望将其应用于当前命令的代码示例:

exports.auth = 1
exports.run = (client, message, args) => 
  let num = parseInt(args);
  message.channel.bulkDelete(num+1)
    .then(messages => console.log(`Bulk deleted $num messages`))
    .catch(console.error);
  message.channel.send(`Deleted $num messages!`);
  message.delete(5000);
;

如果我没有在 Message.delete() 中设置时间;行,它只是删除我发送的消息。如果机器人发送消息的时间足够长,它只会给我一个错误。

【问题讨论】:

为什么不立即删除消息?你没有做任何事情来拖延它。 【参考方案1】:

您需要获取您发送的消息才能将其删除。

message.channel.send(`Deleted $num messages!`).then(sentMessage => 
    sentMessage.delete(5000);
);

这将发送消息,消息发送后它会返回它,以便您管理它(删除/编辑)。

【讨论】:

以上是关于让机器人在超时后删除自己的消息的主要内容,如果未能解决你的问题,请参考以下文章

如何让机器人在一段时间后删除消息

如何让我的机器人在特定频道中发送消息,然后在一段时间后将其删除

如何在超时后淡出消息

如何让我的 Discord.JS 机器人对其自己的直接消息做出反应?

discord.py :: 我怎样才能让我的机器人对它自己的消息做出反应?

在单独的频道中对机器人自己的消息的表情符号反应