如何检查用户是否具有带有角色 ID 的特定角色

时间:2021-05-16 21:53:00

标签: python discord.py

我想看看某人是否有角色,但我想检查角色 ID 而不是角色名称

示例:

@client.command()
@guild_only()
@commands.has_role(role_id='2374623645')
async def test(ctx):
    await ctx.send('test')

2 个答案:

答案 0 :(得分:0)

我想如果你有一个角色 ID,你可以把它转换成一个角色名称。

@client.command()
@guild_only()
role_id='2374623645'
role_name = my_server.get_role(role_id)
@commands.has_role(role_name)
async def test(ctx):
    await ctx.send('test')

答案 1 :(得分:0)

这将是找出某人是否具有目标角色的完整示例。

语法:[prefix]test <Member mention/ID>

如果没有提供成员,它将删除调用消息并发送错误。否则,它会检查成员是否具有通过 discord.utils.get() 获得的角色并提供结果。

@client.command()
@guild.only()
async def test(ctx, member: discord.Member=None):
    await ctx.message.delete()
    if member is None:
        await ctx.send("You need to provide a member ID/Mention.")
        return
    else:
        pass
        
    target_role = discord.utils.get(ctx.guild.roles, id=123456789012345678)
    if target_role in member.roles:
        await ctx.send(f"{member} does have the target role.")
    else:
        await ctx.send(f"{member} does not have the target role.")