Do not crash when an exp orb attempts to mend an unrepairable item

This commit is contained in:
Shane Freeder 2024-06-23 14:04:58 +01:00
parent 76c2f16f57
commit 812701d901
No known key found for this signature in database
GPG key ID: A3F61EA5A085289C

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemMendEvent
diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
index a758b2456acac23095fe4619ae10300a034cb460..15844971ce2cca8c679ad3aaa2dfe160e6d0b564 100644
index a758b2456acac23095fe4619ae10300a034cb460..a58ff67052fb5f33782f8b5c83465ec03ef1d073 100644
--- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
+++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
@@ -354,7 +354,10 @@ public class ExperienceOrb extends Entity {
@ -14,7 +14,7 @@ index a758b2456acac23095fe4619ae10300a034cb460..15844971ce2cca8c679ad3aaa2dfe160
// CraftBukkit start
- org.bukkit.event.player.PlayerItemMendEvent event = CraftEventFactory.callPlayerItemMendEvent(player, this, itemstack, optional.get().inSlot(), k);
+ // Paper start - mending event
+ final int consumedExperience = k * amount / j;
+ final int consumedExperience = k > 0 ? k * amount / j : 0;
+ org.bukkit.event.player.PlayerItemMendEvent event = CraftEventFactory.callPlayerItemMendEvent(player, this, itemstack, optional.get().inSlot(), k, consumedExperience);
+ // Paper end - mending event
k = event.getRepairAmount();