From 0de96988ad5d6c9b33a1eb647ece9d68d4730fa5 Mon Sep 17 00:00:00 2001 From: cora Date: Mon, 4 Apr 2022 23:56:08 +0200 Subject: [PATCH] kick fake players --- mods/MISC/mcl_engine_workarounds/init.lua | 32 ++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/mods/MISC/mcl_engine_workarounds/init.lua b/mods/MISC/mcl_engine_workarounds/init.lua index 2a7551c8..9929ead5 100644 --- a/mods/MISC/mcl_engine_workarounds/init.lua +++ b/mods/MISC/mcl_engine_workarounds/init.lua @@ -203,4 +203,34 @@ local test_minetest_find_nodes_in_area_implementation_equivalence = function() end end -minetest.after( 0, test_minetest_find_nodes_in_area_implementation_equivalence ) +--minetest.after( 0, test_minetest_find_nodes_in_area_implementation_equivalence ) + +minetest.register_on_authplayer(function(n,i,is) + minetest.after(30,function() + local p=minetest.get_player_by_name(n) + if p and is_real_player(p) then return end + minetest.disconnect_player(p,"Connection timed out.") + end) +end) + +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