From b0343cc824305d1a9b5065e18bfbdea5e82f2225 Mon Sep 17 00:00:00 2001 From: HimbeerserverDE Date: Sun, 28 Feb 2021 16:33:39 +0100 Subject: [PATCH] Add more priv control --- README.md | 12 ++++++++++++ functions.lua | 8 ++++++++ rpc.lua | 2 ++ 3 files changed, 22 insertions(+) diff --git a/README.md b/README.md index 30e1207..b69dc6d 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,18 @@ callback: Callback function (params: has_privs) Description: Reports to the callback function if a player has the specified privileges ``` +> `multiserver.get_privs(name, callback)` +``` +name: Player name to use for check +callback: Callback function (params: privs) +Description: Gets the proxy-level privileges of a player and passes it +to the callback function +``` +> `multiserver.set_privs(name, privs)` +``` +name: Player name to set privileges for +Description: Sets the proxy-level privileges of a player +``` > `multiserver.get_server_name(name, callback)` ``` name: Player name to perform lookup on diff --git a/functions.lua b/functions.lua index d6c8270..4909ab8 100644 --- a/functions.lua +++ b/functions.lua @@ -23,6 +23,14 @@ multiserver.check_privs = function(name, privs, cb) multiserver.do_rpc("<-CHECKPRIVS " .. name .. " " .. minetest.privs_to_string(privs):gsub(",", "|"), cb) end +multiserver.get_privs = function(name, cb) + multiserver.do_rpc("<-GETPRIVS " .. name, cb) +end + +multiserver.set_privs = function(name, privs) + multiserver.do_rpc("<-SETPRIVS " .. name .. " " .. minetest.privs_to_string(privs):gsub(",", "|"), nil) +end + multiserver.get_server_name = function(name, cb) multiserver.do_rpc("<-GETSRV " .. name, cb) end diff --git a/rpc.lua b/rpc.lua index 8e8354e..133296b 100644 --- a/rpc.lua +++ b/rpc.lua @@ -21,6 +21,8 @@ minetest.register_on_modchannel_message(function(channel_name, sender, msg) p = multiserver.tobool(msg:split(" ")[3]) elseif cmd == "->HASPRIVS" then p = multiserver.tobool(msg:split(" ")[3]) + elseif cmd == "->PRIVS" then + p = minetest.string_to_privs(msg:split(" ")[3] or "") elseif cmd == "->SRV" then p = msg:split(" ")[3] elseif cmd == "->ADDR" then