diff options
Diffstat (limited to 'datastorage.lua')
-rw-r--r-- | datastorage.lua | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/datastorage.lua b/datastorage.lua deleted file mode 100644 index 096e35e..0000000 --- a/datastorage.lua +++ /dev/null @@ -1,83 +0,0 @@ -datastorage={} -datastorage["!registered_players"]={} - -datastorage.save_data = function(table_pointer) - local data = minetest.serialize( datastorage[table_pointer] ) - local path = minetest.get_worldpath().."/datastorage_"..table_pointer..".data" - local file = io.open( path, "w" ) - if( file ) then - file:write( data ) - file:close() - return true - else return nil - end -end - -datastorage.load_data = function(table_pointer) - local path = minetest.get_worldpath().."/datastorage_"..table_pointer..".data" - local file = io.open( path, "r" ) - if( file ) then - local data = file:read("*all") - datastorage[table_pointer] = minetest.deserialize( data ) - file:close() - return true - else return nil - end -end - -datastorage.get_container = function (player, key) - local player_name = player:get_player_name() - local container = datastorage[player_name] - if container[key] == nil then - container[key] = {} - end - datastorage.save_data(player_name) - return container[key] -end - --- forced save of all player's data -datastorage.save_container = function (player) - local player_name = player:get_player_name() - datastorage.save_data(player_name) -end - - --- Init -if datastorage.load_data("!registered_players") == nil then - datastorage["!registered_players"]={} - datastorage.save_data("!registered_players") -end - -minetest.register_on_joinplayer(function(player) - local player_name = player:get_player_name() - local registered = nil - for __,tab in ipairs(datastorage["!registered_players"]) do - if tab["player_name"] == player_name then registered = true break end - end - if registered == nil then - local new={} - new["player_name"]=player_name - table.insert(datastorage["!registered_players"],new) - datastorage[player_name]={} - datastorage.save_data("!registered_players") - datastorage.save_data(player_name) - else - datastorage.load_data(player_name) - end -end -) - -minetest.register_on_leaveplayer(function(player) - local player_name = player:get_player_name() - datastorage.save_data(player_name) - datastorage[player_name] = nil -end -) - -minetest.register_on_shutdown(function() - for __,tab in ipairs(datastorage["!registered_players"]) do - if datastorage[tab["player_name"]] == nil then break end - datastorage.save_data(tab["player_name"]) - end -end -) |