[英]Discord.py - Check if user has specific rule (if function)
我浏览了其他帖子,但似乎找不到解决问题的方法。 我为我的 kick 命令做了一个小的 if 函数检查,看看你试图踢的玩家是否不是工作人员的一部分。
员工角色是“团队”。
@client.command()
@has_permissions(kick_members=True)
async def k(ctx, member: discord.Member, *, reason=None):
if discord.utils.get(ctx.server.roles, name="Team") in member.roles:
await ctx.send('You cannot kick a staff member')
else:
await member.kick(reason=reason)
await ctx.send(f'Kicked {member}. Reason: {reason}')
您可以使用列表推导来完全测试名称:
if "Team" in [r.name for r in member.roles]:
# code
或者您可以通过 ID 进行操作,建议您这样做,因为这意味着您可以更改服务器中角色的名称,而无需更新您的代码。
if 112233445566778899 in [r.id for r in member.roles]:
# code
要获取角色 ID:
Copy ID
您的代码不起作用的原因是您编写了ctx.server
而不是ctx.guild
。
请参阅此处了解更多信息。
参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.