676 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			676 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. currentmodule:: discord
 | |
| 
 | |
| API Reference
 | |
| ===============
 | |
| 
 | |
| The following section outlines the API of discord.py's command extension module.
 | |
| 
 | |
| .. _ext_commands_api_bot:
 | |
| 
 | |
| Bots
 | |
| ------
 | |
| 
 | |
| Bot
 | |
| ~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.Bot
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Bot
 | |
|     :members:
 | |
|     :inherited-members:
 | |
|     :exclude-members: after_invoke, before_invoke, check, check_once, command, event, group, listen
 | |
| 
 | |
|     .. automethod:: Bot.after_invoke()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Bot.before_invoke()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Bot.check()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Bot.check_once()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Bot.command(*args, **kwargs)
 | |
|         :decorator:
 | |
|     
 | |
|     .. automethod:: Bot.event()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Bot.group(*args, **kwargs)
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Bot.listen(name=None)
 | |
|         :decorator:
 | |
| 
 | |
| AutoShardedBot
 | |
| ~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.AutoShardedBot
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.AutoShardedBot
 | |
|     :members:
 | |
| 
 | |
| Prefix Helpers
 | |
| ----------------
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.when_mentioned
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.when_mentioned_or
 | |
| 
 | |
| .. _ext_commands_api_events:
 | |
| 
 | |
| Event Reference
 | |
| -----------------
 | |
| 
 | |
| These events function similar to :ref:`the regular events <discord-api-events>`, except they
 | |
| are custom to the command extension module.
 | |
| 
 | |
| .. function:: discord.ext.commands.on_command_error(ctx, error)
 | |
| 
 | |
|     An error handler that is called when an error is raised
 | |
|     inside a command either through user input error, check
 | |
|     failure, or an error in your own code.
 | |
| 
 | |
|     A default one is provided (:meth:`.Bot.on_command_error`).
 | |
| 
 | |
|     :param ctx: The invocation context.
 | |
|     :type ctx: :class:`.Context`
 | |
|     :param error: The error that was raised.
 | |
|     :type error: :class:`.CommandError` derived
 | |
| 
 | |
| .. function:: discord.ext.commands.on_command(ctx)
 | |
| 
 | |
|     An event that is called when a command is found and is about to be invoked.
 | |
| 
 | |
|     This event is called regardless of whether the command itself succeeds via
 | |
|     error or completes.
 | |
| 
 | |
|     :param ctx: The invocation context.
 | |
|     :type ctx: :class:`.Context`
 | |
| 
 | |
| .. function:: discord.ext.commands.on_command_completion(ctx)
 | |
| 
 | |
|     An event that is called when a command has completed its invocation.
 | |
| 
 | |
|     This event is called only if the command succeeded, i.e. all checks have
 | |
|     passed and the user input it correctly.
 | |
| 
 | |
|     :param ctx: The invocation context.
 | |
|     :type ctx: :class:`.Context`
 | |
| 
 | |
| .. _ext_commands_api_command:
 | |
| 
 | |
| Commands
 | |
| ----------
 | |
| 
 | |
| Decorators
 | |
| ~~~~~~~~~~~~
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.command
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.group
 | |
|     :decorator:
 | |
| 
 | |
| Command
 | |
| ~~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.Command
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Command
 | |
|     :members:
 | |
|     :special-members: __call__
 | |
|     :exclude-members: after_invoke, before_invoke, error
 | |
| 
 | |
|     .. automethod:: Command.after_invoke()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Command.before_invoke()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Command.error()
 | |
|         :decorator:
 | |
| 
 | |
| Group
 | |
| ~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.Group
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Group
 | |
|     :members:
 | |
|     :inherited-members:
 | |
|     :exclude-members: after_invoke, before_invoke, command, error, group
 | |
| 
 | |
|     .. automethod:: Group.after_invoke()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Group.before_invoke()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Group.command(*args, **kwargs)
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Group.error()
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: Group.group(*args, **kwargs)
 | |
|         :decorator:
 | |
| 
 | |
| GroupMixin
 | |
| ~~~~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.GroupMixin
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.GroupMixin
 | |
|     :members:
 | |
|     :exclude-members: command, group
 | |
| 
 | |
|     .. automethod:: GroupMixin.command(*args, **kwargs)
 | |
|         :decorator:
 | |
| 
 | |
|     .. automethod:: GroupMixin.group(*args, **kwargs)
 | |
|         :decorator:
 | |
| 
 | |
| .. _ext_commands_api_cogs:
 | |
| 
 | |
| Cogs
 | |
| ------
 | |
| 
 | |
| Cog
 | |
| ~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.Cog
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Cog
 | |
|     :members:
 | |
| 
 | |
| CogMeta
 | |
| ~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.CogMeta
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.CogMeta
 | |
|     :members:
 | |
| 
 | |
| .. _ext_commands_help_command:
 | |
| 
 | |
| Help Commands
 | |
| ---------------
 | |
| 
 | |
| HelpCommand
 | |
| ~~~~~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.HelpCommand
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.HelpCommand
 | |
|     :members:
 | |
| 
 | |
| DefaultHelpCommand
 | |
| ~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.DefaultHelpCommand
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.DefaultHelpCommand
 | |
|     :members:
 | |
|     :exclude-members: send_bot_help, send_cog_help, send_group_help, send_command_help, prepare_help_command
 | |
| 
 | |
| MinimalHelpCommand
 | |
| ~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.MinimalHelpCommand
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.MinimalHelpCommand
 | |
|     :members:
 | |
|     :exclude-members: send_bot_help, send_cog_help, send_group_help, send_command_help, prepare_help_command
 | |
| 
 | |
| Paginator
 | |
| ~~~~~~~~~~
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.Paginator
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Paginator
 | |
|     :members:
 | |
| 
 | |
| Enums
 | |
| ------
 | |
| 
 | |
| .. class:: BucketType
 | |
|     :module: discord.ext.commands
 | |
| 
 | |
|     Specifies a type of bucket for, e.g. a cooldown.
 | |
| 
 | |
|     .. attribute:: default
 | |
| 
 | |
|         The default bucket operates on a global basis.
 | |
|     .. attribute:: user
 | |
| 
 | |
|         The user bucket operates on a per-user basis.
 | |
|     .. attribute:: guild
 | |
| 
 | |
|         The guild bucket operates on a per-guild basis.
 | |
|     .. attribute:: channel
 | |
| 
 | |
|         The channel bucket operates on a per-channel basis.
 | |
|     .. attribute:: member
 | |
| 
 | |
|         The member bucket operates on a per-member basis.
 | |
|     .. attribute:: category
 | |
| 
 | |
|         The category bucket operates on a per-category basis.
 | |
|     .. attribute:: role
 | |
| 
 | |
|         The role bucket operates on a per-role basis.
 | |
| 
 | |
|         .. versionadded:: 1.3
 | |
| 
 | |
| 
 | |
| .. _ext_commands_api_checks:
 | |
| 
 | |
| Checks
 | |
| -------
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.check(predicate)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.check_any(*checks)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.has_role(item)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.has_permissions(**perms)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.has_guild_permissions(**perms)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.has_any_role(*items)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.bot_has_role(item)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.bot_has_permissions(**perms)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.bot_has_guild_permissions(**perms)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.bot_has_any_role(*items)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.cooldown(rate, per, type=discord.ext.commands.BucketType.default)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.dynamic_cooldown(cooldown, type=BucketType.default)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.max_concurrency(number, per=discord.ext.commands.BucketType.default, *, wait=False)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.before_invoke(coro)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.after_invoke(coro)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.guild_only(,)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.dm_only(,)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.is_owner(,)
 | |
|     :decorator:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.is_nsfw(,)
 | |
|     :decorator:
 | |
| 
 | |
| .. _ext_commands_api_context:
 | |
| 
 | |
| Cooldown
 | |
| ---------
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.Cooldown
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Cooldown
 | |
|     :members:
 | |
| 
 | |
| Context
 | |
| --------
 | |
| 
 | |
| .. attributetable:: discord.ext.commands.Context
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Context
 | |
|     :members:
 | |
|     :inherited-members:
 | |
|     :exclude-members: history, typing
 | |
| 
 | |
|     .. automethod:: discord.ext.commands.Context.history
 | |
|         :async-for:
 | |
| 
 | |
|     .. automethod:: discord.ext.commands.Context.typing
 | |
|         :async-with:
 | |
| 
 | |
| .. _ext_commands_api_converters:
 | |
| 
 | |
| Converters
 | |
| ------------
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Converter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.ObjectConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.MemberConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.UserConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.MessageConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.PartialMessageConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.GuildChannelConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.TextChannelConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.VoiceChannelConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.StoreChannelConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.StageChannelConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.CategoryChannelConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.InviteConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.GuildConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.RoleConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.GameConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.ColourConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.EmojiConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.PartialEmojiConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.ThreadConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.GuildStickerConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.clean_content
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Greedy()
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.run_converters
 | |
| 
 | |
| Flag Converter
 | |
| ~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.FlagConverter
 | |
|     :members:
 | |
| 
 | |
| .. autoclass:: discord.ext.commands.Flag()
 | |
|     :members:
 | |
| 
 | |
| .. autofunction:: discord.ext.commands.flag
 | |
| 
 | |
| .. _ext_commands_api_errors:
 | |
| 
 | |
| Exceptions
 | |
| -----------
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.CommandError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ConversionError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MissingRequiredArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ArgumentParsingError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.UnexpectedQuoteError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.InvalidEndOfQuotedStringError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ExpectedClosingQuoteError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BadArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BadUnionArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BadLiteralArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.PrivateMessageOnly
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.NoPrivateMessage
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.CheckFailure
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.CheckAnyFailure
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.CommandNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.DisabledCommand
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.CommandInvokeError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.TooManyArguments
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.UserInputError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.CommandOnCooldown
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MaxConcurrencyReached
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.NotOwner
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MessageNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MemberNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.GuildNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.UserNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ChannelNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ChannelNotReadable
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ThreadNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BadColourArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.RoleNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BadInviteArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.EmojiNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.PartialEmojiConversionFailure
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.GuildStickerNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BadBoolArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MissingPermissions
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BotMissingPermissions
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MissingRole
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BotMissingRole
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MissingAnyRole
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BotMissingAnyRole
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.NSFWChannelRequired
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.FlagError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.BadFlagArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MissingFlagArgument
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.TooManyFlags
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.MissingRequiredFlag
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ExtensionError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ExtensionAlreadyLoaded
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ExtensionNotLoaded
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.NoEntryPointError
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ExtensionFailed
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.ExtensionNotFound
 | |
|     :members:
 | |
| 
 | |
| .. autoexception:: discord.ext.commands.CommandRegistrationError
 | |
|     :members:
 | |
| 
 | |
| 
 | |
| Exception Hierarchy
 | |
| ~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| .. exception_hierarchy::
 | |
| 
 | |
|     - :exc:`~.DiscordException`
 | |
|         - :exc:`~.commands.CommandError`
 | |
|             - :exc:`~.commands.ConversionError`
 | |
|             - :exc:`~.commands.UserInputError`
 | |
|                 - :exc:`~.commands.MissingRequiredArgument`
 | |
|                 - :exc:`~.commands.TooManyArguments`
 | |
|                 - :exc:`~.commands.BadArgument`
 | |
|                     - :exc:`~.commands.MessageNotFound`
 | |
|                     - :exc:`~.commands.MemberNotFound`
 | |
|                     - :exc:`~.commands.GuildNotFound`
 | |
|                     - :exc:`~.commands.UserNotFound`
 | |
|                     - :exc:`~.commands.ChannelNotFound`
 | |
|                     - :exc:`~.commands.ChannelNotReadable`
 | |
|                     - :exc:`~.commands.BadColourArgument`
 | |
|                     - :exc:`~.commands.RoleNotFound`
 | |
|                     - :exc:`~.commands.BadInviteArgument`
 | |
|                     - :exc:`~.commands.EmojiNotFound`
 | |
|                     - :exc:`~.commands.GuildStickerNotFound`
 | |
|                     - :exc:`~.commands.PartialEmojiConversionFailure`
 | |
|                     - :exc:`~.commands.BadBoolArgument`
 | |
|                     - :exc:`~.commands.ThreadNotFound`
 | |
|                     - :exc:`~.commands.FlagError`
 | |
|                         - :exc:`~.commands.BadFlagArgument`
 | |
|                         - :exc:`~.commands.MissingFlagArgument`
 | |
|                         - :exc:`~.commands.TooManyFlags`
 | |
|                         - :exc:`~.commands.MissingRequiredFlag`
 | |
|                 - :exc:`~.commands.BadUnionArgument`
 | |
|                 - :exc:`~.commands.BadLiteralArgument`
 | |
|                 - :exc:`~.commands.ArgumentParsingError`
 | |
|                     - :exc:`~.commands.UnexpectedQuoteError`
 | |
|                     - :exc:`~.commands.InvalidEndOfQuotedStringError`
 | |
|                     - :exc:`~.commands.ExpectedClosingQuoteError`
 | |
|             - :exc:`~.commands.CommandNotFound`
 | |
|             - :exc:`~.commands.CheckFailure`
 | |
|                 - :exc:`~.commands.CheckAnyFailure`
 | |
|                 - :exc:`~.commands.PrivateMessageOnly`
 | |
|                 - :exc:`~.commands.NoPrivateMessage`
 | |
|                 - :exc:`~.commands.NotOwner`
 | |
|                 - :exc:`~.commands.MissingPermissions`
 | |
|                 - :exc:`~.commands.BotMissingPermissions`
 | |
|                 - :exc:`~.commands.MissingRole`
 | |
|                 - :exc:`~.commands.BotMissingRole`
 | |
|                 - :exc:`~.commands.MissingAnyRole`
 | |
|                 - :exc:`~.commands.BotMissingAnyRole`
 | |
|                 - :exc:`~.commands.NSFWChannelRequired`
 | |
|             - :exc:`~.commands.DisabledCommand`
 | |
|             - :exc:`~.commands.CommandInvokeError`
 | |
|             - :exc:`~.commands.CommandOnCooldown`
 | |
|             - :exc:`~.commands.MaxConcurrencyReached`
 | |
|         - :exc:`~.commands.ExtensionError`
 | |
|             - :exc:`~.commands.ExtensionAlreadyLoaded`
 | |
|             - :exc:`~.commands.ExtensionNotLoaded`
 | |
|             - :exc:`~.commands.NoEntryPointError`
 | |
|             - :exc:`~.commands.ExtensionFailed`
 | |
|             - :exc:`~.commands.ExtensionNotFound`
 | |
|     - :exc:`~.ClientException`
 | |
|         - :exc:`~.commands.CommandRegistrationError`
 |