mirror of
				https://github.com/Rapptz/discord.py.git
				synced 2025-10-27 19:42:56 +00:00 
			
		
		
		
	[commands] Fix exception raised in Command invoke hooks.
This commit is contained in:
		| @@ -715,18 +715,14 @@ class Command(_BaseCommand): | |||||||
|         # first, call the command local hook: |         # first, call the command local hook: | ||||||
|         cog = self.cog |         cog = self.cog | ||||||
|         if self._before_invoke is not None: |         if self._before_invoke is not None: | ||||||
|             try: |  | ||||||
|                 instance = self._before_invoke.__self__ |  | ||||||
|             # should be cog if @commands.before_invoke is used |             # should be cog if @commands.before_invoke is used | ||||||
|             except AttributeError: |             instance = getattr(self._before_invoke, '__self__', cog) | ||||||
|             # __self__ only exists for methods, not functions |             # __self__ only exists for methods, not functions | ||||||
|             # however, if @command.before_invoke is used, it will be a function |             # however, if @command.before_invoke is used, it will be a function | ||||||
|                 if self.cog: |             if instance: | ||||||
|                     await self._before_invoke(cog, ctx) |                 await self._before_invoke(instance, ctx) | ||||||
|             else: |             else: | ||||||
|                 await self._before_invoke(ctx) |                 await self._before_invoke(ctx) | ||||||
|             else: |  | ||||||
|                 await self._before_invoke(instance, ctx) |  | ||||||
|  |  | ||||||
|         # call the cog local hook if applicable: |         # call the cog local hook if applicable: | ||||||
|         if cog is not None: |         if cog is not None: | ||||||
| @@ -742,15 +738,11 @@ class Command(_BaseCommand): | |||||||
|     async def call_after_hooks(self, ctx): |     async def call_after_hooks(self, ctx): | ||||||
|         cog = self.cog |         cog = self.cog | ||||||
|         if self._after_invoke is not None: |         if self._after_invoke is not None: | ||||||
|             try: |             instance = getattr(self._after_invoke, '__self__', cog) | ||||||
|                 instance = self._after_invoke.__self__ |             if instance: | ||||||
|             except AttributeError: |                     await self._after_invoke(instance, ctx) | ||||||
|                 if self.cog: |  | ||||||
|                     await self._after_invoke(cog, ctx) |  | ||||||
|             else: |             else: | ||||||
|                 await self._after_invoke(ctx) |                 await self._after_invoke(ctx) | ||||||
|             else: |  | ||||||
|                 await self._after_invoke(instance, ctx) |  | ||||||
|  |  | ||||||
|         # call the cog local hook if applicable: |         # call the cog local hook if applicable: | ||||||
|         if cog is not None: |         if cog is not None: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user