leave(): nicht existierende Ebenen behandeln
Aus nicht-existierenden Ebenen austreten sollte keinen
Fehler ausloesen.
Es ist sogar erfolgreich, damit das Spielerobjekt diese
nicht mehr weiterhin speichert.
Change-Id: Ibe2841cfe066775e601b33acf0a5e18750cf5f50
diff --git a/p/daemon/channeld.c b/p/daemon/channeld.c
index 09cb6a1..96a3cce 100644
--- a/p/daemon/channeld.c
+++ b/p/daemon/channeld.c
@@ -1061,6 +1061,10 @@
public int leave(string chname, object leaving)
{
struct channel_s ch = channels[lower_case(chname)];
+ // Nicht-existierenden Ebenen soll das Spielerobjekt austragen, also tun wir
+ // so, als sei das erfolgreich gewesen.
+ if (!ch)
+ return 0;
ch.members -= ({0}); // kaputte Objekte erstmal raus