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.events.TRTickHandler;
|
||||||
import techreborn.init.*;
|
import techreborn.init.*;
|
||||||
import techreborn.lib.ModInfo;
|
import techreborn.lib.ModInfo;
|
||||||
|
import techreborn.manual.loader.ManualLoader;
|
||||||
import techreborn.packets.PacketAesu;
|
import techreborn.packets.PacketAesu;
|
||||||
import techreborn.packets.PacketIdsu;
|
import techreborn.packets.PacketIdsu;
|
||||||
import techreborn.proxies.CommonProxy;
|
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.keybindings.KeyBindings;
|
||||||
import techreborn.client.render.entitys.RenderNukePrimed;
|
import techreborn.client.render.entitys.RenderNukePrimed;
|
||||||
import techreborn.entitys.EntityNukePrimed;
|
import techreborn.entitys.EntityNukePrimed;
|
||||||
|
import techreborn.manual.loader.ManualLoader;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ClientProxy extends CommonProxy
|
public class ClientProxy extends CommonProxy
|
||||||
{
|
{
|
||||||
|
@ -29,6 +33,17 @@ public class ClientProxy extends CommonProxy
|
||||||
{
|
{
|
||||||
super.preInit(event);
|
super.preInit(event);
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityNukePrimed.class, new RenderManagerNuke());
|
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
|
@Override
|
||||||
|
|
Loading…
Add table
Reference in a new issue