/** * Renvoie la console correspondant a la reference RMI donnee. * * @param refRMI reference RMI * @return console correspondante * @throws RemoteException */ protected IConsole consoleFromRef(int refRMI) throws RemoteException { int p = port + refRMI; String ip = null; String adr = null; IConsole console = null; try { ip = personnages.get(refRMI).getAdresseIp(); adr = Constantes.nomRMI(ip, p, "Console" + refRMI); console = (IConsole) Naming.lookup(adr); } catch (MalformedURLException e) { console = null; logger.severe(Constantes.nomClasse(this), "Erreur : acces a " + adr + "\n" + e.toString()); e.printStackTrace(); } catch (NotBoundException e) { console = null; logger.severe(Constantes.nomClasse(this), "Erreur : acces a " + adr + "\n" + e.toString()); e.printStackTrace(); } catch (NullPointerException e) { console = null; } return console; }
@Override public synchronized boolean connecte( int refRMI, String ipConsole, Personnage personnage, int nbTours, Point position) throws RemoteException { // assignation d'un port unique a chaque personnage int portConsole = port + refRMI; String adr = Constantes.nomRMI(ipConsole, portConsole, "Console" + refRMI); boolean res = true; try { logger.info(Constantes.nomClasse(this), "Demande de connexion (" + adr + ")"); // ajout du personnage a la liste personnages.put(refRMI, new VuePersonnage(ipConsole, personnage, nbTours, position, refRMI)); logger.info(Constantes.nomClasse(this), "Connexion acceptee (" + adr + ")"); logElements(); } catch (Exception e) { logger.severe(Constantes.nomClasse(this), "Echec de connexion (" + adr + ")"); e.printStackTrace(); ejectePersonnage(refRMI); res = false; } return res; }
public void lancerPotionTeleportation(int port, String ipArene) { String nom = "Téléportation"; // TODO remplacer la ligne suivante par votre numero de groupe String groupe = "G7"; // creation du logger LoggerProjet logger = null; try { logger = new LoggerProjet(true, "potion_" + nom + groupe); } catch (IOException e) { e.printStackTrace(); System.exit(ErreurLancement.suivant); } // lancement de la potion try { IArene arene = (IArene) java.rmi.Naming.lookup(Constantes.nomRMI(ipArene, port, "Arene")); logger.info("Lanceur", "Lancement de la potion sur le serveur..."); // caracteristiques de la potion HashMap<Caracteristique, Integer> caracts = new HashMap<Caracteristique, Integer>(); caracts.put(Caracteristique.VIE, 0); caracts.put(Caracteristique.FORCE, 0); caracts.put(Caracteristique.INITIATIVE, 0); caracts.put(Caracteristique.ESQUIVE, 0); caracts.put(Caracteristique.DEFENSE, 0); caracts.put(Caracteristique.BOUCLIER, 0); // ajout de la potion arene.ajoutePotion(new Potion(nom, groupe, caracts), Calculs.positionAleatoireArene()); logger.info("Lanceur", "Lancement de la potion reussi"); } catch (Exception e) { logger.severe("Lanceur", "Erreur lancement :\n" + e.getCause()); e.printStackTrace(); System.exit(ErreurLancement.suivant); } }
/** * Construit l'adresse complete de l'arene sous forme de chaine de caracteres. * * @return adresse complete de l'arene */ private String adrToString() { return Constantes.nomRMI(adresseIP, port, "Arene"); }