package me.desht.chesscraft.commands; import me.desht.chesscraft.Messages; import me.desht.chesscraft.chess.ChessGame; import me.desht.chesscraft.chess.ChessGameManager; import me.desht.chesscraft.exceptions.ChessException; import me.desht.dhutils.MiscUtil; import me.desht.dhutils.PermissionUtils; import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import java.util.List; public class DeleteGameCommand extends ChessAbstractCommand { public DeleteGameCommand() { super("chess delete game", 1, 1); setUsage("/chess delete game <game-name>"); } @Override public boolean execute(Plugin plugin, CommandSender sender, String[] args) throws ChessException { String gameName = args[0]; ChessGame game = ChessGameManager.getManager().getGame(gameName); gameName = game.getName(); // bypass permission check if player is deleting their own game and it's still in setup phase if (!game.playerCanDelete(sender)) { PermissionUtils.requirePerms(sender, "chesscraft.commands.delete.game"); } game.alert(Messages.getString("ChessCommandExecutor.gameDeletedAlert", sender.getName())); ChessGameManager.getManager().deleteGame(gameName, true); MiscUtil.statusMessage(sender, Messages.getString("ChessCommandExecutor.gameDeleted", gameName)); return true; } @Override public List<String> onTabComplete(Plugin plugin, CommandSender sender, String[] args) { if (args.length == 1) { return getGameCompletions(plugin, sender, args[0]); } else { showUsage(sender); return noCompletions(sender); } } }