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)