Browse Source

[commands] Add Context.current_parameter

pull/6758/head
Rapptz 4 years ago
parent
commit
09f3f2111c
  1. 6
      discord/ext/commands/context.py
  2. 1
      discord/ext/commands/core.py

6
discord/ext/commands/context.py

@ -53,6 +53,11 @@ class Context(discord.abc.Messageable):
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.
current_parameter: Optional[:class:`inspect.Parameter`]
The parameter that is currently being inspected and converted.
This is only of use for within converters.
.. versionadded:: 2.0
prefix: :class:`str`
The prefix that was used to invoke the command.
command: :class:`Command`
@ -94,6 +99,7 @@ class Context(discord.abc.Messageable):
self.invoked_subcommand = attrs.pop('invoked_subcommand', None)
self.subcommand_passed = attrs.pop('subcommand_passed', None)
self.command_failed = attrs.pop('command_failed', False)
self.current_parameter = attrs.pop('current_parameter', None)
self._state = self.message._state
async def invoke(self, command, /, *args, **kwargs):

1
discord/ext/commands/core.py

@ -819,6 +819,7 @@ class Command(_BaseCommand):
raise discord.ClientException(f'Callback for {self.name} command is missing "ctx" parameter.')
for name, param in iterator:
ctx.current_parameter = param
if param.kind in (param.POSITIONAL_OR_KEYWORD, param.POSITIONAL_ONLY):
transformed = await self.transform(ctx, param)
args.append(transformed)

Loading…
Cancel
Save