Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查用户在discord.py角色列表中是否有角色?_Python_Discord.py - Fatal编程技术网

Python 如何检查用户在discord.py角色列表中是否有角色?

Python 如何检查用户在discord.py角色列表中是否有角色?,python,discord.py,Python,Discord.py,我正在尝试制作一个升级机器人,当成员达到某个级别时,他们将获得某个角色,但我一直在删除角色并检测该用户是否具有其他级别的角色 因此,假设一个0级用户以某种方式获得了10级角色。我如何使它能够在我所有级别角色的列表中检测到级别10角色,并仅删除不正确的角色 如果user.roles中有角色列表: 等待用户。删除角色(所有级别角色列表??) 等待用户。添加角色(正确级别的角色) 其他: 等待用户。添加角色(正确级别的角色) 您的问题似乎与示例代码显示的问题不同 是成员拥有的角色的列表,因此您可以简单

我正在尝试制作一个升级机器人,当成员达到某个级别时,他们将获得某个角色,但我一直在删除角色并检测该用户是否具有其他级别的角色

因此,假设一个0级用户以某种方式获得了10级角色。我如何使它能够在我所有级别角色的列表中检测到级别10角色,并仅删除不正确的角色

如果user.roles中有角色列表:
等待用户。删除角色(所有级别角色列表??)
等待用户。添加角色(正确级别的角色)
其他:
等待用户。添加角色(正确级别的角色)

您的问题似乎与示例代码显示的问题不同

是成员拥有的角色的列表,因此您可以简单地检查该列表中是否有
角色
,以查看他们是否拥有该角色

或者,您可以在自己的
角色
列表中检查
角色


注意,添加一个您刚刚删除的角色似乎是毫无意义的,并且需要一个不必要的额外API请求。您可能应该重新考虑该设计。

我编写了类似的代码,由命令触发。 如果您使用其他方式进入
guild.members

member == ctx.message.guild.members
level_role = ID_of_the_role_that_you_want_to_remove
for role in member.roles:           #getting all roles of member
    if role.id == level_role:    
        await member.remove_roles(role, reason='gets a better role')
    else:                           #skipping
        None
member == ctx.message.guild.members
level_role = ID_of_the_role_that_you_want_to_remove
for role in member.roles:           #getting all roles of member
    if role.id == level_role:    
        await member.remove_roles(role, reason='gets a better role')
    else:                           #skipping
        None