Diff

plugins/muc/muc.lib.lua @ 6222:355b29881117

plugins/muc: Move persistent room configuration to own module
author daurnimator <quae@daurnimator.com>
date Tue, 15 Apr 2014 17:06:04 -0400
parent 6221:f321536afeec
child 6223:2a7ce69844ca
line wrap: on
line diff
--- a/plugins/muc/muc.lib.lua	Fri Apr 04 11:20:20 2014 -0400
+++ b/plugins/muc/muc.lib.lua	Tue Apr 15 17:06:04 2014 -0400
@@ -281,9 +281,6 @@
 	event.reply:tag("feature", {var = event.room:get_moderated() and "muc_moderated" or "muc_unmoderated"}):up();
 end);
 module:hook("muc-disco#info", function(event)
-	event.reply:tag("feature", {var = event.room:get_persistent() and "muc_persistent" or "muc_temporary"}):up();
-end);
-module:hook("muc-disco#info", function(event)
 	event.reply:tag("feature", {var = event.room:get_hidden() and "muc_hidden" or "muc_public"}):up();
 end);
 module:hook("muc-disco#info", function(event)
@@ -349,16 +346,6 @@
 function room_mt:get_moderated()
 	return self._data.moderated;
 end
-function room_mt:set_persistent(persistent)
-	persistent = persistent and true or nil;
-	if self._data.persistent ~= persistent then
-		self._data.persistent = persistent;
-		if self.save then self:save(true); end
-	end
-end
-function room_mt:get_persistent()
-	return self._data.persistent;
-end
 function room_mt:set_hidden(hidden)
 	hidden = hidden and true or nil;
 	if self._data.hidden ~= hidden then
@@ -673,14 +660,6 @@
 end
 module:hook("muc-config-form", function(event)
 	table.insert(event.form, {
-		name = 'muc#roomconfig_persistentroom',
-		type = 'boolean',
-		label = 'Make Room Persistent?',
-		value = event.room:get_persistent()
-	});
-end);
-module:hook("muc-config-form", function(event)
-	table.insert(event.form, {
 		name = 'muc#roomconfig_publicroom',
 		type = 'boolean',
 		label = 'Make Room Publicly Searchable?',
@@ -745,9 +724,6 @@
 	return true;
 end
 module:hook("muc-config-submitted", function(event)
-	event.update_option("persistent", "muc#roomconfig_persistentroom");
-end);
-module:hook("muc-config-submitted", function(event)
 	event.update_option("moderated", "muc#roomconfig_moderatedroom");
 end);
 module:hook("muc-config-submitted", function(event)
@@ -780,7 +756,6 @@
 	if password then x:tag("password"):text(password):up(); end
 	x:up();
 	self:clear(x);
-	self:set_persistent(false);
 	module:fire_event("muc-room-destroyed", { room = self });
 end
 
@@ -1220,6 +1195,10 @@
 room_mt.get_members_only = members_only.get;
 room_mt.set_members_only = members_only.set;
 
+local persistent = module:require "muc/persistent";
+room_mt.get_persistent = persistent.get;
+room_mt.set_persistent = persistent.set;
+
 local history = module:require "muc/history";
 room_mt.send_history = history.send;
 room_mt.get_historylength = history.get_length;