mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-06 02:42:14 +01:00
2f92d4e00e
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: 01bb6ba7 PR-936: Add new PersistentDataContainer methods and clean up docs bc145b90 PR-940: Create registry for banner pattern and cat type CraftBukkit Changes: cb2ea54de SPIGOT-7440, PR-1292: Fire EntityTeleportEvent for end gateways 4fea66e44 PR-1299: Add new PersistentDataContainer methods and clean up docs b483a20db PR-1303: Create registry for banner pattern and cat type 4642dd526 SPIGOT-7535: Fix maps not having an ID and also call MapInitializeEvent in more places
72 lines
3.2 KiB
Diff
72 lines
3.2 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 5b2415c2c92127947a21dfe8d672d2b88ea457df..533531f69a8d549e184161eefe6e5bf8a9e85c05 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 {
|
|
private final ExperienceOrb experienceOrb;
|
|
private int repairAmount;
|
|
private boolean cancelled;
|
|
+ private java.util.function.IntUnaryOperator durabilityToXpOp; // 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);
|
|
+ }
|
|
+
|
|
+ @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) {
|
|
+ // Paper end
|
|
super(who);
|
|
this.item = item;
|
|
this.slot = slot;
|
|
this.experienceOrb = experienceOrb;
|
|
this.repairAmount = repairAmount;
|
|
+ // Paper start
|
|
+ this.durabilityToXpOp = durabilityToXpOp;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * 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
|
|
+ */
|
|
+ public @NotNull java.util.function.IntUnaryOperator getDurabilityToXpOperation() {
|
|
+ return this.durabilityToXpOp;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * 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
|
|
+ */
|
|
+ public void setDurabilityToXpOperation(@NotNull java.util.function.IntUnaryOperator durabilityToXpOp) {
|
|
+ com.google.common.base.Preconditions.checkNotNull(durabilityToXpOp);
|
|
+ this.durabilityToXpOp = durabilityToXpOp;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * 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.durabilityToXpOp.applyAsInt(this.getRepairAmount());
|
|
}
|
|
+ // Paper end
|
|
|
|
@Deprecated
|
|
public PlayerItemMendEvent(@NotNull Player who, @NotNull ItemStack item, @NotNull ExperienceOrb experienceOrb, int repairAmount) {
|