From 28f1802a35a35139bf584abe8765c0edf19151a3 Mon Sep 17 00:00:00 2001 From: jojo Date: Wed, 30 Dec 2020 22:17:38 +0100 Subject: [PATCH] Simplify ArgumentUtils.ofEnum --- .../src/de/steamwar/command/ArgumentUtils.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) 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); } }