package me.desht.chesscraft.commands; import me.desht.chesscraft.Messages; import me.desht.chesscraft.chess.BoardStyle; 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 BoardStyleSaveCommand extends ChessAbstractCommand { public BoardStyleSaveCommand() { super("chess board save", 0, 1); setPermissionNode("chesscraft.commands.board.save"); setUsage("/chess board save [<new-style-name>]"); } @Override public boolean execute(Plugin plugin, CommandSender sender, String[] args) throws ChessException { notFromConsole(sender); BoardView bv = BoardViewManager.getManager().partOfChessBoard(((Player)sender).getLocation()); if (bv == null) { throw new ChessException(Messages.getString("Designer.notOnBoard")); } BoardStyle style = bv.getChessBoard().getBoardStyle(); String newStyleName = args.length > 0 ? args[0] : style.getName(); BoardStyle newStyle = style.saveStyle(newStyleName); bv.getChessBoard().setBoardStyle(newStyle, false); bv.save(); MiscUtil.statusMessage(sender, Messages.getString("ChessCommandExecutor.boardStyleSaved", bv.getName(), newStyleName)); return true; } @Override public List<String> onTabComplete(Plugin plugin, CommandSender sender, String[] args) { showUsage(sender); return noCompletions(sender); } }