我正在制作Discord机器人,但是在该机器人确定作者权限的那一部分上,它无法识别角色,“所有者”和“ admin”等贵重物品是该角色的ID,格式为discord.Role?
我尝试使用ID和名称创建课程
perms = 0
if moderator in message.author.roles:
perms = 1
if admin in message.author.roles:
perms = 2
if owner in message.author.roles:
perms = 3
if muted in message.author.roles:
perms = -1
现在,由于我的角色是“所有者”,它的烫发输出为0,尽管应该为3。
答案 0 :(得分:0)
根据discord.py文档member.roles
(在您的情况下为message.author.roles
),返回Role
类实例的列表,而不是角色ID(documentation entry)。
您也可以在documentation中阅读有关Role
类的信息。
如果要检查成员是否具有具有指定ID的角色,可以首先获取其角色ID的列表:
perms = 0
ids = [role.id for role in message.author.roles]
if moderator in ids:
perms = 1
if admin in ids:
perms = 2
if owner in ids:
perms = 3
if muted in ids:
perms = -1