尝试清除消息时DiscordAPIError无效的表单主体

Zac*_*ach 5 javascript node.js discord.js

因此,我很确定此代码在某一时刻可以正常工作,但是最近我注意到它有时起作用,但并非总是如此(阅读:它将始终清除n个消息,但可能不会清除其他成员) 。

因为我在教自己如何在该项目上使用多个文件,所以代码实际上是在两个文件之间划分的。我不确定这是否与问题有关。给定这两个文件的大小,我已将它们都上传到pastebin。

命令代码。 功能代码。

当我尝试清除n(其中n是可接受范围内的任何数字)时,它的清除效果很好,但是当我尝试通过用户名清除n时,我收到一条错误消息,指出

DiscordAPIError:无效的表单主体

限制:值“”不是int。

(注意这是两个双引号,格式有点不清楚)

我很困惑它在哪里获得不是int的值,因为我正在通过praseInt运行金额。我已经摘录了检查用户是否已定义的代码段,并将其发布在下面,因为我认为这是问题所在:

if (user) { // If User is Provided
  debug.run(`Filtering messages by ${user.username}`);
  const filterBy = user ? user.id : client.user.id;
  messages = messages.filter(m => m.author.id === filterBy).array().slice(0, amount);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。如果我不知道,我或多或少将放弃该用户功能。

我也为格式化道歉。我永远无法掌握这种网站格式。

小智 1

尝试摆脱 .array().slice(0, amount).

amount如果该行已经对其进行了限制,则获取的消息数组不需要被变量剪切message.channel.fetchMessages({ limit: amount }).then((messages) => {