aboutsummaryrefslogtreecommitdiff
path: root/discord/ext
diff options
context:
space:
mode:
authorRapptz <[email protected]>2016-06-05 00:35:27 -0400
committerRapptz <[email protected]>2016-06-05 00:35:27 -0400
commitb9c7b051763e11d2e3f9b526b4773c9e842a479f (patch)
tree54f47d6d978e4dd7c2fd9210ec6c1ddbd23364ba /discord/ext
parent[commands] Add Command.qualified_name to get the full command name. (diff)
downloaddiscord.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.py3
-rw-r--r--discord/ext/commands/core.py17
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