由于某种原因,我的禁止命令不起作用,并且我不知道如何修复它(discord.py)



大约一个月前我为我的机器人做了一个禁令命令,几天前,它就停止工作了。有人知道为什么吗?下面是我的代码:

@client.command()
@commands.has_permissions(ban_members=True)
async def ban(ctx, member : discord.Member, *, reason=None):
await member.ban(reason=reason)

下面是我得到的错误:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Context' object has no attribute 'ban'
我需要所有我能得到的帮助。提前感谢!

您正在执行一个Cog中的命令。类(本例中为Cog)中的所有方法(函数)的第一个集合为self,即类本身。

因为你没有通过"self"ctx"被用作它,基本上你的命令缺少一个参数。试试这个:

@commands.command()
@commands.has_permissions(ban_members=True)
async def ban(self, ctx, member : discord.Member, *, reason=None):
await member.ban(reason=reason)

另外,考虑到commands.has_permissions仅在当前通道上工作,您可能希望使用commands.has_guild_permissions来代替