From a0ba7cf97302eab03f331a4cd81b02aa2cecc05d Mon Sep 17 00:00:00 2001
From: PilzAdam <PilzAdam@gmx.de>
Date: Fri, 4 Jan 2013 16:59:43 +0100
Subject: [PATCH] Show the contents of the locked chest only to the owner

---
 mods/default/init.lua | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/mods/default/init.lua b/mods/default/init.lua
index d5a32932..39437813 100644
--- a/mods/default/init.lua
+++ b/mods/default/init.lua
@@ -1281,10 +1281,6 @@ minetest.register_node("default:chest_locked", {
 	end,
 	on_construct = function(pos)
 		local meta = minetest.env:get_meta(pos)
-		meta:set_string("formspec",
-				"size[8,9]"..
-				"list[current_name;main;0,0;8,4;]"..
-				"list[current_player;main;0,5;8,4;]")
 		meta:set_string("infotext", "Locked Chest")
 		meta:set_string("owner", "")
 		local inv = meta:get_inventory()
@@ -1340,6 +1336,16 @@ minetest.register_node("default:chest_locked", {
 		minetest.log("action", player:get_player_name()..
 				" takes stuff from locked chest at "..minetest.pos_to_string(pos))
 	end,
+	on_rightclick = function(pos, node, clicker)
+		local meta = minetest.env:get_meta(pos)
+		if has_locked_chest_privilege(meta, clicker) then
+			local pos = pos.x .. "," .. pos.y .. "," ..pos.z
+			minetest.show_formspec(clicker:get_player_name(),
+				"size[8,9]"..
+				"list[nodemeta:".. pos .. ";main;0,0;8,4;]"..
+				"list[current_player;main;0,5;8,4;]")
+		end
+	end,
 })
 
 default.furnace_inactive_formspec =
-- 
GitLab