summaryrefslogtreecommitdiff
path: root/datastorage.lua
diff options
context:
space:
mode:
Diffstat (limited to 'datastorage.lua')
-rw-r--r--datastorage.lua83
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
-)