|
63 | 63 | import java.nio.file.StandardCopyOption; |
64 | 64 | import java.security.MessageDigest; |
65 | 65 | import java.util.ArrayList; |
| 66 | +import java.util.Collection; |
66 | 67 | import java.util.HashMap; |
67 | 68 | import java.util.HashSet; |
68 | 69 | import java.util.List; |
@@ -512,7 +513,9 @@ public ModDependencyDownloaded(String message) { |
512 | 513 | long end = System.currentTimeMillis(); |
513 | 514 | LOG.debug("Discovered {} dependency source candidates in {}ms", dependencySpecs.size(), end - start); |
514 | 515 | remoteMavenRepositories.addAll(dependencySpecs.stream() |
515 | | - .flatMap((dep) -> dep.repositories().stream()) |
| 516 | + .map(DepRoot::repositories) |
| 517 | + .filter(Objects::nonNull) |
| 518 | + .flatMap(Collection::stream) |
516 | 519 | .map(repo -> repo.endsWith("/") ? repo : repo + "/") |
517 | 520 | .collect(Collectors.toSet())); |
518 | 521 | localMavenRepositories.addAll(jijURLs.stream().map(URL::toString).map(repo -> repo.endsWith("/") ? repo : repo + "/").collect(Collectors.toSet())); |
@@ -563,11 +566,14 @@ public ModDependencyDownloaded(String message) { |
563 | 566 | new ScopedDep(it.source, it.mod, DependencyScope.ALWAYS, it.dep.always()), |
564 | 567 | new ScopedDep(it.source, it.mod, DependencyScope.DEV, it.dep.dev()), |
565 | 568 | new ScopedDep(it.source, it.mod, DependencyScope.OBF, it.dep.obf()))) |
566 | | - .flatMap(it -> Stream.concat(it.deps.common().stream().map(dep -> new ScopedSidedDep(it.source, it.mod, new ScopeSide(it.scope, DependencySide.COMMON), dep)), |
567 | | - Stream.concat( |
568 | | - it.deps.client().stream().map(dep -> new ScopedSidedDep(it.source, it.mod, new ScopeSide(it.scope, DependencySide.CLIENT), dep)), |
569 | | - it.deps.server().stream().map(dep -> new ScopedSidedDep(it.source, it.mod, new ScopeSide(it.scope, DependencySide.SERVER), dep)) |
570 | | - ))) |
| 569 | + .filter(it -> it.deps != null) |
| 570 | + .flatMap(it -> { |
| 571 | + Stream<ScopedSidedDep> result = null; |
| 572 | + result = concat(it, result, it.deps.common(), DependencySide.COMMON); |
| 573 | + result = concat(it, result, it.deps.client(), DependencySide.CLIENT); |
| 574 | + result = concat(it, result, it.deps.server(), DependencySide.SERVER); |
| 575 | + return result; |
| 576 | + }) |
571 | 577 | .map((scopedSidedDep) -> { |
572 | 578 | val source = scopedSidedDep.source; |
573 | 579 | val scope = scopedSidedDep.scope; |
@@ -614,6 +620,17 @@ public ModDependencyDownloaded(String message) { |
614 | 620 | return artifacts; |
615 | 621 | } |
616 | 622 |
|
| 623 | + private static Stream<ScopedSidedDep> concat(ScopedDep it, @Nullable Stream<ScopedSidedDep> prev, List<String> deps, DependencySide side) { |
| 624 | + if (deps != null) { |
| 625 | + val newStream = deps.stream().map(dep -> new ScopedSidedDep(it.source, it.mod, new ScopeSide(it.scope, side), dep)); |
| 626 | + if (prev == null) { |
| 627 | + return newStream; |
| 628 | + } |
| 629 | + return Stream.concat(prev, newStream); |
| 630 | + } |
| 631 | + return prev; |
| 632 | + } |
| 633 | + |
617 | 634 | public static Version parseVersion(String versionString) { |
618 | 635 | try { |
619 | 636 | val matcher = VERSION_PATTERN.matcher(versionString); |
|
0 commit comments