package buildcraftAdditions.core;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import net.minecraft.nbt.NBTTagCompound;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.event.FMLInterModComms;
/**
* Copyright (c) 2014-2015, AEnterprise
* http://buildcraftadditions.wordpress.com/
* Buildcraft Additions is distributed under the terms of GNU GPL v3.0
* Please check the contents of the license located in
* http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
*/
public class VersionCheck {
public static final String currentVersion = "@MODVERSION@";
public static boolean newerVersionAvailable = false;
public static String newerVersionNumber = "";
public static String[] changelog;
public static void start() {
new VersionCheckThread().start();
}
private static class VersionCheckThread extends Thread {
@Override
public void run() {
Logger.info("BuildCraft Additions version check initiated, current version: @VERSION@");
try {
URL version = new URL("https://raw.githubusercontent.com/BCA-Team/Buildcraft-Additions/master/src/main/resources/changelogs/version.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(version.openStream()));
newerVersionNumber = reader.readLine();
if (!currentVersion.equals(newerVersionNumber)) {
newerVersionAvailable = true;
Logger.info("There is a newer version of Buildcraft Additions available (" + newerVersionNumber + ") please consider updating");
URL changelogURL = new URL("https://raw.githubusercontent.com/BCA-Team/Buildcraft-Additions/master/src/main/resources/changelogs/" + newerVersionNumber);
BufferedReader changelogReader = new BufferedReader((new InputStreamReader(changelogURL.openStream())));
String line;
ArrayList<String> changelogList = new ArrayList<String>();
while ((line = changelogReader.readLine()) != null)
changelogList.add(line);
changelog = new String[changelogList.size()];
changelogList.toArray(changelog);
pingVersionChecker();
}
} catch (Throwable e) {
Logger.error("BuildCraft Additions version check failed!");
e.printStackTrace();
}
}
public void pingVersionChecker() {
if (Loader.isModLoaded("VersionChecker")) {
NBTTagCompound tag = new NBTTagCompound();
tag.setString("modDisplayName", "BuildCraft Additions");
tag.setString("oldVersion", currentVersion);
tag.setString("newVersion", newerVersionNumber);
tag.setString("updateUrl", "http://buildcraftAdditions.wordpress.com/downloads/");
tag.setBoolean("isDirectLink", false);
StringBuilder builder = new StringBuilder();
for (String s : changelog)
builder.append(s).append("/n");
tag.setString("changeLog", builder.toString());
FMLInterModComms.sendRuntimeMessage("bcadditions", "VersionChecker", "addUpdate", tag);
}
}
}
}