aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/mod_muc_mam.lua13
1 files changed, 9 insertions, 4 deletions
diff --git a/plugins/mod_muc_mam.lua b/plugins/mod_muc_mam.lua
index 7e6c9838..3fdaeaa4 100644
--- a/plugins/mod_muc_mam.lua
+++ b/plugins/mod_muc_mam.lua
@@ -303,14 +303,13 @@ module:hook("muc-get-history", function (event)
return true;
end, 1);
--- Handle messages
-local function save_to_history(self, stanza)
- local room_node, room_host = jid_split(self.jid);
+module:hook("muc-broadcast-messages", function (event)
+ local room, stanza = event.room, event.stanza;
-- Filter out <stanza-id> that claim to be from us
stanza:maptags(function (tag)
if tag.name == "stanza-id" and tag.attr.xmlns == xmlns_st_id
- and jid_prep(tag.attr.by) == self.jid then
+ and jid_prep(tag.attr.by) == room.jid then
return nil;
end
if tag.name == "x" and tag.attr.xmlns == xmlns_muc_user then
@@ -319,6 +318,12 @@ local function save_to_history(self, stanza)
return tag;
end);
+end, 0);
+
+-- Handle messages
+local function save_to_history(self, stanza)
+ local room_node, room_host = jid_split(self.jid);
+
local stored_stanza = stanza;
if stanza.name == "message" and self:get_whois() == "anyone" then