From 38fbe60d4689ff026f09767ac9a5656da0549c2d Mon Sep 17 00:00:00 2001 From: Travis Watkins Date: Mon, 26 May 2014 19:28:11 -0500 Subject: [PATCH] Handle null targets in target event. Fixes BUKKIT-5635 --- src/main/java/net/minecraft/server/EntityIronGolem.java | 6 +++++- src/main/java/net/minecraft/server/EntityZombie.java | 7 +++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java index 1f557a8aeb..c357110f8c 100644 --- a/src/main/java/net/minecraft/server/EntityIronGolem.java +++ b/src/main/java/net/minecraft/server/EntityIronGolem.java @@ -64,7 +64,11 @@ public class EntityIronGolem extends EntityGolem { // CraftBukkit start org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(this, (EntityLiving) entity, org.bukkit.event.entity.EntityTargetEvent.TargetReason.COLLISION); if (!event.isCancelled()) { - this.setGoalTarget(((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle()); + if (event.getTarget() == null) { + this.setGoalTarget(null); + } else { + this.setGoalTarget(((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle()); + } } // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java index 58666de6af..89fc4c5d75 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -191,9 +191,12 @@ public class EntityZombie extends EntityMonster { this.world.addEntity(entityzombie, CreatureSpawnEvent.SpawnReason.REINFORCEMENTS); // CraftBukkit // CraftBukkit start - call EntityTargetEvent org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(entityzombie, entityliving, EntityTargetEvent.TargetReason.REINFORCEMENT_TARGET); - entityliving = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle(); if (!event.isCancelled()) { - entityzombie.setGoalTarget(entityliving); + if (event.getTarget() == null) { + entityzombie.setGoalTarget(null); + } else { + entityzombie.setGoalTarget(((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle()); + } } // CraftBukkit end entityzombie.a((GroupDataEntity) null);