MUC: Save room to storage once after form processing, not in each individual setter
[prosody.git] / plugins / muc / name.lib.lua
index 49d1246717899aa366be5ab63e259cd8b680617b..3dbae9db59b59ff361c4f3d75e5fc63cb63ac6f8 100644 (file)
@@ -17,7 +17,6 @@ local function set_name(room, name)
        if name == "" or name == (jid_split(room.jid)) then name = nil; end
        if room._data.name == name then return false; end
        room._data.name = name;
-       if room.save then room:save(true); end
        return true;
 end
 
@@ -34,9 +33,8 @@ module:hook("muc-config-form", function(event)
        });
 end);
 
-module:hook("muc-config-submitted", function(event)
-       local new = event.fields["muc#roomconfig_roomname"];
-       if new ~= nil and set_name(event.room, new) then
+module:hook("muc-config-submitted/muc#roomconfig_roomname", function(event)
+       if set_name(event.room, event.value) then
                event.status_codes["104"] = true;
        end
 end);