--[[
Talk 1.0 LUA 5.0/5.1
By Mutor 03/25/06
Requested by swapy2006
Speak as another user
-Sends message in main from specified or random user
-Option to choose nick from user list for talk message
-Includes context menu (right click)
]]
TalkCmds = {
talk = function(user,data)
if user then
local s,e,msg = string.find(data,"^%b<>%s%p%w+%s(.+)|$")
if msg then
local s,e,nick = string.find(msg,"^(%S+)")
if not nick then
nick = GetNick()
while (nick == user.sName) do
nick = GetNick()
end
else
SendToAll(nick, string.sub(msg,string.len(nick)+2,-1))
end
else
user:SendData("Error!, Usage: +talk <nick> <msg> (nick is optional)")
end
else
return "Talk As Another User"," %[line:Nick (Leave blank for random)]"," %[line:Talk Message]"
end
end,
}
NewUserConnected = function(user)
SendCmds(user)
end
OpConnected = NewUserConnected
ChatArrival = function(user,data)
local s,e,cmd = string.find(data,"%b<>%s%p(%w+)")
if cmd then
if cmd and TalkCmds[cmd] then
return TalkCmds[cmd](user,data),1
end
end
end
GetNick = function()
local tab = frmHub:GetOnlineUsers()
local usr = tab[math.random(1, table.getn(tab))]
local nick = usr.sName
return nick
end
SendCmds = function(user)
for i,v in pairs(TalkCmds) do
local desc,arg1,arg2 = TalkCmds()
user:SendData("$UserCommand 1 1 "..desc.."$<%[mynick]> +"..i..arg1..arg2.."|")
user:SendData("$UserCommand 1 2 "..desc.."$<%[mynick]> +"..i.." %[nick]"..arg2.."|")
end
end