Now downloads the zip file
This commit is contained in:
parent
a2d626bc61
commit
9561b36661
6 changed files with 146 additions and 0 deletions
|
@ -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;
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package techreborn.manual.loader;
|
||||
|
||||
/**
|
||||
* Created by Mark on 16/04/2016.
|
||||
*/
|
||||
public class DownloadablePackageInfo {
|
||||
|
||||
PackageInfo packageInfo;
|
||||
|
||||
String md5;
|
||||
|
||||
String fileName;
|
||||
|
||||
}
|
86
src/main/java/techreborn/manual/loader/ManualLoader.java
Normal file
86
src/main/java/techreborn/manual/loader/ManualLoader.java
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
14
src/main/java/techreborn/manual/loader/PackageInfo.java
Normal file
14
src/main/java/techreborn/manual/loader/PackageInfo.java
Normal 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;
|
||||
|
||||
}
|
16
src/main/java/techreborn/manual/loader/VersionsInfo.java
Normal file
16
src/main/java/techreborn/manual/loader/VersionsInfo.java
Normal 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;
|
||||
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue