From: Elias Fleckenstein Date: Mon, 4 May 2020 12:07:25 +0000 (+0200) Subject: Extended advprivs, diabled birthday X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=775c3fdadd1876d243be3f7193a0e222a0524965;p=coronaserver.git Extended advprivs, diabled birthday --- diff --git a/advprivs.lua b/advprivs.lua new file mode 100644 index 0000000..a5a9707 --- /dev/null +++ b/advprivs.lua @@ -0,0 +1,75 @@ +coronaserver.savedata.grantall = coronaserver.savedata.grantall or {} +coronaserver.savedata.revokeall = coronaserver.savedata.revokeall or {} + +function coronaserver.update_privs(player) + local name = player:get_player_name() + local privs = minetest.get_player_privs(name) + for _, priv in pairs(coronaserver.savedata.grantall) do + privs[priv] = true + end + for _, priv in pairs(coronaserver.savedata.revokeall) do + privs[priv] = nil + end + minetest.set_player_privs(name, privs) +end + +function coronaserver.update_privs_all() + local players = minetest.get_connected_players() + for _, player in pairs(players) do + coronaserver.update_privs(player) + end +end + +minetest.register_on_joinplayer(coronaserver.update_privs) + +minetest.register_chatcommand("grantall", { + description = "Grant a privilegue to players when they join", + param = "", + privs = {privs = true}, + func = function(name, param) + table.insert(coronaserver.savedata.grantall, param) + coronaserver.update_privs_all() + coronaserver.save() + end +}) + +minetest.register_chatcommand("revokeall", { + description = "Revoke a privilegue from players when they join", + param = "", + privs = {privs = true}, + func = function(name, param) + table.insert(coronaserver.savedata.revokeall, param) + coronaserver.update_privs_all() + coronaserver.save() + end +}) + + +minetest.register_chatcommand("remove_from_allprivs", { + description = "Remove a priv from /grantall or /revokeall", + param = "", + privs = {privs = true}, + func = function(name, param) + local function rmpriv(tab) + for i, priv in pairs(tab) do + if priv == param then + table.remove(tab, i) + return rmpriv(tab) + end + end + end + rmpriv(coronaserver.savedata.revokeall) + rmpriv(coronaserver.savedata.grantall) + end +}) + +minetest.register_chatcommand("show_allprivs", { + description = "Show list of /grantall and /revokall ", + param = "", + privs = {privs = true}, + func = function(name, param) + minetest.chat_send_player(name, "/grantall: " .. table.concat(coronaserver.savedata.grantall, ", ")) + minetest.chat_send_player(name, "/revokeall: " .. table.concat(coronaserver.savedata.revokeall, ", ")) + end +}) + diff --git a/grantall.lua b/grantall.lua deleted file mode 100644 index 0e034a2..0000000 --- a/grantall.lua +++ /dev/null @@ -1,27 +0,0 @@ -coronaserver.savedata.grantall = coronaserver.savedata.grantall or {} - -function coronaserver.update_privs(player) - local name = player:get_player_name() - local privs = minetest.get_player_privs(name) - for _, priv in pairs(coronaserver.savedata.grantall) do - privs[priv] = true - end - minetest.set_player_privs(name, privs) -end - -minetest.register_on_joinplayer(coronaserver.update_privs) - -minetest.register_chatcommand("grantall", { - description = "Grant a privilegue to players when they join", - param = "", - privs = {privs = true}, - func = function(name, param) - coronaserver.savedata.grantall[#coronaserver.savedata.grantall] = param - local players = minetest.get_connected_players() - for _, player in pairs(players) do - coronaserver.update_privs(player) - end - coronaserver.save() - end -}) - diff --git a/init.lua b/init.lua index 3b177a5..d6cd85e 100755 --- a/init.lua +++ b/init.lua @@ -1,6 +1,6 @@ coronaserver = {} -local modules = {"save", "grantall", "birthday"} +local modules = {"save", "advprivs"} for _, m in pairs(modules) do dofile(minetest.get_modpath("coronaserver") .. "/" .. m .. ".lua")