mirror of
https://github.com/minetest-mods/moreblocks.git
synced 2025-07-03 16:40:42 +02:00
invsaw
This commit is contained in:
61
invsaw/privs.lua
Normal file
61
invsaw/privs.lua
Normal file
@ -0,0 +1,61 @@
|
||||
local creative_priv = invsaw.settings.creative_priv
|
||||
local priv = invsaw.settings.priv
|
||||
|
||||
local function on_priv_change(name)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if player then
|
||||
invsaw.on_join(player)
|
||||
end
|
||||
end
|
||||
|
||||
if minetest.registered_privileges[priv] then
|
||||
local def = minetest.registered_privileges[priv]
|
||||
local old_on_grant = def.on_grant
|
||||
local old_on_revoke = def.on_revoke
|
||||
def.on_grant = function(name, cause)
|
||||
on_priv_change(name)
|
||||
if old_on_grant then
|
||||
old_on_grant(name, cause)
|
||||
end
|
||||
end
|
||||
def.on_revoke = function(name, cause)
|
||||
on_priv_change(name)
|
||||
if old_on_revoke then
|
||||
old_on_revoke(name, cause)
|
||||
end
|
||||
end
|
||||
else
|
||||
minetest.register_privilege(priv, {
|
||||
description = "Allow use of the circular saw in inventory",
|
||||
give_to_singleplayer = true,
|
||||
give_to_admin = false,
|
||||
on_grant = on_priv_change,
|
||||
on_revoke = on_priv_change,
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.registered_privileges[creative_priv] then
|
||||
local def = minetest.registered_privileges[creative_priv]
|
||||
local old_on_grant = def.on_grant
|
||||
local old_on_revoke = def.on_revoke
|
||||
def.on_grant = function(name, cause)
|
||||
on_priv_change(name)
|
||||
if old_on_grant then
|
||||
old_on_grant(name, cause)
|
||||
end
|
||||
end
|
||||
def.on_revoke = function(name, cause)
|
||||
on_priv_change(name)
|
||||
if old_on_revoke then
|
||||
old_on_revoke(name, cause)
|
||||
end
|
||||
end
|
||||
else
|
||||
minetest.register_privilege(creative_priv, {
|
||||
description = "Allow use of the inventory saw creatively",
|
||||
give_to_singleplayer = true,
|
||||
give_to_admin = false,
|
||||
on_grant = on_priv_change,
|
||||
on_revoke = on_priv_change,
|
||||
})
|
||||
end
|
Reference in New Issue
Block a user