aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0378-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
blob: 5775b6f33cca66db9c0d6a16bc306586908c26fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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 2d049633998b3965ce0f4a6a4cea3169da0d5658..a2993c7434c9775483a1b4628f2f66454b0d666d 100644
--- a/src/main/java/org/bukkit/event/player/PlayerItemDamageEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerItemDamageEvent.java
@@ -15,12 +15,21 @@ 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
     }
 
     /**
@@ -42,6 +51,19 @@ 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;
     }