package server; import java.awt.Color; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; public class Server { private ArrayList users; private ArrayList messages; public Server(int port) { users = new ArrayList(); messages = new ArrayList(); Thread clientconnect = new Thread(new Runnable() { @Override public void run() { try { ServerSocket server = new ServerSocket(port); while(true){ System.out.println("Waiting for clients..."); try { Socket client = server.accept(); //TODO: Check in banned list and read username and color from reply message users.add(new User("test", Color.red, client, Server.this)); System.out.println("New client connected: " + client.getRemoteSocketAddress()); System.out.println("Total users connected: " + users.size()); } catch (IOException e) { e.printStackTrace(); } } } catch (IOException e) { System.out.println("Something went wrong, abort."); e.printStackTrace(); } } }); clientconnect.start(); } public synchronized void addMessage(Message message){ messages.add(message); for(User u:users){ if(message.getUser() != u) u.sendMessage(message); } } public void deleteUser(User user){ users.remove(user); } }