Software /
code /
prosody
Comparison
plugins/muc/muc.lib.lua @ 6209:cc00e78e6a31
plugins/muc: Move name functions to seperate module
author | daurnimator <quae@daurnimator.com> |
---|---|
date | Wed, 02 Apr 2014 17:02:07 -0400 |
parent | 6208:d724289a5226 |
child | 6211:a4d26656df04 |
comparison
equal
deleted
inserted
replaced
6208:d724289a5226 | 6209:cc00e78e6a31 |
---|---|
392 module:fire_event("muc-disco#info", {room = self; reply = reply; form = form;}); | 392 module:fire_event("muc-disco#info", {room = self; reply = reply; form = form;}); |
393 reply:add_child(form:form(nil, "result")); | 393 reply:add_child(form:form(nil, "result")); |
394 return reply; | 394 return reply; |
395 end | 395 end |
396 module:hook("muc-disco#info", function(event) | 396 module:hook("muc-disco#info", function(event) |
397 event.reply:tag("identity", {category="conference", type="text", name=event.room:get_name()}):up(); | |
398 end); | |
399 module:hook("muc-disco#info", function(event) | |
400 event.reply:tag("feature", {var = "http://jabber.org/protocol/muc"}):up(); | 397 event.reply:tag("feature", {var = "http://jabber.org/protocol/muc"}):up(); |
401 end); | 398 end); |
402 module:hook("muc-disco#info", function(event) | 399 module:hook("muc-disco#info", function(event) |
403 event.reply:tag("feature", {var = event.room:get_moderated() and "muc_moderated" or "muc_unmoderated"}):up(); | 400 event.reply:tag("feature", {var = event.room:get_moderated() and "muc_moderated" or "muc_unmoderated"}):up(); |
404 end); | 401 end); |
465 :tag("status", {code = "307"}) | 462 :tag("status", {code = "307"}) |
466 self:publicise_occupant_status(occupant, x); | 463 self:publicise_occupant_status(occupant, x); |
467 return true; | 464 return true; |
468 end | 465 end |
469 | 466 |
470 function room_mt:set_name(name) | |
471 if name == "" or type(name) ~= "string" or name == (jid_split(self.jid)) then name = nil; end | |
472 if self._data.name ~= name then | |
473 self._data.name = name; | |
474 if self.save then self:save(true); end | |
475 end | |
476 end | |
477 function room_mt:get_name() | |
478 return self._data.name or jid_split(self.jid); | |
479 end | |
480 function room_mt:set_moderated(moderated) | 467 function room_mt:set_moderated(moderated) |
481 moderated = moderated and true or nil; | 468 moderated = moderated and true or nil; |
482 if self._data.moderated ~= moderated then | 469 if self._data.moderated ~= moderated then |
483 self._data.moderated = moderated; | 470 self._data.moderated = moderated; |
484 if self.save then self:save(true); end | 471 if self.save then self:save(true); end |
851 }); | 838 }); |
852 return module:fire_event("muc-config-form", { room = self, actor = actor, form = form }) or form; | 839 return module:fire_event("muc-config-form", { room = self, actor = actor, form = form }) or form; |
853 end | 840 end |
854 module:hook("muc-config-form", function(event) | 841 module:hook("muc-config-form", function(event) |
855 table.insert(event.form, { | 842 table.insert(event.form, { |
856 name = 'muc#roomconfig_roomname', | |
857 type = 'text-single', | |
858 label = 'Name', | |
859 value = event.room:get_name() or "", | |
860 }); | |
861 end); | |
862 module:hook("muc-config-form", function(event) | |
863 table.insert(event.form, { | |
864 name = 'muc#roomconfig_persistentroom', | 843 name = 'muc#roomconfig_persistentroom', |
865 type = 'boolean', | 844 type = 'boolean', |
866 label = 'Make Room Persistent?', | 845 label = 'Make Room Persistent?', |
867 value = event.room:get_persistent() | 846 value = event.room:get_persistent() |
868 }); | 847 }); |
958 else | 937 else |
959 origin.send(st.error_reply(stanza, "cancel", "bad-request", "Not a submitted form")); | 938 origin.send(st.error_reply(stanza, "cancel", "bad-request", "Not a submitted form")); |
960 end | 939 end |
961 return true; | 940 return true; |
962 end | 941 end |
963 module:hook("muc-config-submitted", function(event) | |
964 event.update_option("name", "muc#roomconfig_roomname"); | |
965 end); | |
966 module:hook("muc-config-submitted", function(event) | 942 module:hook("muc-config-submitted", function(event) |
967 event.update_option("persistent", "muc#roomconfig_persistentroom"); | 943 event.update_option("persistent", "muc#roomconfig_persistentroom"); |
968 end); | 944 end); |
969 module:hook("muc-config-submitted", function(event) | 945 module:hook("muc-config-submitted", function(event) |
970 event.update_option("moderated", "muc#roomconfig_moderatedroom"); | 946 event.update_option("moderated", "muc#roomconfig_moderatedroom"); |
1455 self:save_occupant(occupant); | 1431 self:save_occupant(occupant); |
1456 self:publicise_occupant_status(occupant, x, actor, reason); | 1432 self:publicise_occupant_status(occupant, x, actor, reason); |
1457 return true; | 1433 return true; |
1458 end | 1434 end |
1459 | 1435 |
1436 local name = module:require "muc/name"; | |
1437 room_mt.get_name = name.get; | |
1438 room_mt.set_name = name.set; | |
1439 | |
1460 local description = module:require "muc/description"; | 1440 local description = module:require "muc/description"; |
1461 room_mt.get_description = description.get; | 1441 room_mt.get_description = description.get; |
1462 room_mt.set_description = description.set; | 1442 room_mt.set_description = description.set; |
1463 | 1443 |
1464 local password = module:require "muc/password"; | 1444 local password = module:require "muc/password"; |