diff options
Diffstat (limited to 'nms-patches/PathfinderGoalTame.patch')
-rw-r--r-- | nms-patches/PathfinderGoalTame.patch | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/nms-patches/PathfinderGoalTame.patch b/nms-patches/PathfinderGoalTame.patch index 2d4f3e99..395bffec 100644 --- a/nms-patches/PathfinderGoalTame.patch +++ b/nms-patches/PathfinderGoalTame.patch @@ -1,31 +1,12 @@ --- a/net/minecraft/server/PathfinderGoalTame.java +++ b/net/minecraft/server/PathfinderGoalTame.java -@@ -45,7 +45,8 @@ +@@ -51,7 +51,8 @@ int i = this.entity.getTemper(); int j = this.entity.getMaxDomestication(); -- if (j > 0 && this.entity.bc().nextInt(j) < i) { +- if (j > 0 && this.entity.getRandom().nextInt(j) < i) { + // CraftBukkit - fire EntityTameEvent -+ if (j > 0 && this.entity.bc().nextInt(j) < i && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.entity, (EntityHuman) this.entity.passenger).isCancelled() && this.entity.passenger instanceof EntityHuman) { - this.entity.h((EntityHuman) this.entity.passenger); ++ if (j > 0 && this.entity.getRandom().nextInt(j) < i && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.entity, ((org.bukkit.craftbukkit.entity.CraftHumanEntity) this.entity.getBukkitEntity().getPassenger()).getHandle()).isCancelled()) { + this.entity.g((EntityHuman) entity); this.entity.world.broadcastEntityEffect(this.entity, (byte) 7); return; -@@ -54,8 +55,16 @@ - this.entity.u(5); - } - -- this.entity.passenger.mount((Entity) null); -- this.entity.passenger = null; -+ // CraftBukkit start - Handle dismounting to account for VehicleExitEvent being fired. -+ if (this.entity.passenger != null) { -+ this.entity.passenger.mount((Entity) null); -+ // If the entity still has a passenger, then a plugin cancelled the event. -+ if (this.entity.passenger != null) { -+ return; -+ } -+ } -+ // this.entity.passenger = null; -+ // CraftBukkit end - this.entity.cW(); - this.entity.world.broadcastEntityEffect(this.entity, (byte) 6); - } |