aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-01-27 17:14:22 -0500
committerRapptz <[email protected]>2017-01-27 17:14:22 -0500
commit8fa50a8f3ee732902e57e154fa6400c8dd0bf64d (patch)
tree6e8cff742216290cfecca81bc7a44129d5a0e5b6
parentAdd ClientUser.friends and ClientUser.blocked (diff)
downloaddiscord.py-8fa50a8f3ee732902e57e154fa6400c8dd0bf64d.tar.xz
discord.py-8fa50a8f3ee732902e57e154fa6400c8dd0bf64d.zip
[commands] Add Context.command_failed attribute.
-rw-r--r--discord/ext/commands/bot.py1
-rw-r--r--discord/ext/commands/context.py18
2 files changed, 12 insertions, 7 deletions
diff --git a/discord/ext/commands/bot.py b/discord/ext/commands/bot.py
index bbf0d995..1913a319 100644
--- a/discord/ext/commands/bot.py
+++ b/discord/ext/commands/bot.py
@@ -627,6 +627,7 @@ class BotBase(GroupMixin):
except CommandError as e:
yield from ctx.command.dispatch_error(e, ctx)
else:
+ ctx.command_failed = False
self.dispatch('command_completion', ctx)
elif ctx.invoked_with:
exc = CommandNotFound('Command "{}" is not found'.format(ctx.invoked_with))
diff --git a/discord/ext/commands/context.py b/discord/ext/commands/context.py
index f28b9ffa..f3b7bba2 100644
--- a/discord/ext/commands/context.py
+++ b/discord/ext/commands/context.py
@@ -38,35 +38,38 @@ class Context(discord.abc.Messageable):
Attributes
-----------
- message : :class:`discord.Message`
+ message: :class:`discord.Message`
The message that triggered the command being executed.
- bot : :class:`Bot`
+ bot: :class:`Bot`
The bot that contains the command being executed.
- args : list
+ args: list
The list of transformed arguments that were passed into the command.
If this is accessed during the :func:`on_command_error` event
then this list could be incomplete.
- kwargs : dict
+ kwargs: dict
A dictionary of transformed arguments that were passed into the command.
Similar to :attr:`args`\, if this is accessed in the
:func:`on_command_error` event then this dict could be incomplete.
- prefix : str
+ prefix: str
The prefix that was used to invoke the command.
command
The command (i.e. :class:`Command` or its superclasses) that is being
invoked currently.
- invoked_with : str
+ invoked_with: str
The command name that triggered this invocation. Useful for finding out
which alias called the command.
invoked_subcommand
The subcommand (i.e. :class:`Command` or its superclasses) that was
invoked. If no valid subcommand was invoked then this is equal to
`None`.
- subcommand_passed : Optional[str]
+ subcommand_passed: Optional[str]
The string that was attempted to call a subcommand. This does not have
to point to a valid registered subcommand and could just point to a
nonsense string. If nothing was passed to attempt a call to a
subcommand then this is set to `None`.
+ command_failed: bool
+ A boolean that indicates if the command failed to be parsed, checked,
+ or invoked.
"""
def __init__(self, **attrs):
@@ -80,6 +83,7 @@ class Context(discord.abc.Messageable):
self.invoked_with = attrs.pop('invoked_with', None)
self.invoked_subcommand = attrs.pop('invoked_subcommand', None)
self.subcommand_passed = attrs.pop('subcommand_passed', None)
+ self.command_failed = attrs.pop('command_failed', True)
self._state = self.message._state
@asyncio.coroutine