From 03bb4dab469ddc9e37f7412fa979a0829cb3c953 Mon Sep 17 00:00:00 2001
From: auouymous <5005204+auouymous@users.noreply.github.com>
Date: Fri, 11 Sep 2020 19:15:51 +0200
Subject: [PATCH] Protect self-contained injector formspec buttons (#568)

---
 technic/machines/other/injector.lua |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua
index b34dd79..fc3e3cd 100644
--- a/technic/machines/other/injector.lua
+++ b/technic/machines/other/injector.lua
@@ -6,7 +6,7 @@
 local tube_entry = "^pipeworks_tube_connection_metallic.png"
 
 local function inject_items (pos)
-		local meta=minetest.get_meta(pos) 
+		local meta=minetest.get_meta(pos)
 		local inv = meta:get_inventory()
 		local mode=meta:get_string("mode")
 		if mode=="single items" then
@@ -15,8 +15,8 @@
 			i=i+1
 				if stack then
 				local item0=stack:to_table()
-				if item0 then 
-					item0["count"] = "1"
+				if item0 then
+					item0["count"] = 1
 					technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
 					stack:take_item(1)
 					inv:set_stack("main", i, stack)
@@ -31,7 +31,7 @@
 			i=i+1
 				if stack then
 				local item0=stack:to_table()
-				if item0 then 
+				if item0 then
 					technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
 					stack:clear()
 					inv:set_stack("main", i, stack)
@@ -40,7 +40,7 @@
 				end
 			end
 		end
-		
+
 end
 
 minetest.register_craft({
@@ -55,7 +55,7 @@
 local function set_injector_formspec(meta)
 	local is_stack = meta:get_string("mode") == "whole stacks"
 	meta:set_string("formspec",
-		"invsize[8,9;]"..
+		"size[8,9;]"..
 		"item_image[0,0;1,1;technic:injector]"..
 		"label[1,0;"..S("Self-Contained Injector").."]"..
 		(is_stack and
@@ -95,7 +95,7 @@
 			if meta:get_int("splitstacks") == 1 then
 				stack = stack:peek_item(1)
 			end
-			return meta:get_inventory():room_for_item("main", stack)
+			return inv:room_for_item("main", stack)
 		end,
 		insert_object = function(pos, node, stack, direction)
 			return minetest.get_meta(pos):get_inventory():add_item("main", stack)
@@ -117,6 +117,8 @@
 		return inv:is_empty("main")
 	end,
 	on_receive_fields = function(pos, formanme, fields, sender)
+		if minetest.is_protected(pos, sender:get_player_name()) then return end
+
 		local meta = minetest.get_meta(pos)
 		if fields.mode_item then meta:set_string("mode", "single items") end
 		if fields.mode_stack then meta:set_string("mode", "whole stacks") end
@@ -142,7 +144,7 @@
 	chance = 1,
 	action = function(pos, node, active_object_count, active_object_count_wider)
 		local pos1 = vector.add(pos, vector.new(0, -1, 0))
-		local node1 = minetest.get_node(pos1) 
+		local node1 = minetest.get_node(pos1)
 		if minetest.get_item_group(node1.name, "tubedevice") > 0 then
 			inject_items(pos)
 		end

--
Gitblit v1.8.0