equal
deleted
inserted
replaced
1243 _affiliations = {}; |
1243 _affiliations = {}; |
1244 }, room_mt); |
1244 }, room_mt); |
1245 end |
1245 end |
1246 |
1246 |
1247 function room_mt:freeze() |
1247 function room_mt:freeze() |
1248 return { |
1248 local frozen = { |
1249 jid = self.jid; |
1249 _jid = self.jid; |
1250 _data = self._data; |
1250 _data = self._data; |
1251 _affiliations = self._affiliations; |
1251 }; |
1252 } |
1252 for user, affiliation in pairs(self._affiliations) do |
|
1253 frozen[user] = affiliation; |
|
1254 end |
|
1255 return frozen; |
1253 end |
1256 end |
1254 |
1257 |
1255 function _M.restore_room(frozen) |
1258 function _M.restore_room(frozen) |
1256 local room_jid = frozen.jid; |
1259 -- COMPAT |
|
1260 if frozen.jid and frozen._affiliations then |
|
1261 local room = _M.new_room(frozen.jid, frozen._data); |
|
1262 room._affiliations = frozen._affiliations; |
|
1263 return room; |
|
1264 end |
|
1265 |
|
1266 local room_jid = frozen._jid; |
1257 local room = _M.new_room(room_jid, frozen._data); |
1267 local room = _M.new_room(room_jid, frozen._data); |
1258 room._affiliations = frozen._affiliations; |
1268 |
|
1269 for jid, data in pairs(frozen) do |
|
1270 local node, host = jid_split(jid); |
|
1271 if node or host:sub(1,1) ~= "_" then |
|
1272 room._affiliations[jid] = data; |
|
1273 end |
|
1274 end |
1259 return room; |
1275 return room; |
1260 end |
1276 end |
1261 |
1277 |
1262 _M.room_mt = room_mt; |
1278 _M.room_mt = room_mt; |
1263 |
1279 |