mirror of
https://github.com/minetest-mods/areas.git
synced 2024-11-15 23:20:17 +01:00
Improvement from red-001
Use the new `minetest.safe_file_write` API if possible when saving database.
This commit is contained in:
commit
2095ec98fd
19
internal.lua
19
internal.lua
|
@ -3,6 +3,18 @@ function areas:player_exists(name)
|
||||||
return minetest.get_auth_handler().get_auth(name) ~= nil
|
return minetest.get_auth_handler().get_auth(name) ~= nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local safe_file_write = minetest.safe_file_write
|
||||||
|
if safe_file_write == nil then
|
||||||
|
function safe_file_write(path, content)
|
||||||
|
local file, err = io.open(path, "w")
|
||||||
|
if err then
|
||||||
|
return err
|
||||||
|
end
|
||||||
|
file:write(content)
|
||||||
|
file:close()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Save the areas table to a file
|
-- Save the areas table to a file
|
||||||
function areas:save()
|
function areas:save()
|
||||||
local datastr = minetest.serialize(self.areas)
|
local datastr = minetest.serialize(self.areas)
|
||||||
|
@ -10,12 +22,7 @@ function areas:save()
|
||||||
minetest.log("error", "[areas] Failed to serialize area data!")
|
minetest.log("error", "[areas] Failed to serialize area data!")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local file, err = io.open(self.config.filename, "w")
|
return safe_file_write(self.config.filename, datastr)
|
||||||
if err then
|
|
||||||
return err
|
|
||||||
end
|
|
||||||
file:write(datastr)
|
|
||||||
file:close()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Load the areas table from the save file
|
-- Load the areas table from the save file
|
||||||
|
|
Loading…
Reference in New Issue
Block a user