From b0e33793ec5b1e7a48cfc6713d6f10235f1e24d6 Mon Sep 17 00:00:00 2001 From: Eliy21 Date: Wed, 13 Dec 2023 20:04:15 +0000 Subject: [PATCH] Fix a potential bug that could bypass attack reach limit when a stronger attack breaches the invul --- mods/PLAYER/mcl_playerplus/init.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index ed72a43b4..83ea1a1aa 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -730,6 +730,15 @@ mcl_damage.register_modifier(function(obj, damage, reason) end, -200) minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage) + -- attack reach limit + if hitter and hitter:is_player() then + local player_pos = player:get_pos() + local hitter_pos = hitter:get_pos() + if vector.distance(player_pos, hitter_pos) > 3 then + damage = 0 + return damage + end + end -- damage invulnerability if hitter then local name = player:get_player_name() @@ -748,15 +757,6 @@ minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, mcl_playerplus_internal[name].invul_timestamp = time_now end end - -- attack reach limit - if hitter and hitter:is_player() then - local player_pos = player:get_pos() - local hitter_pos = hitter:get_pos() - if vector.distance(player_pos, hitter_pos) > 3 then - damage = 0 - return damage - end - end end) minetest.register_on_respawnplayer(function(player)