【问题标题】:bulkDelete method not working as intendedbulkDelete 方法未按预期工作
【发布时间】:2019-04-22 03:58:34
【问题描述】:

我正在创建一个清理聊天的命令,因此您可以删除垃圾邮件或不需要的聊天等。该命令曾经运行良好,但再次运行失败,所以我倾向于认为这是我无法控制的事情,但我不知道。

try {
  let mod = message.guild.roles.find(role => role.name === "Mods");

  if (!message.member.roles.has(mod.id)) return message.reply('You are not allowed to use this command.');

  if (isNaN(args[0])) return message.reply("Please supply a number of messages to delete.");

  if (args[0] > 100 || args[0] < 2) return message.reply('Please supply a number between 2 and 100 to delete.');

  message.channel.bulkDelete(args[0] + 1);
} catch (err) {
  console.log(err)
}

如前所述,它一次按预期工作,每隔一次,它只是删除数百条消息,似乎没有理由。也许是因为我现在是自托管的,这是一个延迟问题?不确定,无论哪种方式,任何帮助都将不胜感激。谢谢。

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    很遗憾你还没有阅读official manual about bulkDelete method

    否则你会知道它返回承诺。

    还要记住这一点:

    批量删除超过两周的给定消息。

    这仅在使用机器人帐户可用


    因此,如果您的帐户是机器人帐户,您可以这样做:

    message.channel
      .bulkDelete(args[0] + 1)
      .then(messages => console.log(`Bulk deleted ${messages.size} messages`))
      .catch(console.error);
    

    【讨论】:

    • 那么,为什么我如何捕捉错误,当它是一个承诺,好的答案,只是好奇时,这很重要。
    • 重要的是你必须履行这个承诺。 Promise 是一种特殊的类,必须使用 thenasync/await 糖执行
    • 酷,只是好奇它是如何工作的,会记住它。谢谢,感谢您的回答。
    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2020-10-04
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多