MUC: Assign occupants unavailable presence on room destruction, fixes destruction...
[prosody.git] / plugins / muc / muc.lib.lua
index 2026bc4717c668adc0def9bf16712c6767e8eefd..434127b4f2fd4e87ba2996284b9abfaf3fc0074a 100644 (file)
@@ -727,6 +727,7 @@ function room_mt:clear(x)
                occupants_updated[occupant] = true;
        end
        for occupant in pairs(occupants_updated) do
+               occupant:set_session(occupant.jid, st.presence({type="unavailable"}), true);
                self:publicise_occupant_status(occupant, x);
                module:fire_event("muc-occupant-left", { room = self; nick = occupant.nick; occupant = occupant;});
        end
@@ -1223,14 +1224,12 @@ room_mt.set_whois = whois.set;
 
 local _M = {}; -- module "muc"
 
-function _M.new_room(jid, config) -- luacheck: ignore 212
-       -- TODO use config?
+function _M.new_room(jid, config)
        return setmetatable({
                jid = jid;
                _jid_nick = {};
                _occupants = {};
-               _data = {
-               };
+               _data = config or {};
                _affiliations = {};
        }, room_mt);
 end