【问题标题】:When someone sends a command in discord.js it spits out errors instead of sending a message当有人在 discord.js 中发送命令时,它会吐出错误而不是发送消息
【发布时间】:2020-07-18 20:06:26
【问题描述】:
  client.on('message', message => {
      if (!message.member.hasPermission(["KICK_MEMBERS", "ADMINISTRATOR"])) return message.channel.send("Hey! Dont try to make me say that!")
      if (message.content.startsWith("||say ")) { //prefix
      message.delete(1); //Supposed to delete message
      message.channel.send(message.content.slice(5, message.content.length));
   }
});

因此,当我在没有权限的帐户上进行测试时,该命令没有通过,但它会吐出错误,而不是发送无法让机器人发送消息的消息。这是错误https://pastebin.com/raw/UFH7wKCd 此外,删除消息不适用于代码。

【问题讨论】:

  • message.delete() 接受一个对象:Discord.js docs
  • 另外,错误中的代码与您在问题中粘贴的代码不同。

标签: javascript discord.js


【解决方案1】:

这对我有用。我添加了一个过滤器来防止机器人响应它自己的消息和异步/等待。

client.on("message", async message => {
    if (message.author.bot) return;
    if (!message.member.hasPermission(["KICK_MEMBERS", "ADMINISTRATOR"])) return await message.channel.send("Hey ! Dont try to make me say that !")
    if (message.content.startsWith("||say ")) { // prefix
        message.delete(1); // Supposed to delete message
        message.channel.send(message.content.slice(5, message.content.length));
    }
});

【讨论】:

  • 当我使用它时,它会向没有权限的所有人发送垃圾邮件
  • 我通过删除消息“嘿!不要试图让我这么说”来修复它
猜你喜欢
  • 2020-02-26
  • 2021-04-19
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
  • 2021-06-12
  • 2021-05-08
相关资源
最近更新 更多