code: private void checkAndInstallAddOnsNotInstalled() {
          List<AddOn> runnableAddOns = new ArrayList<>();
          for (AddOn addOn : aoc.getAddOns()) {
              if (AddOn.InstallationStatus.NOT_INSTALLED == addOn.getInstallationStatus() && addOnLoaders.get(addOn.getId()) == null) {
                  AddOnRunRequirements reqs = addOn.calculateRunRequirements(aoc.getInstalledAddOns());
                  if (reqs.isRunnable()) {
                      runnableAddOns.add(addOn);
                  }
              }
          }
  
          for (AddOn addOn : runnableAddOns) {
              addAddOnImpl(addOn);
          }
      }
docs: Checks and installs all the add-ons whose installation status is {@code NOT_INSTALLED} that have (now) all required
  dependencies fulfilled.
  <p>
  Should be called after an installation of an add-on.
  
  @see #addAddOnImpl(AddOn)
  @see AddOn.InstallationStatus#NOT_INSTALLED
  @since 2.4.0