繁体   English   中英

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM