plugins/groupchat.lua

changeset 435
cf31a5ef8a9b
parent 418
40b8cc364274
child 490
6b2f31da9610
equal deleted inserted replaced
426:9813b17ee096 435:cf31a5ef8a9b
36 local ret = room:event(stanza.name, event); 36 local ret = room:event(stanza.name, event);
37 return ret or (stanza.name == "message") or nil; 37 return ret or (stanza.name == "message") or nil;
38 end 38 end
39 end, 500); 39 end, 500);
40 40
41 function stream:join_room(jid, nick, opts) 41 function stream:join_room(jid, nick, opts, password)
42 if not nick then 42 if not nick then
43 return false, "no nickname supplied" 43 return false, "no nickname supplied"
44 end 44 end
45 opts = opts or {}; 45 opts = opts or {};
46 local room = setmetatable(verse.eventable{ 46 local room = setmetatable(verse.eventable{
102 room.subject = subject; 102 room.subject = subject;
103 return room:event("subject-changed", { from = old_subject, to = subject, by = event.sender, event = event }); 103 return room:event("subject-changed", { from = old_subject, to = subject, by = event.sender, event = event });
104 end 104 end
105 end, 2000); 105 end, 2000);
106 local join_st = verse.presence():tag("x",{xmlns = xmlns_muc}):reset(); 106 local join_st = verse.presence():tag("x",{xmlns = xmlns_muc}):reset();
107 if password then
108 join_st:get_child("x", xmlns_muc):tag("password"):text(password):reset();
109 end
107 self:event("pre-groupchat/joining", join_st); 110 self:event("pre-groupchat/joining", join_st);
108 room:send(join_st) 111 room:send(join_st)
109 self:event("groupchat/joining", room); 112 self:event("groupchat/joining", room);
110 return room; 113 return room;
111 end 114 end

mercurial