Я настроил команду *ban
, и она использует декоратор @commands.has_permissions(ban_members=True)
. Тем не менее, мой обработчик ошибок, похоже, не отвечает на if isinstance (error, MissingPermissions):
.
@client.command(name="ban", pass_ctx=True)
@commands.has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member=None, *, reason: str=None):
# command is here but irrelevant i think
@ban.error
async def ban_error(ctx, error):
if isinstance(error, BadArgument): # members != @user
await ctx.send("Please specify a **valid** user!")
elif isinstance(error, MissingPermissions): # can't ban
await ctx.send("You need the **ban members** permission")
else:
raise error
Он не попадает в обработчик ошибок, но мой терминал [vscode] действительно выдает это: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: Forbidden:
403 FORBIDDEN (error code: 50013): Missing Permissions
Я предположил, что это было то, что MissingPermissions
делает? В любом случае, я озадачен, почему это не работает, поэтому помощь приветствуется:)
Также обратите внимание, что этот же код работает на моей команде kick как-нибудь?