Don't Starve Together

Don't Starve Together

Tropical Experience | SW HAM Biomes : From Beyond
幕夜之下 Jan 18, 2023 @ 7:48pm
KnowsRecipe(Lua) Crash in line 6234 ,and Code solution for this
Someone provided a log on my mod, like my mod and your mod compatibility issue, but I can't reproduce it, the log is as follows.


[string "../mods/workshop-1505270912/modmain.lua"]:6234: attempt to compare number with nilLUA ERROR stack traceback:
../mods/workshop-1505270912/modmain.lua:6234 in(method)KnowsRecipe(Lua)<6214-6243>scripts/widgets/reduz/craftingmenn_hud.lua:264 in(method)RebuildRecipes(Lua)<254-319>scripts/widgets/reduzlcraftingmenu_hud.lua:236 in (method)Initialize (Lua)<235-244>scripts/widgets/reduzlcraftingmenu_hud.lua:114 in (local) fn(Lua)<113-115>
scriptslentityscript.lua:1152 in (method) PushEvent (Lua)<1139-1166>
scripts/prefabs/player_common.lua:723 in (field)fn (Lua)<685-734>scriptslscheduler.lua:186 in (method)OnTick(Lua)<164-216>
scripts/scheduler.lua:419 in (global) RunStaticScheduler (Lua)<417-425>scripts/update.lua:173 in() ?(Lua)<164-215>



My mod has also dealt with relevant areas that I think can be used to deal with these issues. These are my code:


local com_builder_replica = _G.require "components/builder_replica"
com_builder_replica.KnowsRecipe_old__npc_mod = com_builder_replica.KnowsRecipe
com_builder_replica.KnowsRecipe = function(self,recipe,ignore_tempbonus)
if recipe == nil then
print(" ++++++++++++++++++++++++++ com_builder_replica error : recipe is nil")
return false
end
local crash_flag ,ret = pcall(function()
local ret = {self:KnowsRecipe_old__npc_mod(recipe,ignore_tempbonus)}
return ret
end)
if crash_flag == true then -----
return unpack(ret)
else ----- crash happend
return false
end
end