From 61c366fd92bdc0ec81158bc28076979f346c0922 Mon Sep 17 00:00:00 2001 From: Sebastian Hejlesen Date: Thu, 11 Mar 2021 22:35:08 +0100 Subject: [PATCH] fixed send to multiple users, and program crash with wrong names --- src/main/java/server/ClientHandler.java | 2 +- src/main/java/server/MessageHandler.java | 51 ++++++++++++------------ 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/main/java/server/ClientHandler.java b/src/main/java/server/ClientHandler.java index 49fea9d..03c097e 100644 --- a/src/main/java/server/ClientHandler.java +++ b/src/main/java/server/ClientHandler.java @@ -91,7 +91,7 @@ private boolean connectClient() { } - public void messageToAll(String message, String name) { + public void message(String message, String name) { pw.println("MESSAGE#" + name + "#" + message); } diff --git a/src/main/java/server/MessageHandler.java b/src/main/java/server/MessageHandler.java index afa4df8..b676f1e 100644 --- a/src/main/java/server/MessageHandler.java +++ b/src/main/java/server/MessageHandler.java @@ -1,8 +1,6 @@ package server; - - import java.util.NoSuchElementException; import java.util.concurrent.ConcurrentHashMap; @@ -47,9 +45,6 @@ public boolean commandHandler(String msg, String myName) { } break; - - - } default: myClientHandler.writeToClient("unknown command"); @@ -59,35 +54,39 @@ public boolean commandHandler(String msg, String myName) { } return true; } - public void sendToUsers (String message, String sender, String[]receivers){ - for (int i = 0; i < receivers.length; i++) { - if (userList.containsKey(receivers[i])) { + public void sendToUsers(String message, String sender, String[] receivers) { + + for (int i = 0; i < receivers.length; i++) { + if (userList.containsKey(receivers[i])) { - userList.get(receivers[i]).messageToAll(message, sender); + userList.get(receivers[i]).message(message, sender); - } } } + myClientHandler.writeToClient("Message Sent to " + receivers.length + "users."); + } - public void sendToAllUser (String message, String name){ - userList.values().forEach(clientHandler -> { - clientHandler.messageToAll(message, name); - }); - } + public void sendToAllUser(String message, String name) { + userList.values().forEach(clientHandler -> { + clientHandler.message(message, name); + }); + myClientHandler.writeToClient("Message Sent to all users."); + } - public void sendOnlineMessage () { + public void sendOnlineMessage() { - userList.values().forEach(clientHandler -> { - clientHandler.sendOnlineMesage(); - }); - } + userList.values().forEach(clientHandler -> { + clientHandler.sendOnlineMesage(); + }); + } - public void sendToSpecificUser (String message, String name, String user){ - if (userList.containsKey(user)) { - userList.get(user).messageToAll(message, name); - } else { - throw new NoSuchElementException(); - } + public void sendToSpecificUser(String message, String name, String user) { + if (userList.containsKey(user)) { + userList.get(user).message(message, name); + } else { + myClientHandler.writeToClient("User does not exist"); } + myClientHandler.writeToClient("Message Sent to " + user); } +}