From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: aerulion <aerulion@gmail.com>
Date: Mon, 21 Aug 2023 04:36:07 +0200
Subject: [PATCH] Expose clicked BlockFace during BlockDamageEvent


diff --git a/src/main/java/org/bukkit/event/block/BlockDamageEvent.java b/src/main/java/org/bukkit/event/block/BlockDamageEvent.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/event/block/BlockDamageEvent.java
+++ b/src/main/java/org/bukkit/event/block/BlockDamageEvent.java
@@ -0,0 +0,0 @@ public class BlockDamageEvent extends BlockEvent implements Cancellable {
     private boolean instaBreak;
     private boolean cancel;
     private final ItemStack itemstack;
+    private final org.bukkit.block.BlockFace blockFace; // Paper - Expose BlockFace
 
+    // Paper start - expose blockface
+    @Deprecated(forRemoval = true)
+    @io.papermc.paper.annotation.DoNotUse
     public BlockDamageEvent(@NotNull final Player player, @NotNull final Block block, @NotNull final ItemStack itemInHand, final boolean instaBreak) {
+        this(player, block, null, itemInHand, instaBreak); // Some plugin do bad things...
+    }
+
+    @org.jetbrains.annotations.ApiStatus.Internal // Paper
+    public BlockDamageEvent(@NotNull final Player player, @NotNull final Block block, @NotNull final org.bukkit.block.BlockFace blockFace, @NotNull final ItemStack itemInHand, final boolean instaBreak) { // Paper - Expose BlockFace
         super(block);
+        this.blockFace = blockFace;
+        // Paper end - expose blockface
         this.instaBreak = instaBreak;
         this.player = player;
         this.itemstack = itemInHand;
@@ -0,0 +0,0 @@ public class BlockDamageEvent extends BlockEvent implements Cancellable {
     public ItemStack getItemInHand() {
         return itemstack;
     }
+    // Paper start - Expose BlockFace
+    /**
+     * Gets the BlockFace the player is interacting with.
+     *
+     * @return The BlockFace clicked to damage the block
+     */
+    @NotNull
+    public org.bukkit.block.BlockFace getBlockFace() {
+        if (this.blockFace == null) {
+            throw new IllegalStateException("BlockFace is not available for this event, most likely due to a bad constructor call by a plugin");
+        }
+        return this.blockFace;
+    }
+    //Paper end
 
     @Override
     public boolean isCancelled() {
