code: public void checkPermission(Permission perm, AddOnModel addOnModel) throws IzouPermissionException {
          try {
              rootPermission.checkPermission(perm, addOnModel);
              //its root
              return;
          } catch (IzouPermissionException ignored) {
              //its just not root
          }
          standardCheck.stream()
                  .filter(permissionModule -> permissionModule.canCheckPermission(perm))
                  .forEach(permissionModule -> permissionModule.checkPermission(perm, addOnModel));
      }
docs: checks the permission
  @param perm the permission
  @param addOnModel the associated AddOnModel
  @throws IzouPermissionException if the permission was not granted