aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0078-Ability-to-apply-mending-to-XP-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0078-Ability-to-apply-mending-to-XP-API.patch')
-rw-r--r--patches/api/0078-Ability-to-apply-mending-to-XP-API.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/patches/api/0078-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0078-Ability-to-apply-mending-to-XP-API.patch
new file mode 100644
index 0000000000..bb3d96e6f1
--- /dev/null
+++ b/patches/api/0078-Ability-to-apply-mending-to-XP-API.patch
@@ -0,0 +1,53 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+Date: Wed, 20 Dec 2017 17:38:07 -0500
+Subject: [PATCH] Ability to apply mending to XP API
+
+This allows plugins that give players the ability to apply the experience
+points to the Item Mending formula, which will repair an item instead
+of giving the player experience points.
+
+Both an API To standalone mend, and apply mending logic to .giveExp has been added.
+
+diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
+index d470b26abbf54514e498d81d68af566e2af0a63f..77a740fb62a9c442c9b67943f8775a824cf2617f 100644
+--- a/src/main/java/org/bukkit/entity/Player.java
++++ b/src/main/java/org/bukkit/entity/Player.java
+@@ -1548,6 +1548,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ */
+ public void resetPlayerWeather();
+
++ // Paper start
++ /**
++ * Gives the player the amount of experience specified.
++ *
++ * @param amount Exp amount to give
++ */
++ public default void giveExp(int amount) {
++ giveExp(amount, false);
++ }
+ /**
+ * Gets the player's cooldown between picking up experience orbs.
+ *
+@@ -1573,8 +1582,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ * Gives the player the amount of experience specified.
+ *
+ * @param amount Exp amount to give
++ * @param applyMending Mend players items with mending, with same behavior as picking up orbs. calls {@link #applyMending(int)}
+ */
+- public void giveExp(int amount);
++ public void giveExp(int amount, boolean applyMending);
++
++ /**
++ * Applies the mending effect to any items just as picking up an orb would.
++ *
++ * Can also be called with {@link #giveExp(int, boolean)} by passing true to applyMending
++ *
++ * @param amount Exp to apply
++ * @return the remaining experience
++ */
++ public int applyMending(int amount);
++ // Paper end
+
+ /**
+ * Gives the player the amount of experience levels specified. Levels can