a small fix to not create "empty" stargate files for each player and to clean up such files that already exist

This commit is contained in:
hdastwb 2013-08-13 15:53:01 -04:00
parent df644d7f77
commit 97749578b0

@ -3,7 +3,13 @@ stargate.default_page = "main"
stargate_network["players"]={} stargate_network["players"]={}
stargate.current_page={} stargate.current_page={}
local function table_empty(tab)
for key in pairs(tab) do return false end
return true
end
stargate.save_data = function(table_pointer) stargate.save_data = function(table_pointer)
if table_empty(stargate_network[table_pointer]) then return end
local data = minetest.serialize( stargate_network[table_pointer] ) local data = minetest.serialize( stargate_network[table_pointer] )
local path = minetest.get_worldpath().."/stargate_"..table_pointer..".data" local path = minetest.get_worldpath().."/stargate_"..table_pointer..".data"
local file = io.open( path, "w" ) local file = io.open( path, "w" )
@ -22,6 +28,7 @@ stargate.restore_data = function(table_pointer)
local data = file:read("*all") local data = file:read("*all")
stargate_network[table_pointer] = minetest.deserialize( data ) stargate_network[table_pointer] = minetest.deserialize( data )
file:close() file:close()
if table_empty(stargate_network[table_pointer]) then os.remove(path) end
return true return true
else return nil else return nil
end end
@ -31,7 +38,8 @@ end
if stargate.restore_data("registered_players") ~= nil then if stargate.restore_data("registered_players") ~= nil then
for __,tab in ipairs(stargate_network["registered_players"]) do for __,tab in ipairs(stargate_network["registered_players"]) do
if stargate.restore_data(tab["player_name"]) == nil then if stargate.restore_data(tab["player_name"]) == nil then
print ("[stargate] Error loading data!") --print ("[stargate] Error loading data!")
stargate_network[tab["player_name"]] = {}
end end
end end
else else