53 lines
2.1 KiB
Diff
53 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
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
|