package com.lifeknight.relaymcbungeemain.commands.amenities; import com.lifeknight.relaymcbungeemain.player.SmartPlayer; import com.lifeknight.relayutils.basic.Text; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Command; import net.md_5.bungee.api.plugin.TabExecutor; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class BlockCommand extends Command implements TabExecutor { public BlockCommand() { super("block", null); } private final static List COMMANDS = Arrays.asList( "add", "remove", "list"); @Override public void execute(CommandSender sender, String[] arguments) { if (!(sender instanceof ProxiedPlayer)) return; SmartPlayer blocker = SmartPlayer.getSmartPlayer((ProxiedPlayer) sender); if (arguments.length == 0) { blocker.sendCommandsMessage(COMMANDS); } else { switch (COMMANDS.indexOf(arguments[0].toLowerCase())) { case 0: if (arguments.length > 1) { blocker.blockPlayer(arguments[1]); } else { blocker.sendUsageMessage("/block add [player]"); } break; case 1: if (arguments.length > 1) { blocker.unblockPlayer(arguments[1]); } else { blocker.sendUsageMessage("/block remove [player]"); } break; case 2: if (arguments.length > 1) { try { int page = Integer.parseInt(arguments[1]); blocker.listBlockedPlayers(page); } catch (Exception exception) { blocker.sendUsageMessage("/block list [page]"); } } else { blocker.listBlockedPlayers(1); } break; default: blocker.blockPlayer(arguments[0]); break; } } } @Override public Iterable onTabComplete(CommandSender sender, String[] args) { if (args.length >= 2) return new ArrayList<>(); return Text.returnStartingEntries(COMMANDS, args.length > 0 ? args[0] : null, true); } }