package com.lifeknight.relaymcbungeemain.commands.game; import com.lifeknight.relaymcbungeemain.player.SmartPlayer; import com.lifeknight.relaymcbungeemain.queue.Queue; import com.lifeknight.relayutils.basic.Miscellaneous; import com.lifeknight.relayutils.basic.Text; import com.lifeknight.relayutils.game.GameType; 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.Collections; import java.util.List; public class DuelAcceptCommand extends Command implements TabExecutor { public DuelAcceptCommand() { super("duelaccept", null); } private static final List<String> COMMANDS = Collections.singletonList("accept"); @Override public void execute(CommandSender sender, String[] arguments) { if (!(sender instanceof ProxiedPlayer)) return; SmartPlayer smartPlayer = SmartPlayer.getSmartPlayer((ProxiedPlayer) sender); if (arguments.length == 0) { smartPlayer.sendInfoMessage("/duelaccept [player]"); //tellPlayerGameModes(smartPlayer); return; } SmartPlayer toAccept = SmartPlayer.getSmartPlayerOrNick(arguments[0]); if (toAccept == null) { smartPlayer.noPlayerFound(arguments[0]); } else { smartPlayer.tryAcceptDuelRequest(toAccept); } /*if (arguments.length < 2) { if (COMMANDS.indexOf(arguments[0].toLowerCase()) == 0) { smartPlayer.sendUsageMessage("/duel accept [player]"); } else { smartPlayer.sendUsageMessage("/duel [player] [gamemode]"); } } else { if (COMMANDS.indexOf(arguments[0].toLowerCase()) == 0) { SmartPlayer toAccept = SmartPlayer.getSmartPlayerOrNick(arguments[1]); if (toAccept == null) { smartPlayer.noPlayerFound(arguments[1]); } else { smartPlayer.tryAcceptDuelRequest(toAccept); } return; } SmartPlayer toDuel = SmartPlayer.getSmartPlayerOrNick(arguments[0]); if (toDuel == null) { if (SmartPlayer.isNickname(arguments[0])) { smartPlayer.sendErrorMessage("You cannot invite that player to a duel!"); } else { smartPlayer.noPlayerFound(arguments[0]); } } else if (!toDuel.isOnline()) { smartPlayer.sendErrorMessage("That player is not online!"); } else if (toDuel == smartPlayer) { smartPlayer.sendErrorMessage("You cannot duel yourself!"); } else { // deprecated bro } }*/ } public static void doDuel(SmartPlayer caller, SmartPlayer otherPlayer, GameType gameType) { Queue.QUEUES.get(gameType.getMainGame()).duelPlayers(gameType, caller, otherPlayer); } private static void tellPlayerGameModes(SmartPlayer smartPlayer) { // smartPlayer.sendInfoMessage("Gamemodes: %s%s", ChatColor.GREEN, Text.separateWithCommas(GAME_MODES)); } @Override public Iterable<String> onTabComplete(CommandSender sender, String[] arguments) { if (!(sender instanceof ProxiedPlayer)) return new ArrayList<>(); SmartPlayer smartPlayer = SmartPlayer.getSmartPlayer((ProxiedPlayer) sender); if (arguments.length == 1) { return Text.returnStartingEntries(Miscellaneous.with(COMMANDS, smartPlayer.getNamesOfPlayersOnServer()), arguments[0], true); } else if (arguments.length == 2) { // return Text.returnStartingEntries(GAME_MODES, arguments[1], true); } return new ArrayList<>(); } }