VoxeLibre/mods/MISC/mcl_privs/init.lua

30 lines
800 B
Lua
Raw Normal View History

local S = minetest.get_translator(minetest.get_current_modname())
minetest.register_privilege("maphack", {
description = S("Can place and use advanced blocks like mob spawners, command blocks and barriers."),
})
2021-09-19 13:15:19 +02:00
2021-09-27 22:00:11 +02:00
minetest.register_on_joinplayer(function(player)
2021-09-19 13:18:09 +02:00
local name = player:get_player_name()
2021-09-27 22:00:11 +02:00
local meta = player:get_meta()
if meta:get_int("fly_changed") == 1 then return end
2021-09-19 13:28:07 +02:00
local fly = nil
2021-09-19 13:15:19 +02:00
if minetest.is_creative_enabled(name) then
fly = true
end
minetest.set_player_privs(name, {
fly = fly,
})
end)
2021-09-27 22:00:11 +02:00
for _, action in pairs({ "grant", "revoke" }) do
minetest["register_on_priv_" .. action](function(name, _, priv)
if priv == "fly" then
local player = minetest.get_player_by_name(name)
local meta = player:get_meta()
meta:set_int("fly_changed", 1)
end
end)
end