ClientThread(Socket socket) {
			uid = uniqueID++;
			this.socket = socket;

			try {
				//Creating I/O streams for a Client
				output = new ObjectOutputStream(socket.getOutputStream());
				input  = new ObjectInputStream(socket.getInputStream());

				//Read username that Client broadcasts to us
				username = (String) input.readObject();
				for (int i = 0; i < usernameList.size(); i++) {
					if(usernameList.get(i) == "Empty slot") {
						usernameList.set(i, username);
						break;
					}
				}
				gameFrame.repaint();
				gameFrame.updatePlayerList(usernameList);

				//Give Client a unique ID
				output.writeObject(uid);

				//Broadcasting grid to Clients that connect
				MansionArea[][] grid = player.getBandit().getGrid();
				output.writeObject(grid);

				//Broadcasting username list to Clients that connect
				output.writeObject(usernameList);
				for(int i = clientList.size(); --i >= 0;) {
					ClientThread ct = clientList.get(i);
					ct.output.writeObject(usernameList);
					System.out.println("Broadcasting username list: " + usernameList);
				}
			}
			catch (IOException e) {
				System.out.println(username + ": Exception creating IO Object Streams: " + e);
				return;
			} catch (ClassNotFoundException e) {
				System.out.println(username + ": Exception with class: " + e);
			}
		}