Add basic_privs privilege
parent
251c0c8508
commit
b1f043d010
|
@ -111,8 +111,13 @@ minetest.register_chatcommand("privs", {
|
||||||
minetest.register_chatcommand("grant", {
|
minetest.register_chatcommand("grant", {
|
||||||
params = "<name> <privilege>|all",
|
params = "<name> <privilege>|all",
|
||||||
description = "Give privilege to player",
|
description = "Give privilege to player",
|
||||||
privs = {privs=true},
|
privs = {},
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
|
if not minetest.check_player_privs(name, {privs=true}) and
|
||||||
|
not minetest.check_player_privs(name, {basic_privs=true}) then
|
||||||
|
minetest.chat_send_player(name, "Your privileges are insufficient.")
|
||||||
|
return
|
||||||
|
end
|
||||||
local grantname, grantprivstr = string.match(param, "([^ ]+) (.+)")
|
local grantname, grantprivstr = string.match(param, "([^ ]+) (.+)")
|
||||||
if not grantname or not grantprivstr then
|
if not grantname or not grantprivstr then
|
||||||
minetest.chat_send_player(name, "Invalid parameters (see /help grant)")
|
minetest.chat_send_player(name, "Invalid parameters (see /help grant)")
|
||||||
|
@ -125,6 +130,10 @@ minetest.register_chatcommand("grant", {
|
||||||
local privs = minetest.get_player_privs(grantname)
|
local privs = minetest.get_player_privs(grantname)
|
||||||
local privs_known = true
|
local privs_known = true
|
||||||
for priv, _ in pairs(grantprivs) do
|
for priv, _ in pairs(grantprivs) do
|
||||||
|
if priv ~= "interact" and priv ~= "shout" and not minetest.check_player_privs(name, {privs=true}) then
|
||||||
|
minetest.chat_send_player(name, "Your privileges are insufficient.")
|
||||||
|
return
|
||||||
|
end
|
||||||
if not minetest.registered_privileges[priv] then
|
if not minetest.registered_privileges[priv] then
|
||||||
minetest.chat_send_player(name, "Unknown privilege: "..priv)
|
minetest.chat_send_player(name, "Unknown privilege: "..priv)
|
||||||
privs_known = false
|
privs_known = false
|
||||||
|
@ -144,8 +153,13 @@ minetest.register_chatcommand("grant", {
|
||||||
minetest.register_chatcommand("revoke", {
|
minetest.register_chatcommand("revoke", {
|
||||||
params = "<name> <privilege>|all",
|
params = "<name> <privilege>|all",
|
||||||
description = "Remove privilege from player",
|
description = "Remove privilege from player",
|
||||||
privs = {privs=true},
|
privs = {},
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
|
if not minetest.check_player_privs(name, {privs=true}) and
|
||||||
|
not minetest.check_player_privs(name, {basic_privs=true}) then
|
||||||
|
minetest.chat_send_player(name, "Your privileges are insufficient.")
|
||||||
|
return
|
||||||
|
end
|
||||||
local revokename, revokeprivstr = string.match(param, "([^ ]+) (.+)")
|
local revokename, revokeprivstr = string.match(param, "([^ ]+) (.+)")
|
||||||
if not revokename or not revokeprivstr then
|
if not revokename or not revokeprivstr then
|
||||||
minetest.chat_send_player(name, "Invalid parameters (see /help revoke)")
|
minetest.chat_send_player(name, "Invalid parameters (see /help revoke)")
|
||||||
|
@ -153,6 +167,12 @@ minetest.register_chatcommand("revoke", {
|
||||||
end
|
end
|
||||||
local revokeprivs = minetest.string_to_privs(revokeprivstr)
|
local revokeprivs = minetest.string_to_privs(revokeprivstr)
|
||||||
local privs = minetest.get_player_privs(revokename)
|
local privs = minetest.get_player_privs(revokename)
|
||||||
|
for priv, _ in pairs(revokeprivs) do
|
||||||
|
if priv ~= "interact" and priv ~= "shout" and not minetest.check_player_privs(name, {privs=true}) then
|
||||||
|
minetest.chat_send_player(name, "Your privileges are insufficient.")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
if revokeprivstr == "all" then
|
if revokeprivstr == "all" then
|
||||||
privs = {}
|
privs = {}
|
||||||
else
|
else
|
||||||
|
|
|
@ -30,6 +30,7 @@ minetest.register_privilege("teleport", "Can use /teleport command")
|
||||||
minetest.register_privilege("bring", "Can teleport other players")
|
minetest.register_privilege("bring", "Can teleport other players")
|
||||||
minetest.register_privilege("settime", "Can use /time")
|
minetest.register_privilege("settime", "Can use /time")
|
||||||
minetest.register_privilege("privs", "Can modify privileges")
|
minetest.register_privilege("privs", "Can modify privileges")
|
||||||
|
minetest.register_privilege("basic_privs", "Can modify 'shout' and 'interact' privileges")
|
||||||
minetest.register_privilege("server", "Can do server maintenance stuff")
|
minetest.register_privilege("server", "Can do server maintenance stuff")
|
||||||
minetest.register_privilege("shout", "Can speak in chat")
|
minetest.register_privilege("shout", "Can speak in chat")
|
||||||
minetest.register_privilege("ban", "Can ban and unban players")
|
minetest.register_privilege("ban", "Can ban and unban players")
|
||||||
|
|
Loading…
Reference in New Issue