Can i replace it?
REPPP!Add an anti-spam thing
DETAIL
Not tested
PURPOSE
Demonstrate a cool way of making talkactions
]]--
Message = inheritsFrom(Talkhandler)
Message:setAttributes({
env = nil,
conn = nil
})
Message:registerWordEvent('!show', Message.showMsg) -- !show
Message:registerWordEvent('!send!', Message.sendMsg) -- !send"<player>, <msg>
function MessagenSay(cid, words, param)
self:callWordEvent(words, cid, param)
return false -- Needed so server wont send messages to client
end
function Message:showMsg(cid, param)
local pid = getPlayerGUID(cid)
local env, con = self:getConnection()
local cur = assert(con:execute("SELECT * FROM `messages` WHERE `playerid` = ' .. Database:quote(pid) .. ' AND `read` = '1'"))
if (cur:numrows() > 0) then
local row = cur:fetch({}, "a")
while (row) do
doPlayerSendTextMessage(cid, TALKTYPE_PRIVATE, row.writer .. ": " .. row.text)
row = cur:fetch({},"a")
assert(con:execute('DELETE FROM `messages` WHERE `playerid` = ' .. Database:quote(pid) .. ';'))
end
return true
end
conn:close()
env:close()
return false
end
function Message:sendMsg(cid, param)
local separator = string.explode(param, ",")
local targetId = getPlayerGUIDByName(separator[1])
if not (isPlayer(targetId) == TRUE) then
warnPlayer('Can only send messages to offline and exiting players.')
else
local env, con = Database:getConnection()
local writerName = getPlayerName(cid)
if (separator[2] ~= '' and Database:isPlayer(targetId) == false) then
sql:execute("'INSERT INTO `messages` (`playerid`, `writer`, `text`, `read`) VALUES (' .. targetId .. ', ' .. writerName .. ', ' .. separator[2] .. ', '0')")
doPlayerSendCancel(cid, 'Message successfuly sent to ' .. separator[1] .. '.')
return true
end
return false
end
end
TFS 0.3.6pl1