From f0e15ef75b19d01a56fc793b28d3bb65478358de Mon Sep 17 00:00:00 2001 From: AlphaBlend Date: Thu, 8 Sep 2016 08:48:33 -0700 Subject: [PATCH] Add source to PlayerExpChangeEvent diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java index c8698b2f67..3c888d6015 100644 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java @@ -185,7 +185,7 @@ public class EntityExperienceOrb extends Entity { } if (this.value > 0) { - entityhuman.giveExp(CraftEventFactory.callPlayerExpChangeEvent(entityhuman, this.value).getAmount()); // CraftBukkit - this.value -> event.getAmount() + entityhuman.giveExp(CraftEventFactory.callPlayerExpChangeEvent(entityhuman, this).getAmount()); // CraftBukkit - this.value -> event.getAmount() // Paper - supply experience orb object } this.die(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 5227c15d71..01961c5bdd 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -48,6 +48,7 @@ import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; import org.bukkit.entity.ThrownExpBottle; import org.bukkit.entity.ThrownPotion; +import org.bukkit.entity.ExperienceOrb; // Paper import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.block.*; @@ -664,6 +665,17 @@ public class CraftEventFactory { return event; } + // Paper start - Add orb + public static PlayerExpChangeEvent callPlayerExpChangeEvent(EntityHuman entity, EntityExperienceOrb entityOrb) { + Player player = (Player) entity.getBukkitEntity(); + ExperienceOrb source = (ExperienceOrb) entityOrb.getBukkitEntity(); + int expAmount = source.getExperience(); + PlayerExpChangeEvent event = new PlayerExpChangeEvent(player, source, expAmount); + Bukkit.getPluginManager().callEvent(event); + return event; + } + // Paper end + public static boolean handleBlockGrowEvent(World world, BlockPosition pos, IBlockData block) { return handleBlockGrowEvent(world, pos, block, 3); } -- 2.18.0