diff options
-rw-r--r-- | patches/api/0400-Expand-PlayerItemMendEvent.patch | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/patches/api/0400-Expand-PlayerItemMendEvent.patch b/patches/api/0400-Expand-PlayerItemMendEvent.patch index 223922e05e..95b15a4753 100644 --- a/patches/api/0400-Expand-PlayerItemMendEvent.patch +++ b/patches/api/0400-Expand-PlayerItemMendEvent.patch @@ -5,23 +5,31 @@ Subject: [PATCH] Expand PlayerItemMendEvent diff --git a/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java b/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java -index 5b2415c2c92127947a21dfe8d672d2b88ea457df..533531f69a8d549e184161eefe6e5bf8a9e85c05 100644 +index 5b2415c2c92127947a21dfe8d672d2b88ea457df..2be94101e96a4ff011e872437ea24b15cb356ee3 100644 --- a/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java -@@ -23,14 +23,60 @@ public class PlayerItemMendEvent extends PlayerEvent implements Cancellable { +@@ -6,6 +6,7 @@ import org.bukkit.event.Cancellable; + import org.bukkit.event.HandlerList; + import org.bukkit.inventory.EquipmentSlot; + import org.bukkit.inventory.ItemStack; ++import org.jetbrains.annotations.Contract; + import org.jetbrains.annotations.NotNull; + + /** +@@ -23,14 +24,67 @@ public class PlayerItemMendEvent extends PlayerEvent implements Cancellable { private final ExperienceOrb experienceOrb; private int repairAmount; private boolean cancelled; -+ private java.util.function.IntUnaryOperator durabilityToXpOp; // Paper ++ private final int consumedExperience; // Paper + @Deprecated // Paper public PlayerItemMendEvent(@NotNull Player who, @NotNull ItemStack item, @NotNull EquipmentSlot slot, @NotNull ExperienceOrb experienceOrb, int repairAmount) { + // Paper start -+ this(who, item, slot, experienceOrb, repairAmount, amount -> amount / 2); ++ this(who, item, slot, experienceOrb, repairAmount, repairAmount / 2); + } + + @org.jetbrains.annotations.ApiStatus.Internal -+ public PlayerItemMendEvent(@NotNull Player who, @NotNull ItemStack item, @NotNull EquipmentSlot slot, @NotNull ExperienceOrb experienceOrb, int repairAmount, @NotNull java.util.function.IntUnaryOperator durabilityToXpOp) { ++ public PlayerItemMendEvent(@NotNull Player who, @NotNull ItemStack item, @NotNull EquipmentSlot slot, @NotNull ExperienceOrb experienceOrb, int repairAmount, int consumedExperience) { + // Paper end super(who); this.item = item; @@ -29,7 +37,7 @@ index 5b2415c2c92127947a21dfe8d672d2b88ea457df..533531f69a8d549e184161eefe6e5bf8 this.experienceOrb = experienceOrb; this.repairAmount = repairAmount; + // Paper start -+ this.durabilityToXpOp = durabilityToXpOp; ++ this.consumedExperience = consumedExperience; + } + + /** @@ -38,9 +46,13 @@ index 5b2415c2c92127947a21dfe8d672d2b88ea457df..533531f69a8d549e184161eefe6e5bf8 + * an XP orb will be consumed by this mend operation. + * + * @return the durability-to-xp operation ++ * @deprecated the mending enchantment uses enchantment effects to compute how much durability is granted per xp. ++ * The enchantment effects operation are too complex to reliably offer the inverse function. + */ ++ @Contract("-> fail") ++ @Deprecated(forRemoval = true, since = "1.21") + public @NotNull java.util.function.IntUnaryOperator getDurabilityToXpOperation() { -+ return this.durabilityToXpOp; ++ throw new UnsupportedOperationException("Enchantments use effects to compute xp to durability since 1.21."); + } + + /** @@ -49,10 +61,13 @@ index 5b2415c2c92127947a21dfe8d672d2b88ea457df..533531f69a8d549e184161eefe6e5bf8 + * an XP orb will be consumed by this mend operation. + * + * @param durabilityToXpOp the durability-to-xp operation ++ * @deprecated the mending enchantment uses enchantment effects to compute how much durability is granted per xp. ++ * The enchantment effects operation are too complex to reliably offer the inverse function. + */ ++ @Contract("_ -> fail") ++ @Deprecated(forRemoval = true, since = "1.21") + public void setDurabilityToXpOperation(@NotNull java.util.function.IntUnaryOperator durabilityToXpOp) { -+ com.google.common.base.Preconditions.checkNotNull(durabilityToXpOp); -+ this.durabilityToXpOp = durabilityToXpOp; ++ throw new UnsupportedOperationException("Enchantments use effects to compute xp to durability since 1.21."); + } + + /** @@ -63,7 +78,7 @@ index 5b2415c2c92127947a21dfe8d672d2b88ea457df..533531f69a8d549e184161eefe6e5bf8 + * @return the amount of xp that will be consumed + */ + public int getConsumedExperience() { -+ return this.durabilityToXpOp.applyAsInt(this.getRepairAmount()); ++ return this.consumedExperience; } + // Paper end |