mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-20 16:00:29 +00:00
[commands] Fix keyword-only case to actually do conversion.
This commit is contained in:
parent
b335e9ea30
commit
c29f0ea544
@ -186,19 +186,22 @@ class Command:
|
||||
except:
|
||||
raise BadArgument('Invite is invalid')
|
||||
|
||||
def transform(self, ctx, param):
|
||||
required = param.default is param.empty
|
||||
def _get_converter(self, param):
|
||||
converter = param.annotation
|
||||
view = ctx.view
|
||||
|
||||
if converter is param.empty:
|
||||
if not required:
|
||||
if param.default is not param.empty:
|
||||
converter = str if param.default is None else type(param.default)
|
||||
else:
|
||||
converter = str
|
||||
elif not inspect.isclass(type(converter)):
|
||||
raise discord.ClientException('Function annotation must be a type')
|
||||
|
||||
return converter
|
||||
|
||||
def transform(self, ctx, param):
|
||||
required = param.default is param.empty
|
||||
converter = self._get_converter(param)
|
||||
view = ctx.view
|
||||
view.skip_ws()
|
||||
|
||||
if view.eof:
|
||||
@ -265,7 +268,9 @@ class Command:
|
||||
args.append(self.transform(ctx, param))
|
||||
elif param.kind == param.KEYWORD_ONLY:
|
||||
# kwarg only param denotes "consume rest" semantics
|
||||
kwargs[name] = view.read_rest()
|
||||
converter = self._get_converter(param)
|
||||
argument = view.read_rest()
|
||||
kwargs[name] = self.do_conversion(ctx.bot, ctx.message, converter, argument)
|
||||
break
|
||||
elif param.kind == param.VAR_POSITIONAL:
|
||||
while not view.eof:
|
||||
|
Loading…
x
Reference in New Issue
Block a user