# HG changeset patch # User Kim Alvefur # Date 1289269159 -3600 # Node ID 5ee2eccabcc91fc8e0dbdd4a7ede3d0a0c4b5fcd # Parent b00d05814d0d06bff6a6739caac407b83d514859 plugins.groupchat: Cleanup properly when leaving a room, even if kicked. diff -r b00d05814d0d -r 5ee2eccabcc9 plugins/groupchat.lua --- 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)