Sketpa 0 #1 Posted June 16, 2012 Hey, I followed a tutorial & it didn't work. I'm getting a plain white screen on run with no errors, isn't it men't to show it downloading the cache? I'm using Enhanced PI client btw. For more information add my msn: [email][email protected][/email] Thanks. Share this post Link to post Share on other sites
0 Compulsion 0 #2 Posted June 16, 2012 Post your cachedownloader class, and I'll be glad to help. Share this post Link to post Share on other sites
0 Sketpa 0 #3 Posted June 16, 2012 [quote name='Compulsion']Post your cachedownloader class, and I'll be glad to help.[/QUOTE] Please add my msn: [email][email protected][/email] Share this post Link to post Share on other sites
0 Sketpa 0 #4 Posted June 16, 2012 Here's the cachedownloader class: [code] import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.BufferedOutputStream; import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.net.URLConnection; import java.net.URL; import java.util.zip.ZipFile; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.Enumeration; import sign.signlink; public class CacheDownloader { private client client; private final int BUFFER = 1024; private final int VERSION = 1; // Version of cache private String cacheLink = "http://eps-world.org/EPSCACHE.zip"; // Link to cache private String fileToExtract = getCacheDir() + getArchivedName(); public CacheDownloader(client client) { this.client = client; } private void drawLoadingText(String text) { client.drawLoadingText(20, text); //System.out.println(text); } private void drawLoadingText(int amount, String text) { client.drawLoadingText(amount, text); //System.out.println(text); } private String getCacheDir() { return signlink.findcachedir(); } private String getCacheLink() { return cacheLink; } private int getCacheVersion() { return VERSION; } public CacheDownloader downloadCache() { try { File location = new File(getCacheDir()); File version = new File(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"); if(!location.exists()) { //drawLoadingText("Loading new Updates...."); downloadFile(getCacheLink(), getArchivedName()); unZip(); //System.out.println("UNZIP"); BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat")); versionFile.close(); deleteZIP(getArchivedName()); } else { if(!version.exists()) { //drawLoadingText("~ First Time Installation, Only Once! ~"); downloadFile(getCacheLink(), getArchivedName()); unZip(); //System.out.println("UNZIP"); BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat")); versionFile.close(); deleteZIP(getArchivedName()); } else { return null; } } } catch(Exception e) { } return null; } private void downloadFile(String adress, String localFileName) { OutputStream out = null; URLConnection conn; InputStream in = null; try { URL url = new URL(adress); out = new BufferedOutputStream( new FileOutputStream(getCacheDir() + "/" +localFileName)); conn = url.openConnection(); in = conn.getInputStream(); byte[] data = new byte[BUFFER]; int numRead; long numWritten = 0; int length = conn.getContentLength(); while((numRead = in.read(data)) != -1) { out.write(data, 0, numRead); numWritten += numRead; int percentage = (int)(((double)numWritten / (double)length) * 100D); drawLoadingText(percentage, "Downloading Cache " + percentage + "%.."); } System.out.println(localFileName + "\t" + numWritten); drawLoadingText("Unpacking.."); } catch (Exception exception) { exception.printStackTrace(); } finally { try { if (in != null) { in.close(); } if (out != null) { out.close(); } } catch (IOException ioe) { } } } private String getArchivedName() { int lastSlashIndex = getCacheLink().lastIndexOf('/'); if (lastSlashIndex >= 0 && lastSlashIndex < getCacheLink().length() -1) { return getCacheLink().substring(lastSlashIndex + 1); } else { //System.err.println("error retreiving archivaed name."); } return ""; } private void unZip() { try { InputStream in = new BufferedInputStream(new FileInputStream(fileToExtract)); ZipInputStream zin = new ZipInputStream(in); ZipEntry e; while((e=zin.getNextEntry()) != null) { if(e.isDirectory()) { (new File(getCacheDir() + e.getName())).mkdir(); } else { if (e.getName().equals(fileToExtract)) { unzip(zin, fileToExtract); break; } unzip(zin, getCacheDir() + e.getName()); } //System.out.println("unzipping2 " + e.getName()); } zin.close(); } catch(Exception e) { e.printStackTrace(); } } private void deleteZIP(String fileName){ // A File object to represent the filename File f = new File(getCacheDir() + fileName); // Make sure the file or directory exists and isn't write protected if (!f.exists()) throw new IllegalArgumentException( "Delete: no such file or directory: " + fileName); if (!f.canWrite()) throw new IllegalArgumentException("Delete: write protected: " + fileName); // If it is a directory, make sure it is empty if (f.isDirectory()) { String[] files = f.list(); if (files.length > 0) throw new IllegalArgumentException( "Delete: directory not empty: " + fileName); } // Attempt to delete it boolean success = f.delete(); if (!success) throw new IllegalArgumentException("Delete: deletion failed"); } private void unzip(ZipInputStream zin, String s) throws IOException { FileOutputStream out = new FileOutputStream(s); //System.out.println("unzipping " + s); byte [] b = new byte[BUFFER]; int len = 0; while ((len = zin.read(b)) != -1) { out.write(b,0,len); } out.close(); } } [/code] Share this post Link to post Share on other sites
I'm getting a plain white screen on run with no errors, isn't it men't to show it downloading the cache?
I'm using Enhanced PI client btw.
For more information add my msn: [email][email protected][/email]
Thanks.
Share this post
Link to post
Share on other sites