aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/ext/commands/core.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py
index ec2e7deb..57c97daa 100644
--- a/discord/ext/commands/core.py
+++ b/discord/ext/commands/core.py
@@ -444,13 +444,16 @@ class Command(_BaseCommand):
try:
if inspect.isclass(converter):
- if issubclass(converter, converters.Converter):
- instance = converter()
- ret = await instance.convert(ctx, argument)
- return ret
+ if inspect.ismethod(converter.convert):
+ if converter.convert.__self__ is converter:
+ # class method
+ func = converter.convert
+ else:
+ # instance method
+ func = converter().convert
+ return await func.convert(ctx, argument)
elif isinstance(converter, converters.Converter):
- ret = await converter.convert(ctx, argument)
- return ret
+ return await converter.convert(ctx, argument)
except CommandError:
raise
except Exception as exc: