From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: HexedHero <6012891+HexedHero@users.noreply.github.com>
Date: Sun, 10 Apr 2022 06:21:19 +0100
Subject: [PATCH] Add pre-unbreaking amount to PlayerItemDamageEvent


diff --git a/src/main/java/org/bukkit/event/player/PlayerItemDamageEvent.java b/src/main/java/org/bukkit/event/player/PlayerItemDamageEvent.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/event/player/PlayerItemDamageEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerItemDamageEvent.java
@@ -0,0 +0,0 @@ public class PlayerItemDamageEvent extends PlayerEvent implements Cancellable {
     private static final HandlerList handlers = new HandlerList();
     private final ItemStack item;
     private int damage;
+    private int originalDamage; // Paper - Add pre-reduction damage
     private boolean cancelled = false;
 
+    @Deprecated // Paper - Add pre-reduction damage
     public PlayerItemDamageEvent(@NotNull Player player, @NotNull ItemStack what, int damage) {
+        // Paper start - Add pre-reduction damage
+        this(player, what, damage, damage);
+    }
+
+    public PlayerItemDamageEvent(@NotNull Player player, @NotNull ItemStack what, int damage, int originalDamage) {
         super(player);
         this.item = what;
         this.damage = damage;
+        this.originalDamage = originalDamage;
+        // Paper end
     }
 
     /**
@@ -0,0 +0,0 @@ public class PlayerItemDamageEvent extends PlayerEvent implements Cancellable {
         return damage;
     }
 
+    // Paper start - Add pre-reduction damage
+    /**
+     * Gets the amount of durability damage this item would have taken before
+     * the Unbreaking reduction. If the item has no Unbreaking level then
+     * this value will be the same as the {@link #getDamage()} value.
+     *
+     * @return pre-reduction damage amount
+     */
+    public int getOriginalDamage() {
+        return originalDamage;
+    }
+    // Paper end
+
     public void setDamage(int damage) {
         this.damage = damage;
     }