}
@Override
public boolean update()
{
EntityLiving entity = this.getEntityHandle();
NMSUtil.getControllerLook(entity).a(this.m_target, 30, 30);
if(--this.m_moveTick <= 0)
{
this.m_moveTick = 4 + entity.aI().nextInt(7);
this.getRemoteEntity().move((LivingEntity)this.m_target.getBukkitEntity(), this.getRemoteEntity().getSpeed());
}
this.m_attackTick = Math.max(this.m_attackTick - 1, 0);
double minDist = entity.width * 2 * entity.width * 2;
if(this.m_attackTick <= 0 && entity.e(this.m_target.locX, this.m_target.boundingBox.b, this.m_target.locZ) <= minDist)
{
this.m_attackTick = 20;
if(entity.be() != null)
this.getEntityHandle().aR();
this.attack((LivingEntity)this.m_target.getBukkitEntity());
}
return true;