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.chesscraft.exceptions.ChessException; import me.desht.dhutils.MiscUtil; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import java.util.List; public class RedrawCommand extends ChessAbstractCommand { public RedrawCommand() { super("chess redraw", 0, 1); setPermissionNode("chesscraft.commands.redraw"); setUsage("/chess redraw [<board-name>]"); setOptions("all"); } @Override public boolean execute(Plugin plugin, CommandSender sender, String[] args) throws ChessException { if (args.length >= 1) { // redraw named board BoardView bv = BoardViewManager.getManager().getBoardView(args[0]); repaintBoard(bv); MiscUtil.statusMessage(sender, Messages.getString("ChessCommandExecutor.boardRedrawn", bv.getName())); //$NON-NLS-1$ } else if (getBooleanOption("all")) { // redraw ALL boards for (BoardView bv : BoardViewManager.getManager().listBoardViews()) { repaintBoard(bv); } MiscUtil.statusMessage(sender, Messages.getString("ChessCommandExecutor.allBoardsRedrawn")); //$NON-NLS-1$ } else { // redraw board caller is standing on, if any notFromConsole(sender); Player player = (Player) sender; BoardView bv = BoardViewManager.getManager().partOfChessBoard(player.getLocation()); if (bv == null) { throw new ChessException(Messages.getString("Designer.notOnBoard")); } repaintBoard(bv); MiscUtil.statusMessage(sender, Messages.getString("ChessCommandExecutor.boardRedrawn", bv.getName())); //$NON-NLS-1$ } return true; } private void repaintBoard(BoardView bv) { bv.reloadStyle(); bv.paintAll(); } @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); } } }