]> git.lizzy.rs Git - coronaserver.git/commitdiff
Extended advprivs, diabled birthday
authorElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 4 May 2020 12:07:25 +0000 (14:07 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 4 May 2020 12:07:25 +0000 (14:07 +0200)
advprivs.lua [new file with mode: 0644]
grantall.lua [deleted file]
init.lua

diff --git a/advprivs.lua b/advprivs.lua
new file mode 100644 (file)
index 0000000..a5a9707
--- /dev/null
@@ -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 = "<priv>",
+       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 = "<priv>",
+       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 = "<priv>",
+       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 = "<priv>",
+       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 (file)
index 0e034a2..0000000
+++ /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 = "<priv>",
-       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
-})
-
index 3b177a50f1f5e449ca1b3f949f2a418f4aabe7ba..d6cd85e7e6d10ad6d6993003f411e57cbe2c8192 100755 (executable)
--- 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")