--- a/net/minecraft/server/EntityTurtle.java +++ b/net/minecraft/server/EntityTurtle.java @@ -252,7 +252,9 @@ protected void m() { super.m(); if (!this.isBaby() && this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) { + this.forceDrops = true; // CraftBukkit this.a((IMaterial) Items.SCUTE, 1); + this.forceDrops = false; // CraftBukkit } } @@ -279,7 +281,9 @@ @Override public void onLightningStrike(WorldServer worldserver, EntityLightning entitylightning) { + org.bukkit.craftbukkit.event.CraftEventFactory.entityDamage = entitylightning; // CraftBukkit this.damageEntity(DamageSource.LIGHTNING, Float.MAX_VALUE); + org.bukkit.craftbukkit.event.CraftEventFactory.entityDamage = null; // CraftBukkit } static class g extends NavigationGuardian { @@ -438,8 +442,12 @@ } else if (this.g.bv > 200) { World world = this.g.world; + // CraftBukkit start + if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.g, this.e.up(), (IBlockData) Blocks.TURTLE_EGG.getBlockData().set(BlockTurtleEgg.b, this.g.random.nextInt(4) + 1)).isCancelled()) { world.playSound((EntityHuman) null, blockposition, SoundEffects.ENTITY_TURTLE_LAY_EGG, SoundCategory.BLOCKS, 0.3F, 0.9F + world.random.nextFloat() * 0.2F); world.setTypeAndData(this.e.up(), (IBlockData) Blocks.TURTLE_EGG.getBlockData().set(BlockTurtleEgg.b, this.g.random.nextInt(4) + 1), 3); + } + // CraftBukkit end this.g.setHasEgg(false); this.g.u(false); this.g.setLoveTicks(600); @@ -519,7 +527,7 @@ --this.e; return false; } else { - this.d = this.b.world.a(EntityTurtle.i.a, (EntityLiving) this.b); + this.d = this.b.world.a(this.a, (EntityLiving) this.b); // CraftBukkit - decompile error return this.d == null ? false : this.a(this.d.getItemInMainHand()) || this.a(this.d.getItemInOffHand()); } }