Search in sources :

Example 1 with VersionManifest

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;
}
Also used : InputStreamReader(java.io.InputStreamReader) Version(org.spongepowered.vanilla.installer.model.mojang.Version) Gson(com.google.gson.Gson) JsonReader(com.google.gson.stream.JsonReader) VersionManifest(org.spongepowered.vanilla.installer.model.mojang.VersionManifest) IOException(java.io.IOException) URLConnection(java.net.URLConnection) URL(java.net.URL)

Aggregations

Gson (com.google.gson.Gson)1 JsonReader (com.google.gson.stream.JsonReader)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 URL (java.net.URL)1 URLConnection (java.net.URLConnection)1 Version (org.spongepowered.vanilla.installer.model.mojang.Version)1 VersionManifest (org.spongepowered.vanilla.installer.model.mojang.VersionManifest)1