Now downloads the zip file

This commit is contained in:
modmuss50 2016-04-23 13:52:50 +01:00
parent a2d626bc61
commit 9561b36661
No known key found for this signature in database
GPG key ID: 1838986A0F12E8EE
6 changed files with 146 additions and 0 deletions

View file

@ -35,6 +35,7 @@ import techreborn.events.OreUnifier;
import techreborn.events.TRTickHandler;
import techreborn.init.*;
import techreborn.lib.ModInfo;
import techreborn.manual.loader.ManualLoader;
import techreborn.packets.PacketAesu;
import techreborn.packets.PacketIdsu;
import techreborn.proxies.CommonProxy;

View file

@ -0,0 +1,14 @@
package techreborn.manual.loader;
/**
* Created by Mark on 16/04/2016.
*/
public class DownloadablePackageInfo {
PackageInfo packageInfo;
String md5;
String fileName;
}

View file

@ -0,0 +1,86 @@
package techreborn.manual.loader;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import techreborn.manual.saveFormat.ManualFormat;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
/**
* Created by modmuss50 on 23/04/2016.
*/
public class ManualLoader {
public static final String MANUAL_VERSION = "0";
File configDir;
public ManualLoader(File configDir) {
this.configDir = configDir;
}
VersionsInfo info = null;
public void load() throws IOException {
File manualdir = new File(configDir, "manual");
if (!manualdir.exists()) {
manualdir.mkdir();
}
URL url = new URL("http://modmuss50.me/techreborn/manual/versions.json");
URLConnection con = url.openConnection();
InputStream in = con.getInputStream();
String encoding = con.getContentEncoding();
encoding = encoding == null ? "UTF-8" : encoding;
String body = IOUtils.toString(in, encoding);
Gson gson = new Gson();
info = gson.fromJson(body, new TypeToken<VersionsInfo>() {
}.getType());
DownloadablePackageInfo downloadablePackageInfo = null;
if(info != null){
for(DownloadablePackageInfo packageInfo : info.versions){
if(packageInfo.packageInfo.version.equals(MANUAL_VERSION)){
downloadablePackageInfo = packageInfo;
break;
}
}
}
if(downloadablePackageInfo != null){
File zipLocation = new File(manualdir, downloadablePackageInfo.fileName);
if(zipLocation.exists()){
String md5 = getMD5(zipLocation);
if(md5.equals(downloadablePackageInfo.md5)){
//Oh look we allready have it!
}
} else {
FileUtils.copyURLToFile(new URL("http://modmuss50.me/techreborn/manual/packages/" + downloadablePackageInfo.fileName), zipLocation);
String md5 = getMD5(zipLocation);
if(md5.equals(downloadablePackageInfo.md5)){
//ok the downloaded file is valid
}
}
}
}
public static String getMD5(File file) throws IOException {
FileInputStream fis = new FileInputStream(file);
String md5 = DigestUtils.md5Hex(fis);
fis.close();
return md5;
}
}

View file

@ -0,0 +1,14 @@
package techreborn.manual.loader;
/**
* Created by Mark on 16/04/2016.
*/
public class PackageInfo {
public String name;
public String version;
public String language;
}

View file

@ -0,0 +1,16 @@
package techreborn.manual.loader;
import java.util.List;
/**
* Created by Mark on 16/04/2016.
*/
public class VersionsInfo {
String name;
String lastUpdated;
List<DownloadablePackageInfo> versions;
}

View file

@ -18,6 +18,10 @@ import techreborn.client.hud.ChargeHud;
import techreborn.client.keybindings.KeyBindings;
import techreborn.client.render.entitys.RenderNukePrimed;
import techreborn.entitys.EntityNukePrimed;
import techreborn.manual.loader.ManualLoader;
import java.io.File;
import java.io.IOException;
public class ClientProxy extends CommonProxy
{
@ -29,6 +33,17 @@ public class ClientProxy extends CommonProxy
{
super.preInit(event);
RenderingRegistry.registerEntityRenderingHandler(EntityNukePrimed.class, new RenderManagerNuke());
ManualLoader loader = new ManualLoader(new File(event.getModConfigurationDirectory(), "techreborn"));
new Thread(() ->
{
try {
loader.load();
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
@Override