public void newPlayerClient(java.net.Socket s, String connectedFrom) {
		// first, search for a free slot
		//int slot = -1, i = playerSlotSearchStart;
		int slot = -1, i = 1;
		do {
			if(players[i] == null) {
				slot = i;
				break;
			}
			i++;
			if(i >= maxPlayers) i = 0;		// wrap around
//		} while(i != playerSlotSearchStart);
		} while(i <= maxPlayers);

		client newClient = new client(s, slot);
		newClient.handler = this;
		(new Thread(newClient)).start();
		if(slot == -1) return;		// no free slot found - world is full
		players[slot] = newClient;
		players[slot].connectedFrom = connectedFrom;
                updatePlayerNames();

		// start at next slot when issuing the next search to speed it up
		playerSlotSearchStart = slot + 1;
		if(playerSlotSearchStart > maxPlayers) playerSlotSearchStart = 1;
		// Note that we don't use slot 0 because playerId zero does not function
		// properly with the client.
	}