--- a/net/minecraft/world/item/component/BlocksAttacks.java
+++ b/net/minecraft/world/item/component/BlocksAttacks.java
@@ -86,10 +_,14 @@
             );
     }
 
-    public void disable(ServerLevel level, LivingEntity entity, float duration, ItemStack stack) {
+    public void disable(ServerLevel level, LivingEntity entity, float duration, ItemStack stack, LivingEntity attacker) { // Paper
         int i = this.disableBlockingForTicks(duration);
         if (i > 0) {
             if (entity instanceof Player player) {
+                // Paper start
+                final io.papermc.paper.event.player.PlayerShieldDisableEvent shieldDisableEvent = new io.papermc.paper.event.player.PlayerShieldDisableEvent((org.bukkit.entity.Player) player.getBukkitEntity(), attacker.getBukkitEntity(), i);
+                if (!shieldDisableEvent.callEvent()) return;
+                // Paper end
                 player.getCooldowns().addCooldown(stack, i);
             }
 
