public void verarbeiteEingabe(String benutzerName, String eingabe)
	{

		System.err.println(benutzerName + ": " + eingabe);

		Spieler spieler = _logik.getKontext().getSpielerByName(benutzerName);
		Befehlszeile befehlszeile = new Befehlszeile(eingabe);

		if(eingabe.equals(TextVerwalter.BEFEHL_BEENDEN))
		{
			BefehlFactory.gibBefehl(befehlszeile).ausfuehren(
					_logik.getKontext(), spieler, befehlszeile);
			setGestartet(false);

			return;
		}

		// Spieler von der Karte entfernt?
		if(spieler == null)
		{
			return;
		}

		Befehl befehl = BefehlFactory.gibBefehl(befehlszeile);

		if(befehl != null)
		{
			if(!_logik.fuehreBefehlAusgefuehrenListenerAus(spieler, befehl))
				return;

			Raum alterRaum = _logik.getKontext().getAktuellenRaumZu(spieler);

			boolean result = Spiel.versucheBefehlAusfuehrung(
					_logik.getKontext(), spieler, befehlszeile, befehl);

			Raum neuerRaum = _logik.getKontext().getAktuellenRaumZu(spieler);

			// Wenn der Befehl erfolgreich ausgeführt wurde, rufe die Listener auf.
			if(result)
				_logik.fuehreBefehlAusgefuehrtListenerAus(spieler, befehl,
						alterRaum != neuerRaum);

			if(befehl instanceof BefehlSchauen)
			{
				String richtung = ((BefehlSchauen) befehl)
						.extrahiereRichtung(befehlszeile);
				if(alterRaum.getAusgang(richtung) != null)
				{
					String[] ar = { spieler.getName(), richtung };
					setChanged();
					notifyObservers(ar);
				}
			}

			// Entferne tote Spieler von Landkarte
			if(!spieler.lebendig())
			{
				_logik.getKontext().entferneSpieler(spieler);
			}
		}
		else
			_logik.getKontext().schreibeAnSpieler(spieler,
					TextVerwalter.FALSCHEEINGABE);
	}