diff --git a/SpigotCore_Main/src/de/steamwar/command/Argument.java b/SpigotCore_Main/src/de/steamwar/command/Argument.java index 8d3876e..236fcca 100644 --- a/SpigotCore_Main/src/de/steamwar/command/Argument.java +++ b/SpigotCore_Main/src/de/steamwar/command/Argument.java @@ -58,6 +58,54 @@ public class Argument { return new Argument<>(ArgumentType.STRING, string -> string.equalsIgnoreCase(argument)); } + public static Argument above(int minValue) { + return between(minValue, Integer.MAX_VALUE); + } + + public static Argument below(int maxValue) { + return between(Integer.MIN_VALUE, maxValue); + } + + public static Argument between(int minValue, int maxValue) { + return new Argument<>(ArgumentType.INT, i -> i >= minValue && i <= maxValue); + } + + public static Argument above(long minValue) { + return between(minValue, Long.MAX_VALUE); + } + + public static Argument below(long maxValue) { + return between(Long.MIN_VALUE, maxValue); + } + + public static Argument between(long minValue, long maxValue) { + return new Argument<>(ArgumentType.LONG, l -> l >= minValue && l <= maxValue); + } + + public static Argument above(float minValue) { + return between(minValue, Float.MAX_VALUE); + } + + public static Argument below(float maxValue) { + return between(Float.MIN_VALUE, maxValue); + } + + public static Argument between(float minValue, float maxValue) { + return new Argument<>(ArgumentType.FLOAT, f -> f >= minValue && f <= maxValue); + } + + public static Argument above(double minValue) { + return between(minValue, Double.MAX_VALUE); + } + + public static Argument below(double maxValue) { + return between(Double.MIN_VALUE, maxValue); + } + + public static Argument between(double minValue, double maxValue) { + return new Argument<>(ArgumentType.DOUBLE, d -> d >= minValue && d <= maxValue); + } + public Optional valueSupplier(String s) { try { T argumentMapped = argumentType.mapper.apply(s);