close

how do I check if a user has a specific role in discord

Hello Guys, How are you all? Hope You all Are Fine. Today We Are Going To learn about how do I check if a user has a specific role in discord in Python. So Here I am Explain to you all the possible Methods here.

Without wasting your time, Let’s start This Article.

Table of Contents

how do I check if a user has a specific role in discord?

  1. how do I check if a user has a specific role in discord?

    role = discord.utils.get(ctx.guild.roles, name="Muted") this variable locates the Muted role in the server

  2. I check if a user has a specific role in discord

    role = discord.utils.get(ctx.guild.roles, name="Muted") this variable locates the Muted role in the server

Method 1

Member does not have a .has_role() method, you can however get a list of all their roles using .roles.

To see if a user has a given role we can use role in user.roles.

    @bot.command(pass_context=True)
    @commands.has_role("Admin")
    async def unmute(ctx, user: discord.Member):
        role = discord.utils.find(lambda r: r.name == 'Member', ctx.message.guild.roles)
        if role in user.roles:
            await bot.say("{} is not muted".format(user))
        else:
            await bot.add_roles(user, role)

Method 2

Personally I use this:

@bot.command(pass_context=True)
@commands.has_role("Admin")
async def unmute (ctx,user:discord.Member):
  role = discord.utils.get(ctx.guild.roles, name="Muted")

  if role in user.roles:
    await user.remove_roles(role)

    await user.add_roles(role)
    embed = discord.Embed(title="Unmuute Members", description=f"{user.mention} has been unmuted" , color = discord.Color.blue())


    embed.add_field(name='Unmuted by:' , value = f"{ctx.author.mention}")


    await user.remove_roles(role)

    await ctx.send(embed=embed)

  else:
    await ctx.send("Invalid Argumnets or The user is not muted.")

So as you can see

role = discord.utils.get(ctx.guild.roles, name="Muted") this variable locates the Muted role in the server

if role in user.roles:
    await user.remove_roles(role)

and this will remove the role from the user

Summery

It’s all About this issue. Hope all Methods helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which Method worked for you? Thank You.

Also, Read