From 5f1919d2bc0f56f18cccfb1cf01beeb41422bbc5 Mon Sep 17 00:00:00 2001 From: Thomas--S Date: Sun, 15 Jan 2017 15:51:53 +0100 Subject: [PATCH] Update has_locked_chest_privilege to current minetest_game function --- technic_chests/common.lua | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/technic_chests/common.lua b/technic_chests/common.lua index 47054f5..b8e30a4 100644 --- a/technic_chests/common.lua +++ b/technic_chests/common.lua @@ -65,7 +65,31 @@ function technic.chests.on_inv_take(pos, listname, index, stack, player) ..minetest.pos_to_string(pos)) end -function has_locked_chest_privilege(meta, player) - return player:get_player_name() == meta:get_string("owner") +local function has_locked_chest_privilege(meta, player) + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + else + return false + end + + -- is player wielding the right key? + local item = player:get_wielded_item() + if item:get_name() == "default:key" then + local key_meta = minetest.parse_json(item:get_metadata()) + local secret = meta:get_string("key_lock_secret") + if secret ~= key_meta.secret then + return false + end + + return true + end + + if player:get_player_name() ~= meta:get_string("owner") then + return false + end + + return true end