Poikilos / EnlivenMinetest

Minetest engine server management tools and ENLIVEN game installer/updater

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fruit being destroyed by something other than a player (such as tnt) causes a crash in coderfruit

Poikilos opened this issue · comments

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.