diff options
| author | Rapptz <[email protected]> | 2016-06-05 00:35:27 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2016-06-05 00:35:27 -0400 |
| commit | b9c7b051763e11d2e3f9b526b4773c9e842a479f (patch) | |
| tree | 54f47d6d978e4dd7c2fd9210ec6c1ddbd23364ba /discord/ext | |
| parent | [commands] Add Command.qualified_name to get the full command name. (diff) | |
| download | discord.py-b9c7b051763e11d2e3f9b526b4773c9e842a479f.tar.xz discord.py-b9c7b051763e11d2e3f9b526b4773c9e842a479f.zip | |
[commands] Unify Command.handle_local_error into general dispatcher.
Diffstat (limited to 'discord/ext')
| -rw-r--r-- | discord/ext/commands/bot.py | 3 | ||||
| -rw-r--r-- | discord/ext/commands/core.py | 17 |
2 files changed, 11 insertions, 9 deletions
diff --git a/discord/ext/commands/bot.py b/discord/ext/commands/bot.py index 8814021b..6fc36a3c 100644 --- a/discord/ext/commands/bot.py +++ b/discord/ext/commands/bot.py @@ -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: diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index fb60274b..dd3607f5 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -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 |