我浏览了其他帖子,但似乎找不到解决我问题的方法。 我对踢球命令进行了if-function小检查,以查看您要踢的球员是否不属于人员。
员工角色是“团队”。
@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}')
答案 0 :(得分:0)
您可以使用列表推导来测试纯名称:
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
。
有关更多信息,请参见here。
参考: