大约一个月前我为我的机器人做了一个禁令命令,几天前,它就停止工作了。有人知道为什么吗?下面是我的代码:
@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
来代替