--- a/net/minecraft/world/entity/ai/goal/TemptGoal.java
+++ b/net/minecraft/world/entity/ai/goal/TemptGoal.java
@@ -24,7 +_,7 @@
     private double pRotX;
     private double pRotY;
     @Nullable
-    protected Player player;
+    protected LivingEntity player; // CraftBukkit
     private int calmDown;
     private boolean isRunning;
     private final Predicate<ItemStack> items;
@@ -57,6 +_,15 @@
         } else {
             this.player = getServerLevel(this.mob)
                 .getNearestPlayer(this.targetingConditions.range(this.mob.getAttributeValue(Attributes.TEMPT_RANGE)), this.mob);
+            // CraftBukkit start
+            if (this.player != null) {
+                org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(this.mob, this.player, org.bukkit.event.entity.EntityTargetEvent.TargetReason.TEMPT);
+                if (event.isCancelled()) {
+                    return false;
+                }
+                this.player = (event.getTarget() == null) ? null : ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle();
+            }
+            // CraftBukkit end
             return this.player != null;
         }
     }
@@ -123,7 +_,7 @@
         this.mob.getNavigation().stop();
     }
 
-    protected void navigateTowards(Player player) {
+    protected void navigateTowards(LivingEntity player) { // Paper
         this.mob.getNavigation().moveTo(player, this.speedModifier);
     }
 
@@ -142,7 +_,7 @@
         }
 
         @Override
-        protected void navigateTowards(Player player) {
+        protected void navigateTowards(LivingEntity player) { // Paper
             Vec3 vec3 = player.getEyePosition().subtract(this.mob.position()).scale(this.mob.getRandom().nextDouble()).add(this.mob.position());
             this.mob.getMoveControl().setWantedPosition(vec3.x, vec3.y, vec3.z, this.speedModifier);
         }
