diff --git a/src/chat/ClientWindow.java b/src/chat/ClientWindow.java index 8497f2e..fdaee7b 100644 --- a/src/chat/ClientWindow.java +++ b/src/chat/ClientWindow.java @@ -82,8 +82,8 @@ public class ClientWindow implements ActionListener { connected = network.connect(username, outdoor, destinationIP); if(!connected && username != null) { - if(username.equals("")) - JOptionPane.showMessageDialog(chatWindow, "Please enter a username", "Error", JOptionPane.ERROR_MESSAGE); + if(username.equals("") || username.contains(" ") || username.contains(";")) + JOptionPane.showMessageDialog(chatWindow, "Please enter a valid username", "Error", JOptionPane.ERROR_MESSAGE); else JOptionPane.showMessageDialog(chatWindow, "This username is already taken", "Error", JOptionPane.ERROR_MESSAGE); } diff --git a/src/chat/NetworkClient.java b/src/chat/NetworkClient.java index e21a6ba..deb055e 100644 --- a/src/chat/NetworkClient.java +++ b/src/chat/NetworkClient.java @@ -64,7 +64,7 @@ public class NetworkClient { int portNumber = 1237; byte[] buffer1 = new byte[20000]; - if(username == null || username.compareTo("") == 0) + if(username == null || username.compareTo("") == 0 || username.contains(";") || username.contains(" ")) return false; try @@ -123,10 +123,12 @@ public class NetworkClient { System.out.println(usernameList.length + " users currently connected"); for(String u:usernameList) { + if(u.length() > 0) known_users.add(new User (u)); } for(String u:outdoorUsernameList) { + if(u.length() > 0) known_outdoor_users.add(new User (u)); } for(String a:addressList) diff --git a/src/chat/ReceiveThread.java b/src/chat/ReceiveThread.java index b7b6a4a..0f6d149 100644 --- a/src/chat/ReceiveThread.java +++ b/src/chat/ReceiveThread.java @@ -47,31 +47,34 @@ class ReceiveThread extends Thread { if(!(notif.getAuthor().equals(user)) && !notif.isRedirected()) { + notif.setRedirected(true); + for(Socket s:outdoor_dest_sockets) - { - try + { + try { ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream()); - notif.setRedirected(true); out.writeObject(notif); - notif.setRedirected(false); + } catch(IOException e){} } + notif.setRedirected(false); } if(isOutdoor) { + notif.setRedirected(true); for(Socket s:dest_sockets) { try { ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream()); - notif.setRedirected(true); out.writeObject(notif); } catch(IOException e){} } + notif.setRedirected(false); } else { @@ -132,7 +135,7 @@ class ReceiveThread extends Thread { knownUsersPanel.append("\nOutdoor users:\n"); for(User a:known_outdoor_users) { - knownUsersPanel.append(" " + a.getName() + " \n"); + knownUsersPanel.append("(" + a.getName() + ") \n"); } displayArea.setCaretPosition(displayArea.getDocument().getLength()); }