diff --git a/Implementation/src/ChatApp.class b/Implementation/src/ChatApp.class index 2e60ad0..2dda9db 100644 Binary files a/Implementation/src/ChatApp.class and b/Implementation/src/ChatApp.class differ diff --git a/Implementation/src/ChatApp.java b/Implementation/src/ChatApp.java index a597b76..81239e8 100644 --- a/Implementation/src/ChatApp.java +++ b/Implementation/src/ChatApp.java @@ -46,6 +46,31 @@ public class ChatApp { public void addList(Utilisateur u) { this.actifUsers.add(u); } + + /** + * Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur + * + * @param u on va supprimer cet utilisateur dans la liste + */ + public void supprimerList(Utilisateur u) { + this.actifUsers.remove(u); + } + + /** + * Verifie qu'aucun autre utilisateur ne possède le même pseudo + * + * @param u on va supprimer cet utilisateur dans la liste + */ + public Boolean verifierUnicite(String pseudo) { + for(Utilisateur elem: this.actifUsers) + { + if (pseudo.equals( elem.getPseudo() ) ) { + return false ; + } + } + return true; + } + public void afficherListeUtilisateurs() { System.out.println ("Liste des utilisateurs actifs : "); for(Utilisateur elem: this.actifUsers) @@ -59,7 +84,7 @@ public class ChatApp { // @ de broadcast du réseau de l'utilisateur me InetAddress broadcastAdress = InetAddress.getLoopbackAddress(); // A MODIFIER // Message que l'on envoie à tous les utilisateurs actifs - String broadcastMessage = this.me.toString() ; + String broadcastMessage = "Connexion\n" + this.me.toString() ; Integer port = 1234 ; UDPEchange.connexion(broadcastAdress,broadcastMessage, port); } diff --git a/Implementation/src/Runner.class b/Implementation/src/Runner.class index 8933e5d..7f2cbdd 100644 Binary files a/Implementation/src/Runner.class and b/Implementation/src/Runner.class differ diff --git a/Implementation/src/RunnerUDP.class b/Implementation/src/RunnerUDP.class index 1650904..c461688 100644 Binary files a/Implementation/src/RunnerUDP.class and b/Implementation/src/RunnerUDP.class differ diff --git a/Implementation/src/UDPEchange.class b/Implementation/src/UDPEchange.class index 4366d90..72b05d2 100644 Binary files a/Implementation/src/UDPEchange.class and b/Implementation/src/UDPEchange.class differ diff --git a/Implementation/src/UDPEchange.java b/Implementation/src/UDPEchange.java index f176f9d..4dbf208 100644 --- a/Implementation/src/UDPEchange.java +++ b/Implementation/src/UDPEchange.java @@ -95,7 +95,20 @@ class RunnerUDP implements Runnable { System.out.println("Thread started"); String received = new String(data.getData(), 0, data.getLength()); System.out.println(received); - app.addList(Utilisateur.stringToUtilisateur(received)); - app.afficherListeUtilisateurs(); + String Type = received.split("\n")[0]; + if (Type.equals("Connexion")) { // un utilisateur vient d'arriver sur le reseau + app.addList(Utilisateur.stringToUtilisateur(received.split("\n")[1])); + app.afficherListeUtilisateurs(); + } + if (Type.equals("Reponse Connexion")) { // Un utilisateur te repond suite à ta demande de connexion + app.afficherListeUtilisateurs(); + } + if (Type.equals("Modification Pseudo")) { + app.afficherListeUtilisateurs(); + } + if (Type.equals("Deconnexion")) { + app.supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1])); + app.afficherListeUtilisateurs(); + } } }