[英]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.