mirror of
				https://github.com/Rapptz/discord.py.git
				synced 2025-10-30 04:52:56 +00:00 
			
		
		
		
	[commands] Unify Command.handle_local_error into general dispatcher.
This commit is contained in:
		| @@ -641,8 +641,7 @@ class Bot(GroupMixin, discord.Client): | |||||||
|             try: |             try: | ||||||
|                 yield from command.invoke(ctx) |                 yield from command.invoke(ctx) | ||||||
|             except CommandError as e: |             except CommandError as e: | ||||||
|                 command.handle_local_error(e, ctx) |                 command.dispatch_error(e, ctx) | ||||||
|                 self.dispatch('command_error', e, ctx) |  | ||||||
|             else: |             else: | ||||||
|                 self.dispatch('command_completion', command, ctx) |                 self.dispatch('command_completion', command, ctx) | ||||||
|         else: |         else: | ||||||
|   | |||||||
| @@ -137,17 +137,20 @@ class Command: | |||||||
|         self.instance = None |         self.instance = None | ||||||
|         self.parent = None |         self.parent = None | ||||||
|  |  | ||||||
|     def handle_local_error(self, error, ctx): |     def dispatch_error(self, error, ctx): | ||||||
|         try: |         try: | ||||||
|             coro = self.on_error |             coro = self.on_error | ||||||
|         except AttributeError: |         except AttributeError: | ||||||
|             return |             pass | ||||||
|  |         else: | ||||||
|  |             loop = ctx.bot.loop | ||||||
|             injected = inject_context(ctx, coro) |             injected = inject_context(ctx, coro) | ||||||
|             if self.instance is not None: |             if self.instance is not None: | ||||||
|             discord.compat.create_task(injected(self.instance, error, ctx), loop=ctx.bot.loop) |                 discord.compat.create_task(injected(self.instance, error, ctx), loop=loop) | ||||||
|             else: |             else: | ||||||
|             discord.compat.create_task(injected(error, ctx), loop=ctx.bot.loop) |                 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): |     def _get_from_servers(self, bot, getter, argument): | ||||||
|         result = None |         result = None | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user