From 17bfe2fe5b24aa7cf097bfe0a18dd3a66a0cee38 Mon Sep 17 00:00:00 2001
From: rubenwardy <rubenwardy@gmail.com>
Date: Sat, 9 Apr 2016 16:07:45 +0100
Subject: Builtin: Add basic_privs setting

---
 builtin/game/chatcommands.lua | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

(limited to 'builtin/game')

diff --git a/builtin/game/chatcommands.lua b/builtin/game/chatcommands.lua
index 4deff281d..7480446f2 100644
--- a/builtin/game/chatcommands.lua
+++ b/builtin/game/chatcommands.lua
@@ -181,8 +181,10 @@ core.register_chatcommand("grant", {
 		end
 		local privs = core.get_player_privs(grantname)
 		local privs_unknown = ""
+		local basic_privs =
+			core.string_to_privs(core.setting_get("basic_privs") or "interact,shout")
 		for priv, _ in pairs(grantprivs) do
-			if priv ~= "interact" and priv ~= "shout" and
+			if not basic_privs[priv] and
 					not core.check_player_privs(name, {privs=true}) then
 				return false, "Your privileges are insufficient."
 			end
@@ -223,8 +225,10 @@ core.register_chatcommand("revoke", {
 		end
 		local revoke_privs = core.string_to_privs(revoke_priv_str)
 		local privs = core.get_player_privs(revoke_name)
+		local basic_privs =
+			core.string_to_privs(core.setting_get("basic_privs") or "interact,shout")
 		for priv, _ in pairs(revoke_privs) do
-			if priv ~= "interact" and priv ~= "shout" and
+			if not basic_privs[priv] and
 					not core.check_player_privs(name, {privs=true}) then
 				return false, "Your privileges are insufficient."
 			end
-- 
cgit v1.2.3