summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntitySlime.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/EntitySlime.java')
-rw-r--r--src/main/java/net/minecraft/server/EntitySlime.java25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
index 011c5ee8..5f12aaca 100644
--- a/src/main/java/net/minecraft/server/EntitySlime.java
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
@@ -1,6 +1,11 @@
package net.minecraft.server;
-import org.bukkit.event.entity.SlimeSplitEvent; // CraftBukkit
+// CraftBukkit start
+import org.bukkit.craftbukkit.entity.CraftEntity;
+import org.bukkit.craftbukkit.event.CraftEventFactory;
+import org.bukkit.event.entity.EntityTargetEvent;
+import org.bukkit.event.entity.SlimeSplitEvent;
+// CraftBukkit end
public class EntitySlime extends EntityLiving implements IMonster {
@@ -9,6 +14,7 @@ public class EntitySlime extends EntityLiving implements IMonster {
public float c;
public float d;
private int jumpDelay = 0;
+ private Entity lastTarget; // CraftBukkit
public EntitySlime(World world) {
super(world);
@@ -110,7 +116,22 @@ public class EntitySlime extends EntityLiving implements IMonster {
protected void bq() {
this.bn();
- EntityHuman entityhuman = this.world.findNearbyVulnerablePlayer(this, 16.0D); // CraftBukkit TODO: EntityTargetEvent
+ // CraftBukkit start
+ Entity entityhuman = this.world.findNearbyVulnerablePlayer(this, 16.0D); // EntityHuman -> Entity
+ EntityTargetEvent event = null;
+
+ if (entityhuman != null && !entityhuman.equals(lastTarget)) {
+ event = CraftEventFactory.callEntityTargetEvent(this, entityhuman, EntityTargetEvent.TargetReason.CLOSEST_PLAYER);
+ } else if (lastTarget != null && entityhuman == null) {
+ event = CraftEventFactory.callEntityTargetEvent(this, entityhuman, EntityTargetEvent.TargetReason.FORGOT_TARGET);
+ }
+
+ if (event != null && !event.isCancelled()) {
+ entityhuman = event.getTarget() == null ? null : ((CraftEntity) event.getTarget()).getHandle();
+ }
+
+ this.lastTarget = entityhuman;
+ // CraftBukkit end
if (entityhuman != null) {
this.a(entityhuman, 10.0F, 20.0F);