From 2b13c24a2d63dc538bf6bb741157f40354159084 Mon Sep 17 00:00:00 2001 From: Mads Volder Date: Fri, 21 Aug 2026 16:05:55 +0200 Subject: [PATCH] Implement PrePlayerAttackEntityEvent for sweep attack. --- .../world/entity/player/Player.java.patch | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/paper-server/patches/sources/net/minecraft/world/entity/player/Player.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/player/Player.java.patch index fb7007df9e5c..01da888cd0c8 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/player/Player.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/player/Player.java.patch @@ -334,9 +334,21 @@ } } -@@ -1161,9 +_,12 @@ +@@ -1160,10 +_,24 @@ + && !this.isAlliedTo(nearby) && !(nearby instanceof ArmorStand armorStand && armorStand.isMarker()) && this.distanceToSqr(nearby) < 9.0) { ++ ++ if(damageSource.getDirectEntity() instanceof Player player) { ++ io.papermc.paper.event.player.PrePlayerAttackEntityEvent playerAttackEntityEvent = new io.papermc.paper.event.player.PrePlayerAttackEntityEvent( ++ (org.bukkit.entity.Player) player.getBukkitEntity(), ++ nearby.getBukkitEntity(), ++ true ++ ); ++ if(!playerAttackEntityEvent.callEvent()) ++ continue; ++ } ++ float enchantedDamage = this.getEnchantedDamage(nearby, var12, damageSource) * attackStrengthScale; - if (nearby.hurtServer(serverLevel, damageSource, enchantedDamage)) { + // Paper start - Only apply knockback if the event is not canceled