public void Tick()
	{
		//testDialog.sendMessage("TickMessage!");
		Object o = testDialog.pollMessage();
		if(o != null) System.out.println(o);
		
		// ====== PROCESS NETWORK MESSAGES ======
		while(networkMessages.size() > 0)
		{
			// No need to check whether message retrievel was successful,
			// due to the fact that other threads will only add, not remove
			// messages from the queue
			Object message = networkMessages.poll();
			
			// Process network events.
			System.out.println("ClientConnection: "+message);
			if(message instanceof InputData)
			{
				InputData data = (InputData) message;
				String has = "pressed";
				System.out.println(getAccountName() + " has " + has + data.key);
				ProcessInput(data.key);
			}
			if(message instanceof DialogSync)
			{
				// If it's a DialogSync, forward the message to the correct Dialog instance
				DialogSync sync = (DialogSync) message;
				DialogHandle dialog = dialogsByUID.get(sync.UID);
				if(dialog == null)
				{
					System.err.println("Received DialogSync for Dialog UID that doesn't exist.");
					continue;
				}
				dialog.messageQueue.add(sync.message);
			}
			if(message instanceof VerbResponse)
			{
				VerbResponse verb = (VerbResponse) message;
				Atom target = atomCache.get(verb.UID);
				
				// If the atom doesn't exist anymore, that's a problem.
				if(target == null)
				{
					System.err.println("Received VerbResponse for atom that doesn't exist.");
					continue;
				}
				
				target.callVerb(verb.verbName, verb.arguments.toArray());
			}
		}
	}