31 lines
925 B
Lua
31 lines
925 B
Lua
lzr_privs = {}
|
|
|
|
local EDIT_PRIVS = { "fly", "fast", "noclip", "give" }
|
|
|
|
lzr_privs.grant_edit_privs = function(player)
|
|
local pname = player:get_player_name()
|
|
local privs = minetest.get_player_privs(pname)
|
|
for e=1, #EDIT_PRIVS do
|
|
privs[EDIT_PRIVS[e]] = true
|
|
end
|
|
minetest.set_player_privs(pname, privs)
|
|
minetest.log("action", "[lzr_privs] Editing privileges granted to "..pname)
|
|
end
|
|
|
|
lzr_privs.revoke_edit_privs = function(player)
|
|
local pname = player:get_player_name()
|
|
local privs = minetest.get_player_privs(pname)
|
|
for e=1, #EDIT_PRIVS do
|
|
privs[EDIT_PRIVS[e]] = nil
|
|
end
|
|
minetest.set_player_privs(pname, privs)
|
|
minetest.log("action", "[lzr_privs] Editing privileges revoked from "..pname)
|
|
end
|
|
|
|
minetest.register_on_joinplayer(function(player)
|
|
-- Reset editing privs if rejoining game in wrong gamestate
|
|
if lzr_gamestate.get_state() ~= lzr_gamestate.EDITOR then
|
|
lzr_privs.revoke_edit_privs(player)
|
|
end
|
|
end)
|