mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-18 20:53:09 +01:00
da7138233f
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: ed0ec489 SPIGOT-7965: Unknown TransformReason for Hoglins 9db03457 SPIGOT-7964: Fix typo in Deprecation annotation d14119af PR-1082: Add "since" to Deprecation annotations e8a318d4 PR-1067: Add method to get Advancement requirements CraftBukkit Changes: 40dd796db SPIGOT-7971: NotSerializableException on serialize CraftUseCooldownComponent fa85c5e0a SPIGOT-7968: ProjectileHitEvent not trigerred when arrow hits entity b75b792ec SPIGOT-7970: World#getMaxHeight() returning incorrect value 2b9a094bb SPIGOT-7965: Unknown TransformReason for Hoglins fd3f5a380 SPIGOT-7966: Some trees do not generate with #generateTree f2822317c PR-1515: Add a Class reader and Class node argument provider 07abf6852 PR-1514: Add a test case for ClassTraverser a7577cb24 Fix Inventory#addItem not respecting max stack size 066a74e74 PR-1490: Add method to get Advancement requirements 4a1df30e4 PR-1512: Test Art class based on specific values instead of the implementation, to better catch implementation changes 53254c56f PR-1503: Simplify CAS loop to getAndSet e9447dc5e Make BlockDataMeta#setBlockData hide unspecified states dd08a7120 SPIGOT-7960: Fix inconsistency between natural item drop coordinates e9e8ed753 SPIGOT-7960: Improve natural item drop methods Spigot Changes: 60c9969b Rebuild patches
86 lines
4 KiB
Diff
86 lines
4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Thu, 20 Jan 2022 18:11:44 -0800
|
|
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 cfbd0b42ae0d7c083467e9c3139fd1ed99d9e94b..f0533271dd38276e210061f8767a8acc0fef2a64 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java
|
|
@@ -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 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, repairAmount / 2);
|
|
+ }
|
|
+
|
|
+ @org.jetbrains.annotations.ApiStatus.Internal
|
|
+ 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;
|
|
this.slot = slot;
|
|
this.experienceOrb = experienceOrb;
|
|
this.repairAmount = repairAmount;
|
|
+ // Paper start
|
|
+ this.consumedExperience = consumedExperience;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Get the operation used to calculate xp used based on
|
|
+ * the set repair amount. Used to calculate how much of
|
|
+ * 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() {
|
|
+ throw new UnsupportedOperationException("Enchantments use effects to compute xp to durability since 1.21.");
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets the operation used to calculate xp used based on
|
|
+ * the set repair amount. Used to calculate how much of
|
|
+ * 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) {
|
|
+ throw new UnsupportedOperationException("Enchantments use effects to compute xp to durability since 1.21.");
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Helper method to get the amount of experience that will be consumed.
|
|
+ * This method just returns the result of inputting {@link #getRepairAmount()}
|
|
+ * into the function {@link #getDurabilityToXpOperation()}.
|
|
+ *
|
|
+ * @return the amount of xp that will be consumed
|
|
+ */
|
|
+ public int getConsumedExperience() {
|
|
+ return this.consumedExperience;
|
|
}
|
|
+ // Paper end
|
|
|
|
@Deprecated(since = "1.19.2")
|
|
public PlayerItemMendEvent(@NotNull Player who, @NotNull ItemStack item, @NotNull ExperienceOrb experienceOrb, int repairAmount) {
|