@Override
 public void updateTask() {
   EntityEnderGuardian guardian = getEntity();
   if (guardian.getAttackTarget() != null) {
     guardian.getLookHelper().setLookPositionWithEntity(guardian.getAttackTarget(), 30, 30);
   }
 }
  @Override
  public void resetTask() {
    cooldownTicks = 30;
    EntityEnderGuardian guardian = getEntity();
    if (guardian.getAttackTarget() != null) {
      Vec3 facing = guardian.getAttackTarget().getLook(1.0f);
      double x = guardian.getAttackTarget().posX - facing.xCoord * 3;
      double y = guardian.getAttackTarget().posY;
      double z = guardian.getAttackTarget().posZ - facing.zCoord * 3;

      guardian.setPosition(x, y, z);
      guardian.lastTickPosX = x;
      guardian.lastTickPosY = y;
      guardian.lastTickPosZ = z;
      guardian.worldObj.playSoundAtEntity(
          guardian,
          ((IArsMagicaBoss) guardian).getAttackSound(),
          1.0f,
          (float) (0.5 + guardian.getRNG().nextDouble() * 0.5f));
    }
    super.resetTask();
  }