/** * Deregistra un player dal server, rendendo nuovamente disponibile il nickname ad altri player. * * @param nickname nome del player da deregistrare */ public void deregisterPlayer(String nickname) { try { server.deregister(nickname); } catch (RemoteException e) { System.out.println("Impossible to logout." + e.getMessage()); } }
/** * Consente a un player di creare una nuova partita. * * @param idGame id della partita da creare. * @throws MalformedURLException * @throws RemoteException * @throws NotBoundException */ public void createGame(String idGame) throws MalformedURLException, RemoteException, NotBoundException { idGameCreated = idGame; creator = true; server.createGame(p, idGame); }
/** * Rimuove una partita precedentemente creata da un player. * * @return lista delle partite aggiornata dopo la rimozione * @throws MalformedURLException * @throws RemoteException * @throws NotBoundException */ public ArrayList<String> removeGame() throws MalformedURLException, RemoteException, NotBoundException { if (creator) return (ArrayList<String>) server.removeGame(idGameCreated); else return (ArrayList<String>) server.removeGame(idGameJoined); }
/** * Riceve la lista delle partite create che sono in attesa di uno sfidante. * * @return lista delle partite * @throws MalformedURLException * @throws RemoteException * @throws NotBoundException */ public ArrayList<String> receiveList() throws MalformedURLException, RemoteException, NotBoundException { return (ArrayList<String>) server.getAllChallengers(); }
/** * Consente a un player di registrarsi presso il server. Il nickname deve essere univoco nel * sistema fino alla deregistrazione del player. * * @param nickname nome con cui registrarsi. * @return true se la registrazione e' andata a buon fine, false altrimenti * @throws RemoteException */ public boolean registerPlayer(String nickname) throws RemoteException { p = new PlayerImpl(); p.setName(nickname); p.add(this); // mi aggiungo come osservatore di p return server.register(p, nickname); }
/** * Consente a un player di aggiungersi a una partita creata precedentemente da un altro player. * * @param idGame id della partita in cui aggiungersi. * @throws MalformedURLException * @throws RemoteException * @throws NotBoundException * @throws GameJoiningException se la partita non e' piu' disponibile perche' e' stata cancellata * oppure e' gia' completa */ public void joinGame(String idGame) throws MalformedURLException, RemoteException, NotBoundException, GameJoiningException { idGameJoined = idGame; creator = false; server.joinGame(p, idGame); }