簡體   English   中英

discord.py檢查用戶是否具有特定角色

[英]discord.py check if a user has a particular role

我試圖讓它檢查用戶是否具有被標記的角色。

discord.utils.get(ctx.guild.roles,name =角色名稱)和discord.utils.get(user.roles,name =角色名稱)

@bot.command()
@commands.has_permissions(manage_roles=True)
async def giverole(ctx, user: discord.Member, rolename: discord.Role):
    role = discord.utils.get(ctx.guild.roles, name=rolename)
    if(not role in user.roles):
        await user.add_roles(rolename)
        embed=discord.Embed(title=f"{user.name} Has been added to a role called: {rolename.name}", color=discord.Color.dark_purple())
        await ctx.send(embed=embed)
    else:
        await ctx.send(f"Hey {ctx.author.name}, {user.name} already has the role called: {rolename.name}")

沒有錯誤只會保留角色,而不是檢查用戶是否具有該角色。

@bot.command()
@commands.has_permissions(manage_roles=True)
async def giverole(ctx, user: discord.Member=None, rolename:discord.Role=None):
    if rolename in user.roles:
        await ctx.send("Person already has role")
    else:
        await user.add_roles(rolename)
        await ctx.send("Person doesn't have the role and it has been given to him/her")

確保該機器人的角色比您嘗試賦予用戶的角色更高,因為如果不是,那么您將收到錯誤50013 Missing Permissions.

這是修復

@commands.has_permissions(manage_roles=True)
async def giverole(ctx, user: discord.Member=None, rolename:discord.Role=None):
    if rolename not in user.roles:
        await user.add_roles(rolename)
        await ctx.send("Person doesn't have the role and it has been given to him/her")
    else:
        await ctx.send("Person already has role")```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM