mod_mix: Add events and fix <nick> when joining
This commit is contained in:
		
							parent
							
								
									08c513a957
								
							
						
					
					
						commit
						15c1179f4d
					
				| @ -350,7 +350,7 @@ module:hook("iq-set/bare/"..mix_core_xmlns..":leave", function(event) | |||||||
|         return true; |         return true; | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     local j, _ = channel:find_participant(from); |     local j, participant = channel:find_participant(from); | ||||||
|     if j == -1 then |     if j == -1 then | ||||||
|         origin.send(st.error_reply(stanza, |         origin.send(st.error_reply(stanza, | ||||||
|                                    "cancel", |                                    "cancel", | ||||||
| @ -379,6 +379,8 @@ module:hook("iq-set/bare/"..mix_core_xmlns..":leave", function(event) | |||||||
|     table.remove(channel.participants, j); |     table.remove(channel.participants, j); | ||||||
|     channel:save_state(); |     channel:save_state(); | ||||||
| 
 | 
 | ||||||
|  |     module:fire_event("mix-channel-leave", { channel = channel, participant = participant }); | ||||||
|  | 
 | ||||||
|     origin.send(st.reply(stanza):tag("leave", { xmlns = mix_core_xmlns })); |     origin.send(st.reply(stanza):tag("leave", { xmlns = mix_core_xmlns })); | ||||||
|     return true; |     return true; | ||||||
| end); | end); | ||||||
| @ -475,7 +477,9 @@ module:hook("iq-set/bare/"..mix_core_xmlns..":join", function(event) | |||||||
|     publish_participant(srv, channel, spid, participant); |     publish_participant(srv, channel, spid, participant); | ||||||
|     channel:save_state(); |     channel:save_state(); | ||||||
| 
 | 
 | ||||||
|     reply:add_child(nick); |     module:fire_event("mix-channel-join", { channel = channel, participant = participant }); | ||||||
|  | 
 | ||||||
|  |     reply:add_child(nick_tag); | ||||||
|     reply:tag("x", { xmlns = "jabber:x:data", type = "result" }) |     reply:tag("x", { xmlns = "jabber:x:data", type = "result" }) | ||||||
|         :tag("field", { var = "FORM_TYPE", type = "hidden" }) |         :tag("field", { var = "FORM_TYPE", type = "hidden" }) | ||||||
|             :tag("value"):text(mix_anon_xmlns):up():up() |             :tag("value"):text(mix_anon_xmlns):up():up() | ||||||
| @ -524,6 +528,8 @@ module:hook("iq-set/bare/"..mix_core_xmlns..":setnick", function(event) | |||||||
|     --local participant = channel.participants[participant_index]; |     --local participant = channel.participants[participant_index]; | ||||||
|     publish_participant(srv, channel, channel:get_spid(participant.jid), participant); |     publish_participant(srv, channel, channel:get_spid(participant.jid), participant); | ||||||
| 
 | 
 | ||||||
|  |     module:fire_event("mix-change-nick", { channel = channel, participant = participant }); | ||||||
|  | 
 | ||||||
|     origin.send(st.reply(stanza) |     origin.send(st.reply(stanza) | ||||||
|                     :tag("setnick", { xmlns = mix_core_xmlns }) |                     :tag("setnick", { xmlns = mix_core_xmlns }) | ||||||
|                         :tag("nick"):text(nick:get_text())); |                         :tag("nick"):text(nick:get_text())); | ||||||
| @ -628,6 +634,7 @@ module:hook("iq-set/host/"..mix_core_xmlns..":create", function(event) | |||||||
|         create_channel(node, from, true); |         create_channel(node, from, true); | ||||||
|     end |     end | ||||||
|     module:log("debug", "Channel %s created with %s as owner", node, from); |     module:log("debug", "Channel %s created with %s as owner", node, from); | ||||||
|  |     -- TODO: Add an event | ||||||
| 
 | 
 | ||||||
|     origin.send(st.reply(stanza) |     origin.send(st.reply(stanza) | ||||||
|                 :tag("create", { xmlns = mix_core_xmlns, channel = node })); |                 :tag("create", { xmlns = mix_core_xmlns, channel = node })); | ||||||
| @ -662,6 +669,7 @@ module:hook("iq-set/host/"..mix_core_xmlns..":destroy", function(event) | |||||||
|     end |     end | ||||||
|     table.remove(channels, i); |     table.remove(channels, i); | ||||||
| 
 | 
 | ||||||
|  |     module:fire_event("mix-destroy-channel", { channel = channel }); | ||||||
|     module:log("debug", "Channel %s destroyed", node); |     module:log("debug", "Channel %s destroyed", node); | ||||||
| 
 | 
 | ||||||
|     origin.send(st.reply(stanza)); |     origin.send(st.reply(stanza)); | ||||||
| @ -703,7 +711,7 @@ module:hook("message/bare", function(event) | |||||||
|     message_archive:append(stanza.attr.to, mam_id, msg, time.now()); |     message_archive:append(stanza.attr.to, mam_id, msg, time.now()); | ||||||
|     msg.attr.from = channel.jid.."/"..channel:get_spid(from); |     msg.attr.from = channel.jid.."/"..channel:get_spid(from); | ||||||
| 
 | 
 | ||||||
|     if module:fire_event("mix-broadcast-message", msg) then |     if module:fire_event("mix-broadcast-message", { message = msg, channel = channel }) then | ||||||
|         return true; |         return true; | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user