public void updateTrackedEntities() {
    ArrayList arraylist = new ArrayList();
    Iterator iterator = trackedEntitySet.iterator();

    do {
      if (!iterator.hasNext()) {
        break;
      }

      EntityTrackerEntry entitytrackerentry = (EntityTrackerEntry) iterator.next();
      entitytrackerentry.updatePlayerList(field_72795_a.playerEntities);

      if (entitytrackerentry.playerEntitiesUpdated
          && (entitytrackerentry.trackedEntity instanceof EntityPlayerMP)) {
        arraylist.add((EntityPlayerMP) entitytrackerentry.trackedEntity);
      }
    } while (true);

    for (Iterator iterator1 = arraylist.iterator(); iterator1.hasNext(); ) {
      EntityPlayerMP entityplayermp = (EntityPlayerMP) iterator1.next();
      EntityPlayerMP entityplayermp1 = entityplayermp;
      Iterator iterator2 = trackedEntitySet.iterator();

      while (iterator2.hasNext()) {
        EntityTrackerEntry entitytrackerentry1 = (EntityTrackerEntry) iterator2.next();

        if (entitytrackerentry1.trackedEntity != entityplayermp1) {
          entitytrackerentry1.updatePlayerEntity(entityplayermp1);
        }
      }
    }
  }
  public void trackEntity(Entity par1Entity) {
    if (par1Entity instanceof EntityPlayerMP) {
      trackEntity(par1Entity, 512, 2);
      EntityPlayerMP entityplayermp = (EntityPlayerMP) par1Entity;
      Iterator iterator = trackedEntitySet.iterator();

      do {
        if (!iterator.hasNext()) {
          break;
        }

        EntityTrackerEntry entitytrackerentry = (EntityTrackerEntry) iterator.next();

        if (entitytrackerentry.trackedEntity != entityplayermp) {
          entitytrackerentry.updatePlayerEntity(entityplayermp);
        }
      } while (true);
    } else if (par1Entity instanceof EntityFishHook) {
      trackEntity(par1Entity, 64, 5, true);
    } else if (par1Entity instanceof EntityArrow) {
      trackEntity(par1Entity, 64, 20, false);
    } else if (par1Entity instanceof EntitySmallFireball) {
      trackEntity(par1Entity, 64, 10, false);
    } else if (par1Entity instanceof EntityFireball) {
      trackEntity(par1Entity, 64, 10, false);
    } else if (par1Entity instanceof EntitySnowball) {
      trackEntity(par1Entity, 64, 10, true);
    } else if (par1Entity instanceof EntityEnderPearl) {
      trackEntity(par1Entity, 64, 10, true);
    } else if (par1Entity instanceof EntityEnderEye) {
      trackEntity(par1Entity, 64, 4, true);
    } else if (par1Entity instanceof EntityEgg) {
      trackEntity(par1Entity, 64, 10, true);
    } else if (par1Entity instanceof EntityPotion) {
      trackEntity(par1Entity, 64, 10, true);
    } else if (par1Entity instanceof EntityExpBottle) {
      trackEntity(par1Entity, 64, 10, true);
    } else if (par1Entity instanceof EntityItem) {
      trackEntity(par1Entity, 64, 20, true);
    } else if (par1Entity instanceof EntityMinecart) {
      trackEntity(par1Entity, 80, 3, true);
    } else if (par1Entity instanceof EntityBoat) {
      trackEntity(par1Entity, 80, 3, true);
    } else if (par1Entity instanceof EntitySquid) {
      trackEntity(par1Entity, 64, 3, true);
    } else if (par1Entity instanceof IAnimals) {
      trackEntity(par1Entity, 80, 3, true);
    } else if (par1Entity instanceof EntityDragon) {
      trackEntity(par1Entity, 160, 3, true);
    } else if (par1Entity instanceof EntityTNTPrimed) {
      trackEntity(par1Entity, 160, 10, true);
    } else if (par1Entity instanceof EntityFallingSand) {
      trackEntity(par1Entity, 160, 20, true);
    } else if (par1Entity instanceof EntityPainting) {
      trackEntity(par1Entity, 160, 0x7fffffff, false);
    } else if (par1Entity instanceof EntityXPOrb) {
      trackEntity(par1Entity, 160, 20, true);
    } else if (par1Entity instanceof EntityEnderCrystal) {
      trackEntity(par1Entity, 256, 0x7fffffff, false);
    }

    ModLoaderMp.handleEntityTrackers(this, par1Entity);
  }