检查用户是否具有Discord Python角色

时间:2020-06-07 20:52:46

标签: python discord

您好,我想创建一个不和谐的bot,该bot首先检查该成员是否具有执行命令的权限。示例:使用!create可以创建随机密钥,但是只有角色所有者可以使用!create我该怎么做?

2 个答案:

答案 0 :(得分:0)

在创建命令时,可以使用@commands.has_role("Owner")来将其限制为仅指定角色

https://discordpy.readthedocs.io/en/latest/ext/commands/api.html?highlight=has_role#discord.ext.commands.has_role

discord.ext.commands.has_role(item)

添加的check()可以检查调用命令的成员是否具有通过指定的名称或ID指定的角色。 如果指定了字符串,则必须提供角色的确切名称, 包括大写和拼写。

如果指定了整数,则必须提供确切的雪花ID 角色。

如果在私人消息上下文中调用消息,则检查 将返回False。

此检查引发两个特殊异常之一:MissingRole,如果 用户缺少角色,或者如果缺少该角色,则缺少NoPrivateMessage 信息。两者都继承自CheckFailure。

在版本1.1中进行了更改:改为提高MissingRole或NoPrivateMessage 通用CheckFailure 参量 item(Union [int,str])–要检查的角色的名称或ID。

答案 1 :(得分:0)

如果您使用的是discord.py,则可以检查它们的引用,该引用指出钩子on_message()包含一个Message对象,该对象具有一个author属性。

authorMember,可以与Role对象的属性members进行比较。

我不是该库的专家,但是对文档的快速阅读使它看起来很容易