PtokaX forum

Archive => Archived 5.0 boards => Finished Scripts => Topic started by: plop on 28 February, 2005, 17:44:14

Title: chat history
Post by: plop on 28 February, 2005, 17:44:14
-- PtokaX Lua 5 version by PPK

--// config

local lines = 25
local minlevel = 0
local commands = {
history = "chathistory",
help = "help",
}

-- we need to skip some input, because they may be operator commands, or useless junk
local skiplines = {
"^%+", "^-", "^[^ ]+ is kicking [^ ]+ because:"
}

--// script

local helpmsg = "!"..commands.history.." - view last "..lines.." lines of chat.\r\n"
local histmsg = "Chat history:\r\n"
local data = {}
for i = 1,lines do table.insert(data, "") end

function ChatArrival(curUser, msg)
msg = string.sub(msg, 1, (string.len(msg)-1))
local ret,c,cmd = string.find(msg, "^%b<> !(.*)")
-- react on commands
if cmd == commands.help then
curUser:SendData(frmHub:GetHubSecAliasName(), helpmsg)
return 0
elseif cmd == commands.history then
local out = histmsg
for k,v in data do
out = out..v
end
curUser:SendData(frmHub:GetHubSecAliasName(), out)
return 1
end

-- check for lines to skip
for k,v in skiplines do
if string.find(msg, v) then return end
end

-- store line
if cmd == nil or string.sub(cmd, 1, 2) == "me" then
table.remove(data, 1)
table.insert(data, os.date("[%H:%M:%S] ")..msg.."\r\n")
end
end

plop