Fixed EntityTame event.

This commit is contained in:
EvilSeph 2011-06-12 23:38:35 -04:00
parent e2c9e92d98
commit 6f1d6a4ca8
2 changed files with 25 additions and 21 deletions

View File

@ -307,25 +307,23 @@ public class EntityWolf extends EntityAnimal {
}
if (!this.world.isStatic) {
// CraftBukkit start
if (this.random.nextInt(3) == 0) {
// CraftBukkit start
EntityTameEvent event = CraftEventFactory.callEntityTameEvent(this, entityhuman);
if (event.isCancelled()) {
return false;
}
if (!event.isCancelled()) {
// CraftBukkit end
this.d(true);
this.a((PathEntity) null);
this.setSitting(true);
this.health = 20;
this.a(entityhuman.name);
this.a(true);
this.world.a(this, (byte) 7);
} else {
this.a(false);
this.world.a(this, (byte) 6);
this.d(true);
this.a((PathEntity) null);
this.setSitting(true);
this.health = 20;
this.a(entityhuman.name);
this.a(true);
this.world.a(this, (byte) 7);
} else {
this.a(false);
this.world.a(this, (byte) 6);
}
}
}
@ -421,12 +419,18 @@ public class EntityWolf extends EntityAnimal {
}
public void d(boolean flag) {
byte b0 = this.datawatcher.a(16);
// CraftBukkit start
EntityTameEvent event = CraftEventFactory.callEntityTameEvent(this, null);
if (flag) {
this.datawatcher.b(16, Byte.valueOf((byte) (b0 | 4)));
} else {
this.datawatcher.b(16, Byte.valueOf((byte) (b0 & -5)));
if (!event.isCancelled()) {
// CraftBukkit end
byte b0 = this.datawatcher.a(16);
if (flag) {
this.datawatcher.b(16, Byte.valueOf((byte) (b0 | 4)));
} else {
this.datawatcher.b(16, Byte.valueOf((byte) (b0 & -5)));
}
}
}
}

View File

@ -238,7 +238,7 @@ public class CraftEventFactory {
*/
public static EntityTameEvent callEntityTameEvent(EntityLiving entity, EntityHuman tamer) {
org.bukkit.entity.Entity bukkitEntity = entity.getBukkitEntity();
org.bukkit.entity.AnimalTamer bukkitTamer = (AnimalTamer) tamer.getBukkitEntity();
org.bukkit.entity.AnimalTamer bukkitTamer = (tamer != null ? (AnimalTamer) tamer.getBukkitEntity() : null);
CraftServer craftServer = (CraftServer) bukkitEntity.getServer();
EntityTameEvent event = new EntityTameEvent(bukkitEntity, bukkitTamer);