From 1a7c63f6bda2a2951c3036a2a40b199d2c73d697 Mon Sep 17 00:00:00 2001 From: sys4-fr Date: Sun, 9 Apr 2017 03:49:24 +0200 Subject: [PATCH 1/3] Fix server crash if filter-injector placed on the right of a connected chest is punched --- mods/pipeworks/filter-injector.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mods/pipeworks/filter-injector.lua b/mods/pipeworks/filter-injector.lua index 7fbabc2b..c63b3364 100755 --- a/mods/pipeworks/filter-injector.lua +++ b/mods/pipeworks/filter-injector.lua @@ -144,6 +144,14 @@ local function punch_filter(data, filtpos, filtnode, msg) local dir = minetest.facedir_to_right_dir(filtnode.param2) local frompos = vector.subtract(filtpos, dir) local fromnode = minetest.get_node(frompos) + + -- Fix crash with connected_chests (sys4 fix for MFF) + if fromnode.name == "connected_chests:chest_right" then + local v_mul = vector.multiply(dir, 2) + frompos = vector.subtract(filtpos, v_mul) + fromnode = minetest.get_node(frompos) + end + if not fromnode then return end local fromdef = minetest.registered_nodes[fromnode.name] if not fromdef then return end From 5c7d2ea9faec1128dd9d3af1e2906b6a35e45127 Mon Sep 17 00:00:00 2001 From: sys4-fr Date: Sun, 9 Apr 2017 12:32:03 +0200 Subject: [PATCH 2/3] check if fromnode is not nil before apply connected_chests fix --- mods/pipeworks/filter-injector.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/pipeworks/filter-injector.lua b/mods/pipeworks/filter-injector.lua index c63b3364..ac76ba59 100755 --- a/mods/pipeworks/filter-injector.lua +++ b/mods/pipeworks/filter-injector.lua @@ -146,7 +146,7 @@ local function punch_filter(data, filtpos, filtnode, msg) local fromnode = minetest.get_node(frompos) -- Fix crash with connected_chests (sys4 fix for MFF) - if fromnode.name == "connected_chests:chest_right" then + if fromnode and fromnode.name == "connected_chests:chest_right" then local v_mul = vector.multiply(dir, 2) frompos = vector.subtract(filtpos, v_mul) fromnode = minetest.get_node(frompos) From f48bad74e1ce59a6dcfc6add902adbb7a79dd207 Mon Sep 17 00:00:00 2001 From: sys4-fr Date: Sun, 9 Apr 2017 14:15:22 +0200 Subject: [PATCH 3/3] improve connected_chests fix for injector --- mods/pipeworks/filter-injector.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mods/pipeworks/filter-injector.lua b/mods/pipeworks/filter-injector.lua index ac76ba59..f5f90a0c 100755 --- a/mods/pipeworks/filter-injector.lua +++ b/mods/pipeworks/filter-injector.lua @@ -150,6 +150,9 @@ local function punch_filter(data, filtpos, filtnode, msg) local v_mul = vector.multiply(dir, 2) frompos = vector.subtract(filtpos, v_mul) fromnode = minetest.get_node(frompos) + if fromnode and fromnode.name ~= "connected_chests:chest_left" then + return + end end if not fromnode then return end