mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2025-12-14 22:38:32 +01:00
Beginned rewritting of whoison
- Beginned rewritting of whoison, using second-precise features
This commit is contained in:
74
mods/whoison/functions.lua
Normal file
74
mods/whoison/functions.lua
Normal file
@@ -0,0 +1,74 @@
|
||||
-- Functions
|
||||
--
|
||||
|
||||
function whoison.functions.load(param)
|
||||
--[[
|
||||
Values for param :
|
||||
* `E` : Everyone
|
||||
* <name> : name
|
||||
]]--
|
||||
|
||||
if param == "E" then
|
||||
for line in whoison.presence_file:lines() do
|
||||
local datas = minetest.deserialize(line)
|
||||
if not datas then
|
||||
minetest.log("error", "[whoison] Cannot load line (" .. line ..
|
||||
") : invalid line")
|
||||
return false
|
||||
end
|
||||
return {[datas.name] = datas.time}
|
||||
end
|
||||
return table
|
||||
elseif minetest.get_player_by_name(param) then
|
||||
for line in whoison.presence_file:lines() do
|
||||
local datas = minetest.deserialize(line)
|
||||
if datas then
|
||||
if datas.name == name then
|
||||
return datas.time
|
||||
end
|
||||
end
|
||||
end
|
||||
minetest.log("error", "[whoison] Cannot load datas for " .. param ..
|
||||
" : player not registered")
|
||||
return false
|
||||
else
|
||||
minetest.log("error", "[whoison] Cannot load datas for " .. param ..
|
||||
" : not a player nor 'Everyone'")
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function whoison.functions.save(param)
|
||||
--[[
|
||||
Values for param :
|
||||
* E : Everyone
|
||||
* <name> : name
|
||||
]]--
|
||||
|
||||
if param == "E" then
|
||||
-- TODO
|
||||
else
|
||||
for line in whoison.presence_file:lines() do
|
||||
local datas = minetest.deserialize(line)
|
||||
if datas then
|
||||
if datas.name == name then
|
||||
-- Erase line
|
||||
local i = 0
|
||||
whoison.presence_file:seek(string.len(line),"cur")
|
||||
while i < string.len(line) do
|
||||
whoison.presence_file:write("\b")
|
||||
i = i + 1
|
||||
end
|
||||
whoison.presence_file:write(minetest.serialize(
|
||||
{name = param, time = whoison.datas[param]}
|
||||
) .. "\n")
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
whoison.presence_file:write(minetest.serialize(
|
||||
{name = param, time = whoison.datas[param]}
|
||||
) .. "\n")
|
||||
return true
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user