From f140f4cbf9296f22330aff69faa8d2e555d044ce Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Thu, 19 Aug 2021 15:05:57 +0200 Subject: [PATCH] Fix register_on_wielditem_change --- minetest/wielditem_change.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/minetest/wielditem_change.lua b/minetest/wielditem_change.lua index 63387a9..289ce46 100644 --- a/minetest/wielditem_change.lua +++ b/minetest/wielditem_change.lua @@ -21,8 +21,7 @@ end} --+ Will be called once with player, nil, index, item on join register_on_wielditem_change = modlib.func.curry(table.insert, registered_on_wielditem_changes) -minetest.register_on_mods_loaded(function() - -- Other on_joinplayer / on_leaveplayer callbacks should execute first +local function register_callbacks() minetest.register_on_joinplayer(function(player) local item, index = player:get_wielded_item(), player:get_wield_index() players[player:get_player_name()] = { @@ -36,7 +35,16 @@ minetest.register_on_mods_loaded(function() minetest.register_on_leaveplayer(function(player) players[player:get_player_name()] = nil end) -end) +end + +-- Other on_joinplayer / on_leaveplayer callbacks should execute first +if minetest.get_current_modname() then + -- Loaded during load time, register callbacks after load time + minetest.register_on_mods_loaded(register_callbacks) +else + -- Loaded after load time, register callbacks immediately + register_callbacks() +end minetest.register_globalstep(function() for _, player in pairs(minetest.get_connected_players()) do