From b57c94df8818fe46e2197fd44af17d0abd9b7bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20=C3=85str=C3=B6m?= Date: Sun, 21 Mar 2021 12:18:24 +0100 Subject: [PATCH] Fix crash when digging nodes with fishing rod Previously the game would crash when digging nodes with a tool which does not have tool_capabilities in their item definition. --- mods/CORE/_mcl_autogroup/init.lua | 5 ++++- mods/ITEMS/mcl_enchanting/groupcaps.lua | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mods/CORE/_mcl_autogroup/init.lua b/mods/CORE/_mcl_autogroup/init.lua index 75ed4ce2..c8475d0b 100644 --- a/mods/CORE/_mcl_autogroup/init.lua +++ b/mods/CORE/_mcl_autogroup/init.lua @@ -178,6 +178,10 @@ end -- Add the groupcaps from a field in "_mcl_diggroups" to the groupcaps of a -- tool. local function add_groupcaps(toolname, groupcaps, groupcaps_def, efficiency) + if not groupcaps_def then + return + end + for g, capsdef in pairs(groupcaps_def) do local mult = capsdef.speed or 1 local uses = capsdef.uses @@ -196,7 +200,6 @@ local function add_groupcaps(toolname, groupcaps, groupcaps_def, efficiency) groupcaps[g .. "_dig"] = get_groupcap(g, level > 0, mult, efficiency, uses) end end - return groupcaps end -- Checks if the given node would drop its useful drop if dug by a given tool. diff --git a/mods/ITEMS/mcl_enchanting/groupcaps.lua b/mods/ITEMS/mcl_enchanting/groupcaps.lua index 3060000d..37502954 100644 --- a/mods/ITEMS/mcl_enchanting/groupcaps.lua +++ b/mods/ITEMS/mcl_enchanting/groupcaps.lua @@ -45,6 +45,10 @@ end -- To make it more efficient it will first check a hash value to determine if -- the tool needs to be updated. function mcl_enchanting.update_groupcaps(itemstack) + if not itemstack:get_meta():get("tool_capabilities") then + return + end + local name = itemstack:get_name() local level = mcl_enchanting.get_enchantment(itemstack, "efficiency") local groupcaps = get_efficiency_groupcaps(name, level)