From 3bd44e85a1f0bf86adac43451f6db1ceee71cbb4 Mon Sep 17 00:00:00 2001 From: Carter Kolwey Date: Tue, 11 Mar 2014 19:37:06 -0500 Subject: [PATCH] Added the "diglocks" priv, which allows people to use/dig others' locked stuff. --- mods/default/functions.lua | 4 +++- mods/default/nodes.lua | 6 +++--- mods/doors/init.lua | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 4f5f85d4..142405f2 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -1,5 +1,7 @@ -- mods/default/functions.lua - +if not minetest.get_modpath("locks") then +minetest.register_privilege("diglocks", { description = "allows to open/use and dig up all locked objects", give_to_singleplayer = false}); +end -- -- Sounds -- diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 3611a0e2..d1b9e81f 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -714,10 +714,10 @@ minetest.register_node("default:chest", { }) local function has_locked_chest_privilege(meta, player) - if player:get_player_name() ~= meta:get_string("owner") then - return false + if (player:get_player_name() == meta:get_string("owner")) or (minetest.check_player_privs(player:get_player_name(), {diglocks=true})) then + return true end - return true + return false end minetest.register_node("default:chest_locked", { diff --git a/mods/doors/init.lua b/mods/doors/init.lua index e18da8eb..b86b7e38 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -15,6 +15,7 @@ doors = {} -- selection_box_top -- only_placer_can_open: if true only the player who placed the door can -- open it + function doors:register_door(name, def) def.groups.not_in_creative_inventory = 1 @@ -131,7 +132,7 @@ function doors:register_door(name, def) end local meta = minetest.get_meta(pos) local pn = player:get_player_name() - return meta:get_string("doors_owner") == pn + return (meta:get_string("doors_owner") == pn) or (minetest.check_player_privs(player:get_player_name(), {diglocks=true})) end minetest.register_node(name.."_b_1", {