From 5f1919d2bc0f56f18cccfb1cf01beeb41422bbc5 Mon Sep 17 00:00:00 2001
From: Thomas--S <Thomas--S@users.noreply.github.com>
Date: Sun, 15 Jan 2017 15:51:53 +0100
Subject: Update has_locked_chest_privilege to current minetest_game function

---
 technic_chests/common.lua | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

(limited to 'technic_chests/common.lua')

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
 
-- 
cgit v1.2.3