diff --git a/SpigotCore_Main/src/de/steamwar/command/Argument.java b/SpigotCore_Main/src/de/steamwar/command/Argument.java index f387430..9d1676f 100644 --- a/SpigotCore_Main/src/de/steamwar/command/Argument.java +++ b/SpigotCore_Main/src/de/steamwar/command/Argument.java @@ -47,8 +47,6 @@ public class Argument { public static final Argument BOOLEAN = new Argument<>(Boolean::parseBoolean, bool -> true, "true", "false"); public static final Argument INT = new Argument<>(Integer::parseInt, integer -> true); - public static final Argument LONG = new Argument<>(Long::parseLong, l -> true); - public static final Argument FLOAT = new Argument<>(Float::parseFloat, f -> true); public static final Argument DOUBLE = new Argument<>(Double::parseDouble, d -> true); public static final Argument STRING = new Argument<>(s -> s, string -> true); diff --git a/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java b/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java index 16738c1..92b4aa6 100644 --- a/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java +++ b/SpigotCore_Main/src/de/steamwar/command/ArgumentUtils.java @@ -21,6 +21,7 @@ package de.steamwar.command; import java.util.Arrays; +import java.util.Objects; import java.util.function.BiPredicate; import java.util.function.Predicate; import java.util.stream.Stream; @@ -51,6 +52,17 @@ public class ArgumentUtils { return new Argument<>(s -> s, string -> contains(commands, string, String::equals), s -> supply(s, tabCompletes, commands)); } + public static > Argument enumValue(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 ofIgnoreCase(String... arguments) { return new Argument<>(s -> s, string -> contains(arguments, string, String::equals), arguments); }