use of org.spongepowered.vanilla.installer.model.mojang.VersionManifest in project SpongeCommon by SpongePowered.
the class InstallerMain method downloadMinecraftManifest.
private Version downloadMinecraftManifest() throws IOException {
Logger.info("Downloading the Minecraft versions manifest...");
VersionManifest.Version foundVersionManifest = null;
final Gson gson = new Gson();
final URLConnection conn = new URL(Constants.Libraries.MINECRAFT_MANIFEST_URL).openConnection();
conn.setConnectTimeout(5 * /* seconds */
1000);
try (final JsonReader reader = new JsonReader(new InputStreamReader(conn.getInputStream()))) {
final VersionManifest manifest = gson.fromJson(reader, VersionManifest.class);
for (final VersionManifest.Version version : manifest.versions) {
if (Constants.Libraries.MINECRAFT_VERSION_TARGET.equals(version.id)) {
foundVersionManifest = version;
break;
}
}
}
if (foundVersionManifest == null) {
throw new IOException(String.format("Failed to find version manifest for '%s'!", Constants.Libraries.MINECRAFT_VERSION_TARGET));
}
final Version version;
try (final JsonReader reader = new JsonReader(new InputStreamReader(foundVersionManifest.url.openStream()))) {
version = gson.fromJson(reader, Version.class);
}
if (version == null) {
throw new IOException(String.format("Failed to download version information for '%s'!", Constants.Libraries.MINECRAFT_VERSION_TARGET));
}
return version;
}
Aggregations