SteamWar/SpigotCore
Archiviert
13
0

Simplify ArgumentUtils.ofEnum

Dieser Commit ist enthalten in:
jojo 2020-12-30 22:17:38 +01:00
Ursprung 215db51837
Commit 28f1802a35

Datei anzeigen

@ -71,13 +71,9 @@ public class ArgumentUtils {
return new Argument<>(Double::parseDouble, predicate, tabCompletes(Arrays.stream(tabValues).boxed(), predicate)); return new Argument<>(Double::parseDouble, predicate, tabCompletes(Arrays.stream(tabValues).boxed(), predicate));
} }
public static <T extends Enum<?>> Argument<T> ofEnum(Class<T> enumClass) { public static <T extends Enum<T>> Argument<T> ofEnum(Class<T> enumClass) {
T[] enumValues = enumClass.getEnumConstants(); String[] strings = Arrays.stream(enumClass.getEnumConstants()).map(Enum::name).toArray(String[]::new);
String[] strings = Arrays.stream(enumValues).map(Enum::name).toArray(String[]::new); return new Argument<>((s, sender) -> Enum.valueOf(enumClass, s), Objects::nonNull, s -> strings);
return new Argument<>((s, sender) -> {
for (T enumValue : enumValues) if (enumValue.name().startsWith(s)) return enumValue;
return null;
}, Objects::nonNull, s -> strings);
} }
} }