From def85b87e62d9efacb614e376b22ff7a25987259 Mon Sep 17 00:00:00 2001
From: daurnimator <quae@daurnimator.com>
Date: Fri, 14 Nov 2014 17:37:47 -0500
Subject: plugins/muc/muc.lib: Allow muc-broadcast-presence event listeners to
 modify nick, actor, reason

---
 plugins/muc/muc.lib.lua | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua
index 9f83af80..75caa233 100644
--- a/plugins/muc/muc.lib.lua
+++ b/plugins/muc/muc.lib.lua
@@ -198,13 +198,20 @@ function room_mt:publicise_occupant_status(occupant, base_x, nick, actor, reason
 	base_presence = base_presence or st.presence {from = occupant.nick; type = "unavailable";};
 
 	-- Fire event (before full_p and anon_p are created)
-	module:fire_event("muc-broadcast-presence", {
+	local event = {
 		room = self; stanza = base_presence; x = base_x;
 		occupant = occupant; nick = nick; actor = actor;
 		reason = reason;
-	});
+	}
+	module:fire_event("muc-broadcast-presence", event);
+
+	-- Allow muc-broadcast-presence listeners to change things
+	nick = event.nick;
+	actor = event.actor;
+	reason = event.reason;
 
 	local whois = self:get_whois();
+
 	local actor_nick;
 	if actor then
 		actor_nick = select(3, jid_split(self:get_occupant_jid(actor)));
-- 
cgit v1.2.3