Caduceus
Unknown Member
- Joined
- May 10, 2010
- Messages
- 321
- Solutions
- 2
- Reaction score
- 24
I am trying to make a database cleaner, with log file that tells playerName - level - lastLogin. However, if the player has never logged in, display "Never" instead of "Wed Dec 31 1969 16:00:00". How would I go about this?
Code:
local config = {
log = true,
file = "data/logs/cleanplayers.txt"
}
local function doWriteLogFile(file, text)
local f = io.open(file, "a+")
if not f then
return false
end
f:write("[" .. os.date("%m/%d/%Y %H:%M:%S") .. "] " .. text .. "\n")
f:close()
return true
end
local cleanup = {
[1] = {level = 11, time = 10 * 24 * 60 * 60},
[2] = {level = 20, time = 20 * 24 * 60 * 60},
[3] = {level = 50, time = 30 * 24 * 60 * 60},
[4] = {level = 100, time = 60 * 24 * 60 * 60},
[5] = {level = 130, time = 90 * 24 * 60 * 60},
[6] = {level = 200, time = 120 * 24 * 60 * 60},
[7] = {level = 300, time = 180 * 24 * 60 * 60}
}
function onStartup()
local logs = "Players Deleted:\n"
for i = 7, #cleanup do
resultId = db.storeQuery("SELECT `id`,`name`,`level`,`lastlogin` FROM `players` WHERE `level` <= ".. cleanup[i].level .." AND `name` NOT IN('Rook Sample', 'Sorcerer Sample', 'Druid Sample', 'Paladin Sample', 'Knight Sample', 'Templar Sample') AND `group_id` < 2 AND `lastlogin` < UNIX_TIMESTAMP() - ".. cleanup[i].time ..";")
if resultId == false then
logs = string.format("%sThere were no players to delete.\n", logs)
else
repeat
local player = result.getString(resultId, "id")
local playerName = result.getString(resultId, "name")
local playerLevel = result.getString(resultId, "level")
local neverLogin = "Never", result.getString(resultId, "lastlogin")
local login = string.format(os.date("%a %b %d %Y %X", result.getString(resultId, "lastlogin")))
if neverLogin == 0 then
logs = string.format("%s".. playerName .." - ".. playerLevel .." - " .. neverLogin .."\n", logs)
db.query("DELETE FROM `players` WHERE `id` = '" .. player .. "';")
end
if player ~= nil then
logs = string.format("%s".. playerName .." - ".. playerLevel .." - " .. login .."\n", logs)
db.query("DELETE FROM `players` WHERE `id` = '" .. player .. "';")
end
until not result.next(resultId)
result.free(resultId)
end
if config.log then
doWriteLogFile(config.file, logs)
end
return true
end
end
Last edited: