forked from Mirrorlandia_minetest/minetest
Builtin: Add basic_privs setting
This commit is contained in:
parent
30083d1e00
commit
17bfe2fe5b
@ -181,8 +181,10 @@ core.register_chatcommand("grant", {
|
|||||||
end
|
end
|
||||||
local privs = core.get_player_privs(grantname)
|
local privs = core.get_player_privs(grantname)
|
||||||
local privs_unknown = ""
|
local privs_unknown = ""
|
||||||
|
local basic_privs =
|
||||||
|
core.string_to_privs(core.setting_get("basic_privs") or "interact,shout")
|
||||||
for priv, _ in pairs(grantprivs) do
|
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
|
not core.check_player_privs(name, {privs=true}) then
|
||||||
return false, "Your privileges are insufficient."
|
return false, "Your privileges are insufficient."
|
||||||
end
|
end
|
||||||
@ -223,8 +225,10 @@ core.register_chatcommand("revoke", {
|
|||||||
end
|
end
|
||||||
local revoke_privs = core.string_to_privs(revoke_priv_str)
|
local revoke_privs = core.string_to_privs(revoke_priv_str)
|
||||||
local privs = core.get_player_privs(revoke_name)
|
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
|
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
|
not core.check_player_privs(name, {privs=true}) then
|
||||||
return false, "Your privileges are insufficient."
|
return false, "Your privileges are insufficient."
|
||||||
end
|
end
|
||||||
|
@ -691,6 +691,9 @@ default_password (Default password) string
|
|||||||
# See /privs in game for a full list on your server and mod configuration.
|
# See /privs in game for a full list on your server and mod configuration.
|
||||||
default_privs (Default privileges) string interact, shout
|
default_privs (Default privileges) string interact, shout
|
||||||
|
|
||||||
|
# Privileges that players with basic_privs can grant
|
||||||
|
basic_privs (Basic Privileges) string interact, shout
|
||||||
|
|
||||||
# Whether players are shown to clients without any range limit.
|
# Whether players are shown to clients without any range limit.
|
||||||
# Deprecated, use the setting player_transfer_distance instead.
|
# Deprecated, use the setting player_transfer_distance instead.
|
||||||
unlimited_player_transfer_distance (Unlimited player transfer distance) bool true
|
unlimited_player_transfer_distance (Unlimited player transfer distance) bool true
|
||||||
|
@ -1924,6 +1924,7 @@ Call these functions only at load time!
|
|||||||
* `minetest.register_privilege(name, definition)`
|
* `minetest.register_privilege(name, definition)`
|
||||||
* `definition`: `"description text"`
|
* `definition`: `"description text"`
|
||||||
* `definition`: `{ description = "description text", give_to_singleplayer = boolean, -- default: true }`
|
* `definition`: `{ description = "description text", give_to_singleplayer = boolean, -- default: true }`
|
||||||
|
* To allow players with basic_privs to grant, see basic_privs minetest.conf setting.
|
||||||
* `minetest.register_authentication_handler(handler)`
|
* `minetest.register_authentication_handler(handler)`
|
||||||
* See `minetest.builtin_auth_handler` in `builtin.lua` for reference
|
* See `minetest.builtin_auth_handler` in `builtin.lua` for reference
|
||||||
|
|
||||||
|
@ -826,6 +826,10 @@
|
|||||||
# type: string
|
# type: string
|
||||||
# default_privs = interact, shout
|
# default_privs = interact, shout
|
||||||
|
|
||||||
|
# Privileges that players with basic_privs can grant
|
||||||
|
# type: string
|
||||||
|
# basic_privs = interact, shout
|
||||||
|
|
||||||
# Whether players are shown to clients without any range limit.
|
# Whether players are shown to clients without any range limit.
|
||||||
# Deprecated, use the setting player_transfer_distance instead.
|
# Deprecated, use the setting player_transfer_distance instead.
|
||||||
# type: bool
|
# type: bool
|
||||||
@ -1513,4 +1517,3 @@
|
|||||||
|
|
||||||
# type: string
|
# type: string
|
||||||
# modstore_details_url = https://forum.minetest.net/mmdb/mod/*/
|
# modstore_details_url = https://forum.minetest.net/mmdb/mod/*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user