plugins/groupchat.lua

changeset 42
5ee2eccabcc9
parent 36
ccce42f781de
child 44
8e508f08cc7f
--- a/plugins/groupchat.lua	Tue Nov 09 03:01:30 2010 +0100
+++ b/plugins/groupchat.lua	Tue Nov 09 03:19:19 2010 +0100
@@ -86,9 +86,14 @@
 					room:event("occupant-joined", occupants[nick]);
 				end
 			elseif occupants[nick] and presence.stanza.attr.type == "unavailable" then
-				occupants[nick].presence = presence.stanza;
-				room:event("occupant-left", occupants[nick]);
-				occupants[nick] = nil;
+				if nick == room.nick then
+					room.bot:event("groupchat/left", room);
+					self.rooms[room.jid] = nil;
+				else
+					occupants[nick].presence = presence.stanza;
+					room:event("occupant-left", occupants[nick]);
+					occupants[nick] = nil;
+				end
 			end
 		end);
 		self:send(st.presence({to = jid.."/"..nick})
@@ -115,7 +120,6 @@
 function room_mt:leave(message)
 	self.bot:event("groupchat/leaving", room);
 	self:send(st.presence({type="unavailable"}));
-	self.bot:event("groupchat/left", room);
 end
 
 function room_mt:event(name, arg)

mercurial