diff --git a/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java b/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java index e1e51b6..5ed9cfb 100644 --- a/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java +++ b/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java @@ -71,13 +71,9 @@ public class ArgumentUtils { return new Argument<>(Double::parseDouble, predicate, tabCompletes(Arrays.stream(tabValues).boxed(), predicate)); } - public static > Argument ofEnum(Class enumClass) { - T[] enumValues = enumClass.getEnumConstants(); - String[] strings = Arrays.stream(enumValues).map(Enum::name).toArray(String[]::new); - return new Argument<>((s, sender) -> { - for (T enumValue : enumValues) if (enumValue.name().startsWith(s)) return enumValue; - return null; - }, Objects::nonNull, s -> strings); + public static > Argument ofEnum(Class enumClass) { + String[] strings = Arrays.stream(enumClass.getEnumConstants()).map(Enum::name).toArray(String[]::new); + return new Argument<>((s, sender) -> Enum.valueOf(enumClass, s), Objects::nonNull, s -> strings); } }