如何检查用户是否在角色列表中具有特定角色? (不和谐.py)

时间:2021-04-15 08:37:20

标签: python discord.py

当尝试运行此代码时,没有任何反应。顺便说一句,没有错误。我得到了一个角色列表来让它发挥作用,但它没有。

rolelist = [822428355554312212,
            822728446059741218,
            823814683973779488]

check = ''

if rolelist in user.roles:
    check += 'Bot Developer'

2 个答案:

答案 0 :(得分:0)

你可以做到

if any(role.id in rolelist for role in user.roles):
   ...
<块引用>

嗯,它有什么作用?

每次迭代,它从用户那里获取一个角色,获取 ID,并检查 ID 是否在 rolelist 数组中。如果角色 id 在数组中,它会停止循环并执行它应该在 if 语句中执行的函数。

祝您有美好的一天!

答案 1 :(得分:0)

还有另一种方式。您可以使用内置的。

文档链接:https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.has_any_role

文档中的示例:

@bot.command()
@commands.has_any_role('Library Devs', 'Moderators', 492212595072434186)
async def cool(ctx):
    await ctx.send('You are cool indeed')