package me.desht.chesscraft.commands; import me.desht.chesscraft.Messages; import me.desht.chesscraft.chess.BoardView; import me.desht.chesscraft.chess.BoardViewManager; import me.desht.dhutils.MessagePager; import me.desht.dhutils.MiscUtil; import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import java.util.List; public class ListBoardCommand extends ChessAbstractCommand { public ListBoardCommand() { super("chess list board", 0, 1); setPermissionNode("chesscraft.commands.list.board"); setUsage("/chess list board"); } @Override public boolean execute(Plugin plugin, CommandSender sender, String[] args) { if (BoardViewManager.getManager().listBoardViews().isEmpty()) { MiscUtil.statusMessage(sender, Messages.getString("ChessCommandExecutor.noBoards")); //$NON-NLS-1$ return true; } MessagePager pager = MessagePager.getPager(sender).clear().setParseColours(true); if (args.length >= 1) { List<String> l = BoardViewManager.getManager().getBoardView(args[0]).getBoardDetail(); pager.add(l); } else { for (BoardView bv : BoardViewManager.getManager().listBoardViewsSorted()) { String gameName = bv.getGame() != null ? bv.getGame().getName() : Messages.getString("ChessCommandExecutor.noGame"); //$NON-NLS-1$ pager.add(MessagePager.BULLET + Messages.getString("ChessCommandExecutor.boardList", bv.getName(), MiscUtil.formatLocation(bv.getA1Square()), //$NON-NLS-1$ bv.getBoardStyleName(), gameName)); } } pager.showPage(); return true; } @Override public List<String> onTabComplete(Plugin plugin, CommandSender sender, String[] args) { if (args.length == 1) { return getBoardCompletions(plugin, sender, args[0]); } else { showUsage(sender); return noCompletions(sender); } } }