1
0
mirror of https://github.com/Rapptz/discord.py.git synced 2025-05-12 00:39:56 +00:00

[commands] Unify Command.handle_local_error into general dispatcher.

This commit is contained in:
Rapptz 2016-06-05 00:35:27 -04:00
parent 661645ac97
commit b9c7b05176
2 changed files with 11 additions and 9 deletions
discord/ext/commands

@ -641,8 +641,7 @@ class Bot(GroupMixin, discord.Client):
try:
yield from command.invoke(ctx)
except CommandError as e:
command.handle_local_error(e, ctx)
self.dispatch('command_error', e, ctx)
command.dispatch_error(e, ctx)
else:
self.dispatch('command_completion', command, ctx)
else:

@ -137,17 +137,20 @@ class Command:
self.instance = None
self.parent = None
def handle_local_error(self, error, ctx):
def dispatch_error(self, error, ctx):
try:
coro = self.on_error
except AttributeError:
return
injected = inject_context(ctx, coro)
if self.instance is not None:
discord.compat.create_task(injected(self.instance, error, ctx), loop=ctx.bot.loop)
pass
else:
discord.compat.create_task(injected(error, ctx), loop=ctx.bot.loop)
loop = ctx.bot.loop
injected = inject_context(ctx, coro)
if self.instance is not None:
discord.compat.create_task(injected(self.instance, error, ctx), loop=loop)
else:
discord.compat.create_task(injected(error, ctx), loop=loop)
finally:
ctx.bot.dispatch('command_error', error, ctx)
def _get_from_servers(self, bot, getter, argument):
result = None