From f498aabe455379ad40b6b98bdbcb1639625ef591 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Mon, 20 May 2019 03:27:00 +0200 Subject: [PATCH] SPIGOT-4898: Call EntityChangeBlockEvent / EntityPickupItemEvent for foxes --- nms-patches/EntityFox.patch | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 nms-patches/EntityFox.patch diff --git a/nms-patches/EntityFox.patch b/nms-patches/EntityFox.patch new file mode 100644 index 0000000000..e08c7ccf9e --- /dev/null +++ b/nms-patches/EntityFox.patch @@ -0,0 +1,61 @@ +--- a/net/minecraft/server/EntityFox.java ++++ b/net/minecraft/server/EntityFox.java +@@ -267,8 +267,8 @@ + private List ek() { + List list = Lists.newArrayList(); + +- list.add(((Optional) this.datawatcher.get(EntityFox.bB)).orElse((Object) null)); +- list.add(((Optional) this.datawatcher.get(EntityFox.bD)).orElse((Object) null)); ++ list.add(((Optional) this.datawatcher.get(EntityFox.bB)).orElse(null)); // CraftBukkit - decompile error ++ list.add(((Optional) this.datawatcher.get(EntityFox.bD)).orElse(null)); // CraftBukkit - decompile error + return list; + } + +@@ -401,7 +401,7 @@ + protected void a(EntityItem entityitem) { + ItemStack itemstack = entityitem.getItemStack(); + +- if (this.g(itemstack)) { ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(this, entityitem, itemstack.getCount() - 1, !this.g(itemstack)).isCancelled()) { // CraftBukkit - call EntityPickupItemEvent + int i = itemstack.getCount(); + + if (i > 1) { +@@ -944,6 +944,11 @@ + int i = (Integer) iblockdata.get(BlockSweetBerryBush.a); + + iblockdata.set(BlockSweetBerryBush.a, 1); ++ // CraftBukkit start - call EntityChangeBlockEvent ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(EntityFox.this, this.e, iblockdata.set(BlockSweetBerryBush.a, 1)).isCancelled()) { ++ return; ++ } ++ // CraftBukkit end + int j = 1 + EntityFox.this.world.random.nextInt(2) + (i == 3 ? 1 : 0); + ItemStack itemstack = EntityFox.this.getEquipment(EnumItemSlot.MAINHAND); + +@@ -983,7 +988,7 @@ + private int f; + + public r() { +- super(null); ++ super(); // CraftBukkit - decompile error + this.a(EnumSet.of(PathfinderGoal.Type.MOVE, PathfinderGoal.Type.LOOK)); + } + +@@ -1035,7 +1040,7 @@ + private int c; + + public t() { +- super(null); ++ super(); // CraftBukkit - decompile error + this.c = EntityFox.this.random.nextInt(140); + this.a(EnumSet.of(PathfinderGoal.Type.MOVE, PathfinderGoal.Type.LOOK, PathfinderGoal.Type.JUMP)); + } +@@ -1146,7 +1151,7 @@ + private EntityLiving k; + private int l; + +- public a(Class oclass, boolean flag, boolean flag1, Predicate predicate) { ++ public a(Class oclass, boolean flag, boolean flag1, Predicate predicate) { // CraftBukkit - decompile error + super(EntityFox.this, oclass, 10, flag, flag1, predicate); + } +