【问题标题】:How can I not get an error if the bot doesn't have the permission to send message?如果机器人没有发送消息的权限,我怎么能不收到错误消息?
【发布时间】:2020-09-28 04:03:01
【问题描述】:

我的代码中有if (!message.guild.me.hasPermission("SEND_MESSAGES")) return;,但是当我禁用机器人发送消息的权限时,它给了我一个错误(node:2504) UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions。我怎么可能解决这个问题,所以当我的机器人无法将消息发送到聊天中时我不会收到错误。

【问题讨论】:

  • 这个命令和角色有关系吗?

标签: javascript node.js bots discord discord.js


【解决方案1】:

在消息事件之前执行此操作

试试这个:

if (message.author.bot) {
 return;
} else {
 //do soemthing if user is not a bot
}

【讨论】:

  • 我尝试将它放在我的/event/client/message.js 文件夹中,但它仍然给我错误。
  • 你能指定你遇到的错误是什么,即错误代码或错误消息吗?
  • 它仍然向我发送此错误(node:2504) UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions
【解决方案2】:

您可以使用 try catch 块来捕获异常,然后不打印错误。

喜欢:

try{ if (!message.guild.me.hasPermission("SEND_MESSAGES")) return; }catch{}

【讨论】:

  • 我遇到了您提供的代码的问题。它没有给我任何错误,但是命令不起作用。我尝试将代码放在{} 的内部和外部,但都没有成功。
【解决方案3】:

可能是因为所需的权限不是SEND_MESSAGES

例如,如果您正在编写 ban 命令,您还需要检查机器人是否具有 BAN_MEMBERS 权限。

如果是add-role 命令,则必须检查机器人最高角色是否高于它需要分配的角色。

【讨论】:

  • 但我正在检查我的机器人是否可以发送消息;因为当我的机器人没有发送消息的权限时,它会给我一个错误(node:2504) UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions
  • @Meko 弹出此错误时您尝试运行的命令是什么?
  • @Meko 你能告诉我们你到底在哪里进行了权限检查吗?
  • @Meko 这是你的完整命令吗?您应该尝试在运行主文件/消息事件中的每个命令之前进行权限检查
猜你喜欢
  • 2020-12-03
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 2019-05-10
  • 2014-05-06
  • 2021-10-29
  • 2011-01-02
  • 2021-05-23
相关资源
最近更新 更多