mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-21 16:24:14 +00:00
[commands] Allow inline advanced converters via classmethods.
That way you don't need to have, e.g. Foo and FooConverter and can do it inline via Foo instead.
This commit is contained in:
parent
d85e479be6
commit
5e6491c3fe
@ -204,10 +204,16 @@ class Command:
|
||||
if converter.__module__.startswith('discord.') and not converter.__module__.endswith('converter'):
|
||||
converter = getattr(converters, converter.__name__ + 'Converter')
|
||||
|
||||
if inspect.isclass(converter) and issubclass(converter, converters.Converter):
|
||||
instance = converter()
|
||||
ret = yield from instance.convert(ctx, argument)
|
||||
return ret
|
||||
if inspect.isclass(converter):
|
||||
if issubclass(converter, converters.Converter):
|
||||
instance = converter()
|
||||
ret = yield from instance.convert(ctx, argument)
|
||||
return ret
|
||||
else:
|
||||
method = getattr(converter, 'convert', None)
|
||||
if method is not None and inspect.ismethod(method):
|
||||
ret = yield from method(ctx, argument)
|
||||
return ret
|
||||
elif isinstance(converter, converters.Converter):
|
||||
ret = yield from converter.convert(ctx, argument)
|
||||
return ret
|
||||
|
Loading…
x
Reference in New Issue
Block a user