From: HimbeerserverDE <52707839+HimbeerserverDE@users.noreply.github.com> Date: Tue, 29 Sep 2020 13:44:38 +0000 (+0200) Subject: Move rank data from player meta to savedata X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=b732df50df5e4057cad35d3d1a8b6eaa5585d9d5;p=elidragon.git Move rank data from player meta to savedata --- diff --git a/ranks.lua b/ranks.lua index 1e50217..c065b71 100755 --- a/ranks.lua +++ b/ranks.lua @@ -55,7 +55,7 @@ end elidragon.savedata.ranks = elidragon.savedata.ranks or elidragon.load_legacy_ranks() or {} function elidragon.get_rank(player) - local rank = player:get_meta():get("elidragon:rank") or "player" + local rank = elidragon.savedata.ranks[player:get_player_name()] or "player" return elidragon.get_rank_by_name(rank) end @@ -86,10 +86,6 @@ end minetest.register_on_joinplayer(function(player) local name = player:get_player_name() local rank = elidragon.savedata.ranks[name] - if rank then - player:get_meta():set_string("elidragon:rank", rank) - elidragon.savedata.ranks[name] = nil - end minetest.chat_send_all(elidragon.get_player_name(player, true) .. "has joined the Server.") if irc and irc.connected and irc.config.send_join_part then irc.say(elidragon.get_player_name(player) .. "has joined the Server.") @@ -125,10 +121,8 @@ minetest.register_chatcommand("rank", { local rank_ref = elidragon.get_rank_by_name(rank) if not rank_ref then return false, "Invalid Rank: " .. rank - elseif not target_ref then - return false, "Player not online" else - target_ref:get_meta():set_string("elidragon:rank", rank) + elidragon.savedata.ranks[target] = rank local privs = {} for _, r in pairs(elidragon.ranks) do for k, v in pairs(r.privs) do @@ -144,3 +138,13 @@ minetest.register_chatcommand("rank", { end end, }) + +-- Migrate old ranks +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + local rank = player:get_meta():get_string("elidragon:rank") + if rank then + elidragon.savedata.ranks[name] = rank + player:get_meta():set_string("elidragon:rank", "") + end +end)