Skip to content

Commit f63fd9e

Browse files
committed
Add option to configure default CaseInsensitive in EnumArgumentResolver
1 parent 457b079 commit f63fd9e

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

litecommands-core/src/dev/rollczi/litecommands/argument/resolver/standard/EnumArgumentResolver.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,20 @@ public class EnumArgumentResolver<SENDER> extends ArgumentResolver<SENDER, Enum>
1919
public static final MetaKey<Boolean> CASE_INSENSITIVE = MetaKey.of("enum-case-insensitive", Boolean.class, false);
2020

2121
private final Map<Class<Enum>, SuggestionResult> cachedEnumSuggestions = new ConcurrentHashMap<>();
22+
private final boolean defaultCaseInsensitive;
23+
24+
public EnumArgumentResolver() {
25+
this(false);
26+
}
27+
28+
public EnumArgumentResolver(boolean defaultCaseInsensitive) {
29+
this.defaultCaseInsensitive = defaultCaseInsensitive;
30+
}
2231

2332
@Override
2433
protected ParseResult<Enum> parse(Invocation<SENDER> invocation, Argument<Enum> context, String argument) {
2534
Class<Enum> enumClass = context.getType().getRawType();
26-
boolean caseInsensitive = Boolean.TRUE.equals(context.metaCollector().findFirst(CASE_INSENSITIVE));
35+
boolean caseInsensitive = Boolean.TRUE.equals(context.metaCollector().findFirst(CASE_INSENSITIVE, defaultCaseInsensitive));
2736

2837
if (caseInsensitive) {
2938
return Arrays.stream(enumClass.getEnumConstants())

0 commit comments

Comments
 (0)