package me.unurled.raxen.commands.admin; import java.util.ArrayList; import java.util.List; import me.unurled.raxen.Raxen; import me.unurled.raxen.utils.Utils; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class BuildCommand implements TabExecutor { private Raxen raxen; List complete = new ArrayList<>(); public BuildCommand(Raxen raxen) { this.raxen = raxen; } @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (!(sender instanceof Player)) { Utils.errorConsoleSender(sender); return true; } Player p = (Player) sender; if (args.length == 0) { p.sendMessage(Utils.colorComp( "/build [discard|edit|hide|list|on|remove|save|show|tp]")); return true; } if (args.length == 1) { switch (args[0]) { case "discard": p.sendMessage(Utils.colorComp("Discarded build!")); return true; case "edit": p.sendMessage(Utils.colorComp("Editing build!")); return true; case "hide": p.sendMessage(Utils.colorComp("Hiding build!")); return true; case "list": p.sendMessage(Utils.colorComp("Listing builds!")); return true; case "on": p.sendMessage(Utils.colorComp("Build mode enabled!")); return true; case "remove": p.sendMessage(Utils.colorComp("Removed build!")); return true; case "save": p.sendMessage(Utils.colorComp("Saved build!")); return true; case "show": p.sendMessage(Utils.colorComp("Showing build!")); return true; case "tp": p.sendMessage(Utils.colorComp("Teleporting to build!")); return true; default: p.sendMessage(Utils.colorComp( "/build [discard|edit|hide|list|on|remove|save|show|tp]")); return true; } } return false; } @Override public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (complete.isEmpty()) { complete.add("discard"); complete.add("edit"); complete.add("hide"); complete.add("list"); complete.add("on"); complete.add("remove"); complete.add("save"); complete.add("show"); complete.add("tp"); } List result = new ArrayList<>(); if (args.length == 1) { for (String s : complete) { if (s.toLowerCase().startsWith(args[0].toLowerCase())) { result.add(s); } } return result; } else if (args.length == 2) { for (Player p : Bukkit.getOnlinePlayers()) { if (p.getName().toLowerCase().startsWith(args[1].toLowerCase())) { result.add(p.getName()); } } return result; } return null; } }