@@ -244,13 +244,23 @@ bones.register_collect_items(function(player)
244244 local items = {}
245245 local player_inv = player :get_inventory ()
246246 for _ , list_name in ipairs (bones .player_inventory_lists ) do
247- table .insert_all (items , player_inv :get_list (list_name ) or {})
247+ local inv_list = player_inv :get_list (list_name ) or {}
248+ for _ , inv_slot in ipairs (inv_list ) do
249+ if inv_slot :get_count () > 0 then
250+ table.insert (items , inv_slot )
251+ end
252+ end
253+
248254 player_inv :set_list (list_name , {})
249255 end
250256 return items
251257end )
252258
253- local function collect_items (player )
259+ local function collect_items (player , player_name )
260+ if minetest .is_creative_enabled (player_name ) then
261+ return {}
262+ end
263+
254264 local items = {}
255265 for _ , cb in ipairs (collect_items_callbacks ) do
256266 table .insert_all (items , cb (player ))
@@ -321,9 +331,9 @@ minetest.register_on_dieplayer(function(player)
321331 local bones_position_message = minetest .settings :get_bool (" bones_position_message" ) == true
322332 local pos_string = minetest .pos_to_string (player :get_pos ())
323333
324- local items = collect_items (player )
334+ local items = collect_items (player , player_name )
325335
326- if bones_mode == " keep" or minetest . is_creative_enabled ( player_name ) or # items == 0 then
336+ if bones_mode == " keep" or # items == 0 then
327337 minetest .log (" action" , player_name .. " dies at " .. pos_string ..
328338 " . No bones placed" )
329339 if bones_position_message then
0 commit comments