2021-06-11 14:02:28 +02:00
|
|
|
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
|
2021-06-13 07:13:07 +02:00
|
|
|
index fe0238c0b7c001b69ba6f5f50faf535df59a2351..4fa6080c151c3c2c0a7d95a2dc95692bd8bbee57 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
|
|
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
2021-06-13 07:13:07 +02:00
|
|
|
@@ -919,12 +919,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
2021-06-11 14:02:28 +02:00
|
|
|
*/
|
|
|
|
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);
|
|
|
|
+ }
|
|
|
|
/**
|
|
|
|
* 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
|