From c8b83cd72d2ab8e06c7c7b36101fbc38595a035a Mon Sep 17 00:00:00 2001 From: FaceDeer Date: Sun, 7 May 2017 13:06:26 -0600 Subject: [PATCH] hoppers sometimes crashed when adjacent to undefined nodes --- utility.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/utility.lua b/utility.lua index 962aa98..f8f5753 100644 --- a/utility.lua +++ b/utility.lua @@ -11,7 +11,7 @@ hopper.get_registered_inventories_for = function(target_node_name) if output ~= nil then return output end local target_def = minetest.registered_nodes[target_node_name] - if target_def.groups == nil then return nil end + if target_def == nil or target_def.groups == nil then return nil end for group, value in pairs(target_def.groups) do local registered_group = hopper.groups[group] @@ -75,6 +75,10 @@ hopper.take_item_from = function(hopper_pos, target_pos, target_node, target_inv if target_inventory_name == nil then return end + local target_def = minetest.registered_nodes[target_node.name] + if not target_def then + return + end --hopper inventory local hopper_meta = minetest.get_meta(hopper_pos); @@ -84,7 +88,6 @@ hopper.take_item_from = function(hopper_pos, target_pos, target_node, target_inv --source inventory local target_inv = minetest.get_meta(target_pos):get_inventory() local target_inv_size = target_inv:get_size(target_inventory_name) - local target_def = minetest.registered_nodes[target_node.name] if target_inv:is_empty(target_inventory_name) == false then for i = 1,target_inv_size do local stack = target_inv:get_stack(target_inventory_name, i) @@ -113,6 +116,10 @@ end hopper.send_item_to = function(hopper_pos, target_pos, target_node, target_inventory_name, filtered_items) local hopper_meta = minetest.get_meta(hopper_pos) local target_def = minetest.registered_nodes[target_node.name] + if not target_def then + return false + end + local eject_item = hopper.config.eject_button_enabled and hopper_meta:get_string("eject") == "true" and target_def.buildable_to if not eject_item and not target_inventory_name then