} else if ((o instanceof World) && worldNotYetLoaded) {
} else if ((o instanceof World) && connection.world == null) {
    private void processNextObject() throws IOException {	Object o = null;	synchronized (this) {	    while ((objectInputStream == null) || connection == null ||		    connection.connectionListener == null) {		/*		 * if we are closed then wait until we are opened.		 */		try {		    wait();		} catch (InterruptedException e) {		    /* ignore */		}	    }	    try {		o = objectInputStream.readObject();	    } catch (ClassNotFoundException e) {		System.out.println("Unrecognisable command received by " +			"server!");		return;	    } catch (InvalidClassException e) {		System.out.println("Invalid class exception received " + e);		return;	    } catch (StreamCorruptedException e) {		System.out.println("StreamCorruptedException received " + e);		e.printStackTrace();		throw new RuntimeException(e);	    } catch (OptionalDataException e) {		System.out.println("OptionalDataException received " + e);		return;	    }	}	if (!(o instanceof TimeTickMove)) {	    System.out.println ("processing received object " + o);	}	if (o instanceof ServerCommand) {	    processServerCommand((ServerCommand)o);	} else if (o instanceof Move) {	    if (worldNotYetLoaded) {		System.out.println("Discarding move");	    } else {		SourcedMoveReceiver mr = moveReceiver;		assert mr != null;		mr.processMove((Move)o, this.connection);	    }	} else if ((o instanceof World) && worldNotYetLoaded) {	    connection.world = (World)o;	    connection.setState(ConnectionState.READY);	    worldNotYetLoaded = false;	    synchronized (clientSemaphore) {		clientSemaphore.notify();	    }	} else {	    System.out.println("Invalid class sent in stream");	}    }