From 78ce389df2c5e37b943a112949a7af604eb5f38f Mon Sep 17 00:00:00 2001 From: Senmori Date: Tue, 21 Nov 2017 10:17:57 +1100 Subject: SPIGOT-1505: PlayerItemMendEvent --- .../bukkit/event/player/PlayerItemMendEvent.java | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java (limited to 'src/main/java/org') diff --git a/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java b/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java new file mode 100644 index 00000000..ae9e1c90 --- /dev/null +++ b/src/main/java/org/bukkit/event/player/PlayerItemMendEvent.java @@ -0,0 +1,92 @@ +package org.bukkit.event.player; + +import org.bukkit.entity.ExperienceOrb; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.inventory.ItemStack; + +/** + * Represents when a player has an item repaired via the Mending enchantment. + *
+ * This event is fired directly before the {@link PlayerExpChangeEvent}, and the + * results of this event directly affect the {@link PlayerExpChangeEvent}. + */ +public class PlayerItemMendEvent extends PlayerEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + // + private final ItemStack item; + private final ExperienceOrb experienceOrb; + private int repairAmount; + private boolean cancelled; + + public PlayerItemMendEvent(Player who, ItemStack item, ExperienceOrb experienceOrb, int repairAmount) { + super(who); + this.item = item; + this.experienceOrb = experienceOrb; + this.repairAmount = repairAmount; + } + + /** + * Get the {@link ItemStack} to be repaired. + * + * This is not necessarily the item the player is holding. + * + * @return the item to be repaired + */ + public ItemStack getItem() { + return item; + } + + /** + * Get the experience orb triggering the event. + * + * @return the experience orb + */ + public ExperienceOrb getExperienceOrb() { + return experienceOrb; + } + + /** + * Get the amount the item is to be repaired. + * + * The default value is twice the value of the consumed experience orb + * or the remaining damage left on the item, whichever is smaller. + * + * @return how much damage will be repaired by the experience orb + */ + public int getRepairAmount() { + return repairAmount; + } + + /** + * Set the amount the item will be repaired. + * + * Half of this value will be subtracted from the experience orb which initiated this event. + * + * @param amount how much damage will be repaired on the item + */ + public void setRepairAmount(int amount) { + this.repairAmount = amount; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } +} -- cgit v1.2.3