From 4725bbd95b9f91219704b7f2a79c23ade96a72c0 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Tue, 26 May 2020 16:51:36 +0200 Subject: [PATCH] Fix saving of ranks, fix missing privs when rank is changed --- privs.lua | 3 --- ranks.lua | 76 +++++++++++++++++++++++++------------------------------ save.lua | 1 + 3 files changed, 35 insertions(+), 45 deletions(-) diff --git a/privs.lua b/privs.lua index cc4d547..3517d30 100644 --- a/privs.lua +++ b/privs.lua @@ -29,7 +29,6 @@ minetest.register_chatcommand("grantall", { func = function(name, param) table.insert(coronaserver.savedata.grantall, param) coronaserver.update_privs_all() - coronaserver.save() end }) @@ -40,7 +39,6 @@ minetest.register_chatcommand("revokeall", { func = function(name, param) table.insert(coronaserver.savedata.revokeall, param) coronaserver.update_privs_all() - coronaserver.save() end }) @@ -60,7 +58,6 @@ minetest.register_chatcommand("remove_from_allprivs", { end rmpriv(coronaserver.savedata.revokeall) rmpriv(coronaserver.savedata.grantall) - coronaserver.save() end }) diff --git a/ranks.lua b/ranks.lua index b5984a8..a12a48b 100755 --- a/ranks.lua +++ b/ranks.lua @@ -1,60 +1,52 @@ -local function ReverseTable(t) - local reversedTable = {} - local itemCount = #t - for k, v in ipairs(t) do - reversedTable[itemCount + 1 - k] = v - end - return reversedTable -end coronaserver.ranks = { { - name = "owner", - color = "#FF2D8D", - tag = "[OWNER]", - privs = {}, - }, + name = "student", + color = "#BBBBBB", + tag = "[SCHÜLER*IN]", + privs = {student = true, interact = true, shout = true, fast = true, spawn = true, home = true, zoom = true, pvp = true, iblocks = true}, + }, + { + name = "teacher", + color = "#16AE00", + tag = "[LEHRER*IN / PÄDAGOG*IN]", + privs = {fly = true, teacher = true, creative = true, areas = true, student = false} + }, { - name = "admin", - color = "#FF362D", - tag = "[ADMIN]", - privs = {}, + name = "supporter", + color = "#EE6E00", + tag = "[SUPPORTER]", + privs = {kick = true}, }, { - name = "hacker", - color = "#000000", - tag = "[HACKER]", - privs = {}, + name = "moderator", + color = "#001FFF", + tag = "[MODERATOR]", + privs = {server = true, ban = true, worldedit = true, vanish = true, ["rename"] = true}, }, { name = "developer", color = "#EBEE00", - tag = "[ENTWICKLER]", + tag = "[ENTWICKLER*IN]", privs = {privs = true}, }, { - name = "moderator", - color = "#001FFF", - tag = "[MODERATOR]", - privs = {server = true, ban = true, worldedit = true, vanish = true, ["rename"] = true}, + name = "hacker", + color = "#000000", + tag = "[HACKER]", + privs = {}, }, { - name = "supporter", - color = "#EE6E00", - tag = "[SUPPORTER]", - privs = {kick = true}, + name = "admin", + color = "#FF362D", + tag = "[ADMIN]", + privs = {}, }, { - name = "teacher", - color = "#16AE00", - tag = "[LEHRER]", - privs = {fly = true, teacher = true, creative = true, areas = true, student = false} - }, - { - name = "student", - color = "#BBBBBB", - tag = "[SCHÜLER]", - privs = {student = true}, - } + name = "owner", + color = "#FF2D8D", + tag = "[OWNER]", + privs = {}, + }, } coronaserver.savedata.ranks = coronaserver.savedata.ranks or {} function coronaserver.get_rank(name) @@ -106,7 +98,7 @@ minetest.register_chatcommand("rank", { else coronaserver.savedata.ranks[target] = rank local privs = {} - for _, r in pairs(ReverseTable(coronaserver.ranks)) do + for _, r in pairs(coronaserver.ranks) do for k, v in pairs(r.privs) do privs[k] = v end diff --git a/save.lua b/save.lua index b22a639..3f779b9 100644 --- a/save.lua +++ b/save.lua @@ -13,3 +13,4 @@ function coronaserver.save() file:close() end coronaserver.load() +minetest.register_on_shutdown(coronaserver.save) -- 2.44.0