bulkDelete 方法未按预期工作

bulkDelete method not working as intended

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

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)
}

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

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

否则你会知道它returns承诺。

还要记住这一点:

Bulk delete given messages that are newer than two weeks.

This is only available when using a bot account.


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

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