diff --git a/mods/ENTITIES/mcl_mobs/init.lua b/mods/ENTITIES/mcl_mobs/init.lua index 8e33350bb..9013192dd 100644 --- a/mods/ENTITIES/mcl_mobs/init.lua +++ b/mods/ENTITIES/mcl_mobs/init.lua @@ -413,8 +413,10 @@ function mcl_mobs.register_arrow(name, def) ignore_gravity = true, damages_players = true, allow_punching = function(self, entity_def, projectile_def, object) + if def.allow_punching and not def.allow_punching(self, entity_def, projectile_def, object) then return false end if self.timer > 2 then return true end if self._owner and object == self._owner.object then return false end + return true end, on_collide_with_solid = function(self, pos, node, nodedef) diff --git a/mods/ENTITIES/mobs_mc/wither.lua b/mods/ENTITIES/mobs_mc/wither.lua index 0afb846b9..5f9fa32f1 100644 --- a/mods/ENTITIES/mobs_mc/wither.lua +++ b/mods/ENTITIES/mobs_mc/wither.lua @@ -466,6 +466,9 @@ mcl_mobs.register_arrow("mobs_mc:wither_skull", { rotate = 90, _lifetime = 15, on_punch = function(self) end, + allow_punching = function(self, _, _, object) + return object:get_luaentity().name ~= "mobs_mc:wither" + end, -- direct hit hit_player = function(self, player) @@ -519,6 +522,9 @@ mcl_mobs.register_arrow("mobs_mc:wither_skull_strong", { rotate = 90, _lifetime = 25, on_punch = function(self) end, + allow_punching = function(self, _, _, object) + return object:get_luaentity().name ~= "mobs_mc:wither" + end, -- direct hit hit_player = function(self, player)