Problem with overall item level showing instead of equipped.

I agree it's insane that they don't implement this... Here is your pseudo code to solve this issue (Blizz plz):

getHighestAverageIlvl(){
    slotToHighestIlvl; //map ie K,V = 'helm', 900
    slotToLeggoIlvl; //map ie K,V = 'helm', 940
    for (equippableItem in getEquippableItemsForPlayer()){
      slot = equippableItem.getSlot();
      itemIlvl = equippableItem.getIlvl;
      if (equippableItem.isLeggo()){
        slotToLeggoIlvl.put(slot, itemIlvl);
      }
      else if (slotToHighestIlvl.get(slot) < itemIlvl ){
        slotToHighestIlvl.put(slot, itemIlvl);
      }
    }
    largestSlotDiffForLeggo1 = 0;
    largestSlotDiffForLeggo2 = 0;
    largestDiff1Slot;
    largestDiff2Slot;
    for (slot in getAllPossibleSlots()){
      ilvlOfSlot = slotToHighestIlvl.get(slot);
      if (ilvlOfSlot == null){
        ilvlOfSlot = 0;
      }
      ilvlOfLeggo = slotToLeggoIlvl.get(slot);
      if (ilvlOfLeggo == null){
        ilvlOfLeggo = 0;
      }
      ilvlDiff = ilvlOfSlot - ilvlOfLeggo;
      if (largestSlotDiffForLeggo1 < ilvlDiff){
        largestDiff2Slot = largestDiff1Slot;
        largestDiff1Slot = slot;
        largestSlotDiffForLeggo2 = largestSlotDiffForLeggo1;
        largestSlotDiffForLeggo1 = ilvlDiff;
      } 
      else if (largestSlotDiffForLeggo2 < ilvlDiff){
        largestSlotDiffForLeggo2 = ilvlDiff;
        largestDiff2Slot = slot;
      }
    }
    leggo1 = slotToLeggoIlvl.get(largestDiff1Slot);
    slotToHighestIlvl.put(largestDiff1Slot, leggo1);
    leggo2 = slotToLeggoIlvl.get(largestDiff2Slot);
    slotToHighestIlvl.put(largestDiff1Slot, leggo1);
    return calculateAverageIlvlFromMap(slotToHighestIlvl); //trivial
}

Welp I guess that was todays lunch break lol. Inb4 someone finds a bug/better way <3

/r/wow Thread