diff --git a/database_manager.lua b/database_manager.lua index 2ce44fc..9479d1f 100644 --- a/database_manager.lua +++ b/database_manager.lua @@ -1,21 +1,14 @@ quake.players = {} -- KEY: p_name, INDEX: {lv (int), xp (int), kills (int), time_playing (int)} local storage = minetest.get_mod_storage() -local players_list = minetest.deserialize(storage:get_string("players")) function quake.init_storage() - -- se è il primo avvio, players_list sarà vuota - if players_list == nil then - players_list = {} - return - end - - -- salvo in quake.players tutti i giocatori nello storage - for _, pl_name in pairs(players_list) do - quake.players[pl_name] = minetest.deserialize(storage:get_string("PLAYER." .. pl_name)) + -- carico tutti i giocatori + for pl_name, pl_stats in pairs(storage:to_table().fields) do + quake.players[pl_name] = minetest.deserialize(pl_stats) end end @@ -24,21 +17,17 @@ end function quake.add_player_to_storage(p_name) quake.players[p_name] = {LV = 0, XP = 0, KILLS = 0, TIME_PLAYING = 0} - table.insert(players_list, p_name) - storage:set_string("players", minetest.serialize(players_list)) - storage:set_string("PLAYER." .. p_name, minetest.serialize(quake.players[p_name])) + storage:set_string(p_name, minetest.serialize(quake.players[p_name])) end function quake.update_storage(p_name) - storage:set_string("PLAYER." .. p_name, minetest.serialize(quake.players[p_name])) + storage:set_string( p_name, minetest.serialize(quake.players[p_name])) end function quake.is_player_in_storage(p_name) - if storage:get_string("PLAYER." .. p_name) == "" then return false - else return true - end + return storage:get_string(p_name) ~= "" end