Discord.py-检查用户是否具有特定规则(如果有)

时间:2020-06-12 18:31:18

标签: python discord.py

我浏览了其他帖子,但似乎找不到解决我问题的方法。 我对踢球命令进行了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}')

1 个答案:

答案 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


参考: