From 0000000000000000000000000000000000000000 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/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java index 588deb938ca710de33bb42bb02c7015b8cbd8eef..f9ccde41eb20c1d53c438ddb40ca7cc5d2b89836 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -249,7 +249,7 @@ public class ExperienceOrb extends Entity { int i = this.repairPlayerItems(player, this.value); if (i > 0) { - player.giveExperiencePoints(CraftEventFactory.callPlayerExpChangeEvent(player, i).getAmount()); // CraftBukkit - this.value -> event.getAmount() + player.giveExperiencePoints(CraftEventFactory.callPlayerExpChangeEvent(player, this).getAmount()); // CraftBukkit - this.value -> event.getAmount() // Paper - supply experience orb object } --this.count; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 04b5b28e9127a0e94515d261f6d7d34230cbf447..87da5cfb3be65c57ada7dbfc1f345f27533df064 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1148,6 +1148,17 @@ public class CraftEventFactory { return event; } + // Paper start - Add orb + public static PlayerExpChangeEvent callPlayerExpChangeEvent(net.minecraft.world.entity.player.Player entity, net.minecraft.world.entity.ExperienceOrb 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(Level world, BlockPos pos, net.minecraft.world.level.block.state.BlockState block) { return CraftEventFactory.handleBlockGrowEvent(world, pos, block, 3); }