From 8e9860077d5238f16d98b1537b68fa5ee8071000 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Thu, 22 Apr 2021 07:54:37 -0400 Subject: [PATCH] [commands] Fix flag detection code in get_flags --- discord/ext/commands/flags.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/discord/ext/commands/flags.py b/discord/ext/commands/flags.py index abffbbcdc..14ebb774d 100644 --- a/discord/ext/commands/flags.py +++ b/discord/ext/commands/flags.py @@ -184,7 +184,7 @@ def get_flags(namespace: Dict[str, Any], globals: Dict[str, Any], locals: Dict[s annotation = flag.annotation = resolve_annotation(flag.annotation, globals, locals, cache) - if flag.default is MISSING and issubclass(annotation, FlagConverter) and annotation._can_be_constructible(): + if flag.default is MISSING and hasattr(annotation, '__commands_is_flag__') and annotation._can_be_constructible(): flag.default = annotation._construct_default if flag.aliases is MISSING: @@ -236,7 +236,7 @@ def get_flags(namespace: Dict[str, Any], globals: Dict[str, Any], locals: Dict[s flag.override = False # Validate flag names are unique - name = flag.name.casefold() if case_insensitive else flag.name + name = flag.name.casefold() if case_insensitive else flag.name if name in names: raise TypeError(f'{flag.name!r} flag conflicts with previous flag or alias.') else: @@ -340,7 +340,7 @@ class FlagsMeta(type): keys = list(re.escape(k) for k in flags) keys.extend(re.escape(a) for a in aliases) keys = sorted(keys, key=lambda t: len(t), reverse=True) - + joined = '|'.join(keys) pattern = re.compile(f'(({re.escape(prefix)})(?P{joined}){re.escape(delimiter)})', regex_flags) attrs['__commands_flag_regex__'] = pattern