aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/ext/commands/core.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py
index bb630d3b..07a5d39e 100644
--- a/discord/ext/commands/core.py
+++ b/discord/ext/commands/core.py
@@ -444,14 +444,13 @@ class Command(_BaseCommand):
try:
if inspect.isclass(converter):
- if inspect.ismethod(getattr(converter, 'convert', None)):
- if converter.convert.__self__ is converter:
- # class method
- func = converter.convert
- else:
- # instance method
- func = converter().convert
- return await func.convert(ctx, argument)
+ if issubclass(converter, converters.Converter):
+ instance = converter()
+ return await instance.convert(ctx, argument)
+ else:
+ method = getattr(converter, 'convert', None)
+ if method is not None and inspect.ismethod(method):
+ return await method(ctx, argument)
elif isinstance(converter, converters.Converter):
return await converter.convert(ctx, argument)
except CommandError: