From 52af8a71f51cbcb825751c18e682f20d1800bf02 Mon Sep 17 00:00:00 2001 From: jojo Date: Tue, 29 Dec 2020 13:29:32 +0100 Subject: [PATCH] Add Argument.GAMEMODE Add Argument.MATERIAL --- .../src/de/steamwar/command/Argument.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/SpigotCore_Main/src/de/steamwar/command/Argument.java b/SpigotCore_Main/src/de/steamwar/command/Argument.java index 51403a8..64cdb76 100644 --- a/SpigotCore_Main/src/de/steamwar/command/Argument.java +++ b/SpigotCore_Main/src/de/steamwar/command/Argument.java @@ -21,7 +21,10 @@ package de.steamwar.command; +import com.sk89q.worldedit.extent.world.SurvivalModeExtent; import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Material; import org.bukkit.entity.Player; import java.util.*; @@ -38,8 +41,32 @@ public class Argument { public static final Argument FLOAT = new Argument<>(ArgumentType.FLOAT, f -> true); public static final Argument DOUBLE = new Argument<>(ArgumentType.DOUBLE, d -> true); public static final Argument STRING = new Argument<>(ArgumentType.STRING, string -> true); + public static final Argument PLAYER = new Argument<>(ArgumentType.STRING, string -> Bukkit.getPlayer(string) == null, Bukkit::getPlayer, () -> Bukkit.getOnlinePlayers().stream().map(Player::getName).toArray(String[]::new)); + public static final Argument GAMEMODE = new Argument<>(ArgumentType.STRING, + string -> string.equalsIgnoreCase("creative") || + string.equalsIgnoreCase("c") || + string.equalsIgnoreCase("1") || + string.equalsIgnoreCase("survival") || + string.equalsIgnoreCase("s") || + string.equalsIgnoreCase("0") || + string.equalsIgnoreCase("spectator") || + string.equalsIgnoreCase("sp") || + string.equalsIgnoreCase("3") || + string.equalsIgnoreCase("adventure") || + string.equalsIgnoreCase("a") || + string.equalsIgnoreCase("2"), + s -> { + if (s.equalsIgnoreCase("creative") || s.equalsIgnoreCase("c") || s.equalsIgnoreCase("1")) return GameMode.CREATIVE; + if (s.equalsIgnoreCase("spectator") || s.equalsIgnoreCase("sp") || s.equalsIgnoreCase("3")) return GameMode.SPECTATOR; + if (s.equalsIgnoreCase("adventure") || s.equalsIgnoreCase("a") || s.equalsIgnoreCase("2")) return GameMode.ADVENTURE; + return GameMode.SURVIVAL; + }, () -> new String[]{"creative", "survival", "adventure", "spectator"}); + + private static final String[] materialArray = Arrays.stream(Material.values()).map(Enum::name).toArray(String[]::new); + public static final Argument MATERIAL = new Argument<>(ArgumentType.STRING, string -> Material.valueOf(string) != null, Material::valueOf, () -> materialArray); + private ArgumentType argumentType; private Predicate constraint; private Supplier tabCompletes;