--- a/netserver/HWProto.hs Thu May 01 15:26:09 2008 +0000
+++ b/netserver/HWProto.hs Thu May 01 15:55:03 2008 +0000
@@ -71,12 +71,14 @@
handleCmd_inRoom client _ rooms _ = (client, rooms, [client], ["ERROR", "Bad command or incorrect parameter"])
--- state-independent comman handlers
+-- state-independent command handlers
handleCmd :: ClientInfo -> [ClientInfo] -> [RoomInfo] -> [String] -> (ClientInfo, [RoomInfo], [ClientInfo], [String])
handleCmd client clients rooms ("QUIT":xs) =
if null (room client) then
(client, rooms, [client], ["QUIT"])
+ else if isMaster client then
+ (client, filter (\rm -> room client /= name rm) rooms, fromRoom (room client) clients, ["ROOMABANDONED"])
else
(client, rooms, fromRoom (room client) clients, ["QUIT", nick client])