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

Posted

技术标签:

【中文标题】如何让机器人在一段时间后删除消息【英文标题】:How to make a bot delete messages after a certain time period 【发布时间】:2019-06-02 17:26:13 【问题描述】:

我试图让我的机器人在 15 秒后删除 4 条消息,但我不知道如何让它这样做。

const commando = require('discord.js-commando');

class HitOrMissCommand extends commando.Command

    constructor(client)
    
        super(client,
            name: 'hitormiss',
            group: 'simple',
            memberName: 'hitormiss',
            description: 'i bet he doesnt kiss yah!'
        );    
    

    async run(message, args)
    
       message.reply("I guess they never miss, huh?")
       message.reply("you got a boyfriend i bet he doesnt kiss yah!, MWAH!")
       message.reply("He gon find another girl and he wont miss yah")
       message.reply("He gon skirt and hit the dab like wiz khalifa")
    


module.exports = HitOrMissCommand;

【问题讨论】:

Discord.js: Send message and shortly delete it的可能重复 【参考方案1】:

可能想看看这个问题here.

正如该帖子中所回答的那样,最好的方法是在 x 秒后删除该消息。

    message.reply('Hit or miss.')
  .then(msg => 
    msg.delete(10000)
  )
  .catch(); /*Used for error handling*/

应归功于用户 LW001,他回答了我提到的帖子中的问题。

【讨论】:

【参考方案2】:

由于this question 相似,您可以使用相同的技术 - 添加删除超时。在您回复后,.then() 使用您的 15 秒计时器(15000 毫秒)删除该消息:

message.reply("I guess they never miss, huh?").then(message => message.delete(15000)).catch(err => throw err);

或者如果你不能使用箭头语法:

message.reply("I guess they never miss, huh?").then(function(message) 
    message.delete(15000);
).catch(function(err) 
    throw err;
);

【讨论】:

【参考方案3】:

可以这样。

var replyM = message.reply("I guess they never miss, huh?")

setTimeout(function()
  replyM.delete
, 1000);

【讨论】:

【参考方案4】:
if (message.content.startsWith(`!test`)) 
    await message.channel.send('Hello').then(r => r.delete( timeout: 5000 ))
    console.log("test");

【讨论】:

嗨,欢迎来到 Stack Overflow!只是为了让您知道:当您回答问题时,请尝试发布比代码更完整的内容,也许添加一些关于作者错误以及您如何修复它的解释。我告诉您这是因为您的答案已在“低质量帖子”队列中被标记为删除。您可以使用“编辑”按钮编辑您的答案,或点击此处:edit

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

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

不要让成员在电报组中发送消息

如果没有互联网连接,如何在一段时间后重试连接不和谐机器人?

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

如何提及使用 Chat Discord.JS 发送消息的用户?

如何修复重新启动机器人后无法正常工作的事件