diff -r 59129c1e4e07 -r 9663866ca475 plugins/tell.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/tell.lua Thu Mar 18 12:51:48 2010 +0100 @@ -0,0 +1,43 @@ +local st = require "util.stanza"; +local tellings = {}; + +function riddim.plugins.tell(bot) + bot:hook("commands/tell", function (command) + local s, e = command.param:find(" "); + local nick = command.param:sub(0, s - 1); + local msg = command.param:sub(s + 1); + local found = false; + + for tmp,_ in pairs(command.room.occupants) do + if tmp == nick then + found = true; + break; + end + end + + if not found then + if(tellings[nick] == nil) then + tellings[nick] = {}; + end + tellings[nick][#tellings[nick] + 1] = {from=command.sender.nick, msg=msg}; + return "Ok! Will tell " .. nick .. " what you have said!"; + else + if nick == command.sender.nick then + return "Are you going crazy!? You are " .. nick .. "!"; + else + return "Aehm?! ... " .. nick .. " is currently online!"; + end + end + end); + + bot:hook("groupchat/joined", function (room) + room:hook("occupant-joined", function (occupant) + if(tellings[occupant.nick] ~= nil) then + for _,msg in ipairs(tellings[occupant.nick]) do + room:send_message(occupant.nick .. ": Welcome back! " .. msg.from .. " told me, to tell you, \"" .. msg.msg .. "\"."); + end + end + end); + end); +end +