BungeeMain / src / main / java / com / lifeknight / relaymcbungeemain / commands / game / ManhuntAcceptCommand.java
ManhuntAcceptCommand.java
Raw
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 ManhuntAcceptCommand extends Command implements TabExecutor {

    public ManhuntAcceptCommand() {
        super("manhuntaccept", 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("/manhuntaccept [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
            }
        }*/
    }

    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<>();
    }
}