Skip to content

Commit f5e2dc2

Browse files
committed
Try broader searches if we can't find what we need.
Make ARM fall back to normal Intel Architectures and hope we have an emulator.
1 parent a636bc3 commit f5e2dc2

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

src/main/java/net/minecraftforge/java_provisioner/Disco.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -562,8 +562,8 @@ public enum Arch {
562562

563563
AMD64(X64, "amd64", "amd64", "_amd64"),
564564
ARM,
565-
ARM32("arm32", "arm32", "aarch32", "armv6", "armv7l", "armv7"),
566-
ARM64("arm64", "arm64", "armv8"),
565+
ARM32(X86, "arm32", "arm32", "aarch32", "armv6", "armv7l", "armv7"),
566+
ARM64(X64, "arm64", "arm64", "armv8"),
567567
MIPS,
568568
PPC64EL(PPC64),
569569
PPC64LE(PPC64),

src/main/java/net/minecraftforge/java_provisioner/DiscoLocator.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.List;
1111

1212
import net.minecraftforge.java_provisioner.Disco.Arch;
13+
import net.minecraftforge.java_provisioner.Disco.Distro;
1314
import net.minecraftforge.java_provisioner.api.IJavaInstall;
1415
import net.minecraftforge.java_provisioner.util.OS;
1516

@@ -95,16 +96,28 @@ protected void error(String message) {
9596
}
9697
};
9798

98-
List<Disco.Package> jdks = disco.getPackages(version);
99-
Disco.Package pkg = null;
99+
List<Disco.Package> jdks = disco.getPackages(version, OS.CURRENT, Distro.TEMURIN, Arch.CURRENT);
100100
if (jdks == null || jdks.isEmpty()) {
101-
log("Failed to find any distros drom Disco for " + version + " " + OS.CURRENT + " " + Arch.CURRENT);
102-
} else {
103-
log("Found " + jdks.size() + " download canidates");
104-
pkg = jdks.get(0);
105-
log("Selected " + pkg.distribution + ": " + pkg.filename);
101+
log("Failed to find any distros from Disco for " + version + " " + OS.CURRENT + " " + Arch.CURRENT + " " + Distro.TEMURIN);
102+
103+
// Try any vendor
104+
jdks = disco.getPackages(version, OS.CURRENT, null, Arch.CURRENT);
105+
if (jdks == null || jdks.isEmpty()) {
106+
log("Failed to find any distros from Disco for " + version + " " + OS.CURRENT + " " + Arch.CURRENT);
107+
108+
// Try any Architecture and just hope for the best
109+
jdks = disco.getPackages(version, OS.CURRENT, null, null);
110+
if (jdks == null || jdks.isEmpty()) {
111+
log("Failed to find any distros from Disco for " + version + " " + OS.CURRENT);
112+
return null;
113+
}
114+
}
106115
}
107116

117+
log("Found " + jdks.size() + " download canidates");
118+
Disco.Package pkg = jdks.get(0);
119+
log("Selected " + pkg.distribution + ": " + pkg.filename);
120+
108121
File java_home = disco.extract(pkg);
109122

110123
if (java_home == null)

0 commit comments

Comments
 (0)