检查用户是否在discord.py中具有权限

时间:2019-12-18 18:22:19

标签: python discord discord.py repl.it

我正在为discord.py僵尸程序执行kick命令。这是kick命令可能是的一些代码:

    async kick_command(self, ctx, userName: discord.User):
      prefix_used = ctx.prefix
      alias_used = ctx.invoked_with
      text = msg[len(prefix_used) + len(alias_used):]
      if discord.User permissions = "admin":
        try:
          kick(User)
        except Exception as e:
          ee = "Error: " + e
          await ctx.send_message(content=ee)

我非常确定if语句和kick(User)是无效的语法。你能帮我吗?

我的代码: click here

2 个答案:

答案 0 :(得分:1)

尝试一下:

@bot.command()
@has_permissions(kick_members=True)  
async def kick(self, ctx, Member: discord.Member):
          await bot.kick(Member)

@kick.error
async def kick_error(error, ctx):
   if isinstance(error, MissingPermissions):
       await ctx.send("You don't have permission to do that!")

不要忘记导入has_permissionsfrom discord.ext.commands import has_permissions

答案 1 :(得分:-1)

实际上,有一种更好的方法可以不导入而进行导入,我建议不要导入,而只是按照下面显示的方式进行操作,因为如果您打算导入所有这些内容,这将为您节省一些时间。

这不需要为has_permissions导入任何内容。


@commands.has_permissions(kick_members=True)  
async def kick(self, ctx, Member: discord.Member):
await bot.kick(Member)