From 087a701e694e756f6b1e9ad8d07cec4bbe0e42dc Mon Sep 17 00:00:00 2001 From: AlphaBlend Date: Thu, 8 Sep 2016 08:48:33 -0700 Subject: [PATCH] Add source to PlayerExpChangeEvent --- .../minecraft/world/entity/ExperienceOrb.java.patch | 2 +- .../bukkit/craftbukkit/event/CraftEventFactory.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/paper-server/patches/sources/net/minecraft/world/entity/ExperienceOrb.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/ExperienceOrb.java.patch index ba47e3b21..b2160b88e 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/ExperienceOrb.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/ExperienceOrb.java.patch @@ -84,7 +84,7 @@ if (i > 0) { - player.giveExperiencePoints(i); -+ 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/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 40c298cf4..00267c18a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1168,6 +1168,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); }