我想要检查两件事情:
- 检查我的机器人是否拥有特定的服务器权限(如果具备该权限,则返回true;否则返回false)
- 检查我的机器人是否拥有特定的频道权限(根据包含特定权限的频道设置的值返回true或false。例如,我可能已经在频道设置中添加了我的机器人并将"管理服务器"权限设置为true。如何读取这个信息?)
我想要检查两件事情:
找到了!
要查找机器人的权限,我们假设一个用户发送了一条消息(msg =>):
频道权限:
msg.guild.me.permissionsIn(msg.channel).has(<permission string here>)
服务器权限
msg.guild.me.hasPermission(<permission string here>)
在v14中,您现在需要使用Guild
内的MemberManager
来访问me
像这样
msg.guild.members.me?.permissionsIn(message.channel).has(permissions);
LDinos' answer 对于 Discord.js v12 是正确的。然而,Discord.js v13 中删除了 hasPermission
权限,转而使用 permissions.has
。
频道权限:
msg.guild.me.permissionsIn(msg.channel).has(permissions)
msg.guild.me.permissions.has(permissions)