package me.desht.chesscraft.commands;
import chesspresso.Chess;
import me.desht.chesscraft.Messages;
import me.desht.chesscraft.chess.ChessGame;
import me.desht.chesscraft.chess.ChessGameManager;
import me.desht.chesscraft.controlpanel.PromoteBlackButton;
import me.desht.chesscraft.controlpanel.PromoteWhiteButton;
import me.desht.chesscraft.exceptions.ChessException;
import me.desht.chesscraft.util.ChessUtils;
import me.desht.dhutils.MiscUtil;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import java.util.Arrays;
import java.util.List;
public class PromoteCommand extends ChessAbstractCommand {
public PromoteCommand() {
super("chess promote", 1, 1);
setPermissionNode("chesscraft.commands.promote");
setUsage("/chess promote <Q|R|B|N>");
}
@Override
public boolean execute(Plugin plugin, CommandSender sender, String[] args) throws ChessException {
notFromConsole(sender);
Player player = (Player) sender;
int piece = Chess.charToPiece(Character.toUpperCase(args[0].charAt(0)));
ChessGame game = ChessGameManager.getManager().getCurrentGame(player, true);
int colour = game.getPlayerColour(player.getUniqueId().toString());
if (colour != Chess.NOBODY) {
game.getPlayer(colour).setPromotionPiece(piece);
MiscUtil.statusMessage(sender, Messages.getString("ChessCommandExecutor.promotionPieceSet",
game.getName(),ChessUtils.pieceToStr(piece).toUpperCase()));
// game.getView().getControlPanel().getSignButton(colour == Chess.WHITE ? PromoteWhiteButton.class : PromoteBlackButton.class).repaint();
}
return true;
}
@Override
public List<String> onTabComplete(Plugin plugin, CommandSender sender, String[] args) {
if (args.length == 1) {
return filterPrefix(sender, Arrays.asList("Q", "R", "B", "N"), args[0]);
} else {
showUsage(sender);
return noCompletions(sender);
}
}
}