diff --git a/mods/MISC/mcl_engine_workarounds/init.lua b/mods/MISC/mcl_engine_workarounds/init.lua index 2a7551c8..8c76e24f 100644 --- a/mods/MISC/mcl_engine_workarounds/init.lua +++ b/mods/MISC/mcl_engine_workarounds/init.lua @@ -204,3 +204,26 @@ local test_minetest_find_nodes_in_area_implementation_equivalence = function() end minetest.after( 0, test_minetest_find_nodes_in_area_implementation_equivalence ) + +--Workaround for Minetest bug #12073 +-- +minetest.register_on_joinplayer(function(p) + p:get_meta():set_string("joined","true") +end) +minetest.register_on_leaveplayer(function(p) + p:get_meta():set_string("joined","") +end) + +local function is_real_player(p) + if p:get_meta():get("joined") then return true end +end + +local mgcp = minetest.get_connected_players + +function minetest.get_connected_players() + local pp={} + for k,p in pairs(mgcp()) do + if is_real_player(p) then table.insert(pp,p) end + end + return pp +end