【问题标题】: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;

【问题讨论】:

标签: javascript node.js discord.js


【解决方案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
        猜你喜欢
        • 2021-06-11
        • 2022-01-06
        • 2021-04-01
        • 2020-11-08
        • 1970-01-01
        • 2018-12-29
        • 2021-04-09
        • 2020-03-14
        • 1970-01-01
        相关资源
        最近更新 更多