From b49ba5dc142f09b99c44101c48b826354fd77664 Mon Sep 17 00:00:00 2001
From: SmallJoker <mk939@ymail.com>
Date: Sun, 16 Oct 2016 09:09:11 +0200
Subject: [PATCH] Shop: Allow server admins to open the owner formspec of shops
 Clean up the position entry on leave Add wrench support

---
 depends.txt |  1 +
 init.lua    |  6 +++++-
 shop.lua    | 20 +++++++++++++++++++-
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/depends.txt b/depends.txt
index 4846195..8eae95c 100644
--- a/depends.txt
+++ b/depends.txt
@@ -1,6 +1,7 @@
 default
 moreores?
 technic_worldgen?
+wrench?
 quartz?
 pipeworks?
 money?
diff --git a/init.lua b/init.lua
index 99ec6b1..f9fa96a 100644
--- a/init.lua
+++ b/init.lua
@@ -68,7 +68,11 @@ end
 -- Privs
 minetest.register_privilege("bitchange", "Can access to owned nodes of the bitchange mod")
 function bitchange.has_access(owner, player_name)
-	return (player_name == owner or owner == "" or minetest.get_player_privs(player_name).server or minetest.get_player_privs(player_name).bitchange)
+	if player_name == owner or owner == "" then
+		return true
+	end
+	local privs = minetest.get_player_privs(player_name)
+	return privs.server or privs.bitchange
 end
 
 print("[BitChange] Loaded.")
diff --git a/shop.lua b/shop.lua
index 3e29d1b..6e14635 100644
--- a/shop.lua
+++ b/shop.lua
@@ -303,7 +303,7 @@ minetest.register_node("bitchange:shop", {
 		local player_name = clicker:get_player_name()
 		local view = 0
 		exchange_shop[player_name] = pos
-		if player_name == meta:get_string("owner") then
+		if bitchange.has_access(meta:get_string("owner"), player_name) then
 			if clicker:get_player_control().aux1 then
 				view = 1
 			else
@@ -355,3 +355,21 @@ minetest.register_craft({
 		{"default:chest_locked"},
 	}
 })
+
+minetest.register_on_dieplayer(function(player)
+	local player_name = player:get_player_name()
+	exchange_shop[player_name] = nil
+end)
+
+if minetest.get_modpath("wrench") and wrench then
+	local STRING = wrench.META_TYPE_STRING
+	wrench:register_node("bitchange:shop", {
+		lists = {"stock", "custm", "custm_ej", "cust_ow", "cust_og", "cust_ej"},
+		metas = {
+			owner = STRING,
+			infotext = STRING,
+			title = STRING,
+		},
+		owned = true
+	})
+end
-- 
GitLab