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