--- ../work/decompile-8eb82bde/net/minecraft/server/EntityOcelot.java 2014-12-10 18:34:37.228492560 +0000 +++ src/main/java/net/minecraft/server/EntityOcelot.java 2014-12-10 18:33:29.824493292 +0000 @@ -51,7 +51,7 @@ } protected boolean isTypeNotPersistent() { - return !this.isTamed() && this.ticksLived > 2400; + return !this.isTamed() /*&& this.ticksLived > 2400*/; // CraftBukkit } protected void aW() { @@ -95,15 +95,20 @@ public boolean r(Entity entity) { return entity.damageEntity(DamageSource.mobAttack(this), 3.0F); } - + + /* CraftBukkit start + // Function disabled as it has no special function anymore after + // setSitting is disabled. public boolean damageEntity(DamageSource damagesource, float f) { if (this.isInvulnerable(damagesource)) { return false; } else { - this.bk.setSitting(false); + // CraftBukkit - moved into EntityLiving.d(DamageSource, float) + // this.bk.setSitting(false); return super.damageEntity(damagesource, f); } } + // CraftBukkit end */ protected void dropDeathLoot(boolean flag, int i) {} @@ -124,7 +129,8 @@ } if (!this.world.isStatic) { - if (this.random.nextInt(3) == 0) { + // CraftBukkit - added event call and isCancelled check + if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, entityhuman).isCancelled()) { this.setTamed(true); this.setCatType(1 + this.world.random.nextInt(3)); this.setOwnerUUID(entityhuman.getUniqueID().toString()); @@ -231,7 +237,7 @@ entityocelot.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, 0.0F); entityocelot.setAgeRaw(-24000); - this.world.addEntity(entityocelot); + this.world.addEntity(entityocelot, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.OCELOT_BABY); // CraftBukkit - add SpawnReason } }