From 9ab58d302dd2fdd3706faf5dddb9629427df9037 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Mon, 5 Apr 2021 23:52:28 -0400 Subject: [PATCH] [commands] Fix classmethod converters not working. Protocols sure are annoying. --- discord/ext/commands/core.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index 07a5d39ef..cc48a2ceb 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -443,14 +443,11 @@ class Command(_BaseCommand): converter = getattr(converters, converter.__name__ + 'Converter', converter) try: - if inspect.isclass(converter): - if issubclass(converter, converters.Converter): - instance = converter() - return await instance.convert(ctx, argument) + if inspect.isclass(converter) and issubclass(converter, converters.Converter): + if inspect.ismethod(converter.convert): + return await converter.convert(ctx, argument) else: - method = getattr(converter, 'convert', None) - if method is not None and inspect.ismethod(method): - return await method(ctx, argument) + return await converter().convert(ctx, argument) elif isinstance(converter, converters.Converter): return await converter.convert(ctx, argument) except CommandError: