comparison mod_ircd/mod_ircd.lua @ 132:d4ff1cd414e5

mod_ircd: Add PING command / Echo PART back
author Florian Zeitz <florob@babelmonkeys.de>
date Mon, 22 Feb 2010 22:33:25 +0100
parents 3de60860adca
children fd7f7ebf257e
comparison
equal deleted inserted replaced
131:46741fc09091 132:d4ff1cd414e5
78 session.send(":"..session.host.." 353 "..session.nick.." = "..channel.." :"..session.nick); 78 session.send(":"..session.host.." 353 "..session.nick.." = "..channel.." :"..session.nick);
79 session.send(":"..session.host.." 366 "..session.nick.." "..channel.." :End of /NAMES list."); 79 session.send(":"..session.host.." 366 "..session.nick.." "..channel.." :End of /NAMES list.");
80 end 80 end
81 81
82 function commands.PART(session, channel) 82 function commands.PART(session, channel)
83 local channel, part_message = channel:match("^(%S+) :(.+)$"); 83 local channel, part_message = channel:match("^([^:]+):?(.*)$");
84 channel = channel:match("^([%S]*)");
84 core_process_stanza(session, st.presence{ type = "unavailable", from = session.full_jid, 85 core_process_stanza(session, st.presence{ type = "unavailable", from = session.full_jid,
85 to = channel:gsub("^#", "").."@"..conference_server.."/"..session.nick }:tag("status"):text(part_message)); 86 to = channel:gsub("^#", "").."@"..conference_server.."/"..session.nick }:tag("status"):text(part_message));
87 session.send(":"..session.nick.." PART :"..channel);
86 end 88 end
87 89
88 function commands.PRIVMSG(session, message) 90 function commands.PRIVMSG(session, message)
89 local who, message = message:match("^(%S+) :(.+)$"); 91 local who, message = message:match("^(%S+) :(.+)$");
90 if joined_mucs[who] then 92 if joined_mucs[who] then
91 core_process_stanza(session, st.message{to=who:gsub("^#", "").."@"..conference_server, type="groupchat"}:tag("body"):text(message)); 93 core_process_stanza(session, st.message{to=who:gsub("^#", "").."@"..conference_server, type="groupchat"}:tag("body"):text(message));
92 end 94 end
95 end
96
97 function commands.PING(session, server)
98 session.send(":"..session.host..": PONG "..server);
93 end 99 end
94 100
95 function commands.WHO(session, channel) 101 function commands.WHO(session, channel)
96 if joined_mucs[channel] then 102 if joined_mucs[channel] then
97 for nick in pairs(joined_mucs[channel].occupants) do 103 for nick in pairs(joined_mucs[channel].occupants) do