Fruit being destroyed by something other than a player (such as tnt) causes a crash in coderfruit
Poikilos opened this issue · comments
Jacob Gustafson commented
2024-01-06 15:05:29: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'coderfruit' in callback node_on_timer(): Runtime error from mod 'coderfruit' in callback luaentity_Punch(): .../../games/bucket_game/mods/coderfood/coderfruit/init.lua:161: attempt to in
2024-01-06 15:05:29: ERROR[Main]: dex local 'inv' (a nil value)
2024-01-06 15:05:29: ERROR[Main]: stack traceback:
2024-01-06 15:05:29: ERROR[Main]: .../../games/bucket_game/mods/coderfood/coderfruit/init.lua:161: in function <.../../games/bucket_game/mods/coderfood/coderfruit/init.lua:156>
2024-01-06 15:05:29: ERROR[Main]: [C]: in function 'punch'
2024-01-06 15:05:29: ERROR[Main]: /home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:180: in function 'entity_physics'
2024-01-06 15:05:29: ERROR[Main]: /home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:379: in function 'boom'
2024-01-06 15:05:29: ERROR[Main]: /home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:485: in function </home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:484>
2024-01-06 15:05:29: ERROR[Main]: stack traceback:
2024-01-06 15:05:29: ERROR[Main]: [C]: in function 'punch'
2024-01-06 15:05:29: ERROR[Main]: /home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:180: in function 'entity_physics'
2024-01-06 15:05:29: ERROR[Main]: /home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:379: in function 'boom'
2024-01-06 15:05:29: ERROR[Main]: /home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:485: in function </home/redacted/minetest-rsync/bin/../mods/mock_tnt/init.lua:484>
fix via:
bucket_game/mods/coderfood/coderfruit/init.lua
- if coderfruit_disable_pickable then return end
+ if coderfruit_disable_pickable or not puncher:get_inventory() then return end
+ -- ^ if not puncher:get_inventory(), the fruit must have been hit by
+ -- an explosion or other HP-reducing event other than a player punch.