Jump to content

ToxicCity

Member
  • Content count

    1
  • Joined

  • Last visited

  1. I have changed my cache downloader links to the correct links.. even added the 1 at the end of the dropbox link. And changed the CacheDirectory to my home folder like it should.. but when I put the cache manually in the home folder everything works just like it should but when I take it out, it doesn't redownload or anything just goes straight to Error Connecting to Server. So I took the source and ran it in eclipse i see in the console that the cache is missing (which is obvious because i stated that I removed it from my user home folder) so it doesn't download the cache. Here is my CacheDownloader.java import java.awt.Color; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import javax.swing.JOptionPane; import javax.swing.JProgressBar; import javax.swing.border.EmptyBorder; import javax.swing.plaf.basic.BasicProgressBarUI; @SuppressWarnings("all") public class CacheDownloader implements Runnable { public static final String ZIP_URL = "https://dl.dropbox.com/s/17gutom1yqarmii/VencillioCache.zip?dl=1"; public static final String VERSION_URL = "https://dl.dropbox.com/s/pccmbeuufho076w/cacheVersion.txt"; public static final String VERSION_FILE = ClientConstants.CACHE_LOCATION + "cacheVersion.dat"; private Client client; private Client frame; public CacheDownloader(Client client) { this.client = client; } public double getCurrentVersion() { try { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(VERSION_FILE))); return Double.parseDouble(br.readLine()); } catch (Exception e) { return 0.1; } } public double getNewestVersion() { try { URL tmp = new URL(VERSION_URL); BufferedReader br = new BufferedReader(new InputStreamReader(tmp.openStream())); return Double.parseDouble(br.readLine()); } catch (Exception e) { handleException(e); return -1; } } private void handleException(Exception e) { StringBuilder strBuff = new StringBuilder(); strBuff.append("Something went wrong downloading your cache!\r\n"); strBuff.append("Please copy the error code and contact us via forums for assistantce.\r\n"); strBuff.append("'No WebSite Yet'\r\n\r\n"); strBuff.append("Error Code: [" + e.getClass().getSimpleName() + "]"); alert("Vencillio", strBuff.toString(), true); int option = JOptionPane.showConfirmDialog(null, "Would you like to visit our forums?", "Beta Error", JOptionPane.YES_NO_OPTION); if (option == 0) { client.openURL("NO WEBSITE YET..."); } else { System.exit(0); } } private void alert(String msg) { alert("Message", msg, false); } private void alert(String title, String msg, boolean error) { JOptionPane.showMessageDialog(null, msg, title, (error ? JOptionPane.ERROR_MESSAGE : JOptionPane.PLAIN_MESSAGE)); } @Override public void run() { client.drawLoadingText(0, "Checking Versions"); try { double newest = getNewestVersion(); if (newest > this.getCurrentVersion()) { client.drawLoadingText(0, "Update found!"); StringBuilder strBuff = new StringBuilder(); strBuff.append("Update version " + newest + " has been found!\n"); strBuff.append("Client will now automatically update."); alert("United Servers", strBuff.toString(), true); new ProgressBar(); updateClient(); client.drawLoadingText(0, "United Servers has been updated!"); alert("United Servers", "Download finished! Restart the Client to start playing!", false); OutputStream out = new FileOutputStream(VERSION_FILE); out.write(String.valueOf(newest).getBytes()); Runtime.getRuntime().exec("java -jar myApp.jar"); System.exit(0); } else { } } catch (Exception e) { handleException(e); } } private void updateClient() { File clientZip = downloadClient(); if (clientZip != null) { unZip(clientZip); } } private void unZip(File clientZip) { try { unZipFile(clientZip, new File(ClientConstants.CACHE_LOCATION)); clientZip.delete(); } catch (IOException e) { handleException(e); } } private void unZipFile(File zipFile, File outFile) throws IOException { ZipInputStream zin = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile))); ZipEntry e; long max = 0; long curr = 0; while ((e = zin.getNextEntry()) != null) max += e.getSize(); zin.close(); ZipInputStream in = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile))); while ((e = in.getNextEntry()) != null) { if (e.isDirectory()) new File(outFile, e.getName()).mkdirs(); else { FileOutputStream out = new FileOutputStream(new File(outFile, e.getName())); byte[] b = new byte[1024]; int len; while ((len = in.read(b, 0, b.length)) > -1) { curr += len; out.write(b, 0, len); setUnzipPercent((int) ((curr * 100) / max)); } out.flush(); out.close(); } } } public int percent = 0; public void setDownloadPercent(int amount) { percent = amount; ProgressBar.updateValue(amount); ProgressBar.updateString("(1/2) Downloading cache - " + ProgressBar.getValue() + "%"); client.drawLoadingText(amount, "(1/2) Downloading United Servers Cache" + " - " + amount + "%"); } public int percent2 = 0; public void setUnzipPercent(int amount2) { percent2 = amount2; ProgressBar.updateValue(amount2); ProgressBar.updateString("(2/2) Extracting cache - " + ProgressBar.getValue() + "%"); client.drawLoadingText(amount2, "(2/2) Extracting United Servers Cache" + " - " + amount2 + "%"); } private File downloadClient() { File ret = new File(ClientConstants.CACHE_LOCATION + "cache.zip"); try { OutputStream out = new FileOutputStream(ret); URLConnection conn = new URL(ZIP_URL).openConnection(); InputStream in = conn.getInputStream(); long max = conn.getContentLength(); long curr = 0; byte[] b = new byte[1024]; int len; while ((len = in.read(b, 0, b.length)) > -1) { out.write(b, 0, len); curr += len; setDownloadPercent((int) ((curr * 100) / max)); } out.flush(); out.close(); in.close(); return ret; } catch (Exception e) { handleException(e); ret.delete(); return null; } } } Here is SignLink.java import java.applet.Applet; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; import java.net.InetAddress; import java.net.Socket; import java.net.URL; public final class Signlink implements Runnable { public static void startpriv(InetAddress inetaddress) { threadliveid = (int) (Math.random() * 99999999D); if (active) { try { Thread.sleep(500L); } catch (Exception _ex) { } active = false; } socketreq = 0; threadreq = null; dnsreq = null; savereq = null; urlreq = null; socketip = inetaddress; Thread thread = new Thread(new Signlink()); thread.setDaemon(true); thread.start(); while (!active) { try { Thread.sleep(50L); } catch (Exception _ex) { } } } public void run() { active = true; uid = getuid(findcachedir()); try { cache_dat = new RandomAccessFile(findcachedir() + "main_file_cache.dat", "rw"); for (int j = 0; j < 6; j++) { cache_idx[j] = new RandomAccessFile(findcachedir() + "main_file_cache.idx" + j, "rw"); } } catch (Exception exception) { exception.printStackTrace(); } for (int i = threadliveid; threadliveid == i;) { if (socketreq != 0) { try { socket = new Socket(socketip, socketreq); } catch (Exception _ex) { socket = null; } socketreq = 0; } else if (threadreq != null) { Thread thread = new Thread(threadreq); thread.setDaemon(true); thread.start(); thread.setPriority(threadreqpri); threadreq = null; } else if (dnsreq != null) { try { dns = InetAddress.getByName(dnsreq).getHostName(); } catch (Exception _ex) { dns = "unknown"; } dnsreq = null; } else if (savereq != null) { if (savebuf != null) try { FileOutputStream fileoutputstream = new FileOutputStream(findcachedir() + savereq); fileoutputstream.write(savebuf, 0, savelen); fileoutputstream.close(); } catch (Exception _ex) { } if (waveplay) { waveplay = false; } if (midiplay) { midi = findcachedir() + savereq; midiplay = false; } savereq = null; } else if (urlreq != null) { try { System.out.println("urlstream"); urlstream = new DataInputStream((new URL(mainapp.getCodeBase(), urlreq)).openStream()); } catch (Exception _ex) { urlstream = null; } urlreq = null; } try { Thread.sleep(50L); } catch (Exception _ex) { } } } public static String findcachedir() { File file = new File(System.getProperty("user.home") + "/VencillioCache/"); if (!file.exists()) { if (!file.mkdir()) return secondDir(); } return System.getProperty("user.home") + "/VencillioCache/"; } public static String secondDir() { File file = new File("c:/VencillioCache/"); if (!file.exists()) file.mkdir(); return file.toString(); } private static int getuid(String s) { try { File file = new File(s + "uid.dat"); if (!file.exists() || file.length() < 4L) { DataOutputStream dataoutputstream = new DataOutputStream(new FileOutputStream(s + "uid.dat")); dataoutputstream.writeInt((int) (Math.random() * 99999999D)); dataoutputstream.close(); } } catch (Exception _ex) { } try { DataInputStream datainputstream = new DataInputStream(new FileInputStream(s + "uid.dat")); int i = datainputstream.readInt(); datainputstream.close(); return i + 1; } catch (Exception _ex) { return 0; } } public static synchronized Socket opensocket(int i) throws IOException { for (socketreq = i; socketreq != 0;) try { Thread.sleep(50L); } catch (Exception _ex) { } if (socket == null) throw new IOException("could not open socket"); else return socket; } public static synchronized DataInputStream openurl(String s) throws IOException { for (urlreq = s; urlreq != null;) try { Thread.sleep(50L); } catch (Exception _ex) { } if (urlstream == null) throw new IOException("could not open: " + s); else return urlstream; } public static synchronized void dnslookup(String s) { dns = s; dnsreq = s; } public static synchronized void startthread(Runnable runnable, int i) { threadreqpri = i; threadreq = runnable; } public static synchronized boolean wavesave(byte abyte0[], int i) { if (i > 0x1e8480) return false; if (savereq != null) { return false; } else { wavepos = (wavepos + 1) % 5; savelen = i; savebuf = abyte0; waveplay = true; savereq = "sound" + wavepos + ".wav"; return true; } } public static synchronized boolean wavereplay() { if (savereq != null) { return false; } else { savebuf = null; waveplay = true; savereq = "sound" + wavepos + ".wav"; return true; } } public static synchronized void midisave(byte abyte0[], int i) { if (i > 0x1e8480) return; if (savereq != null) { } else { midipos = (midipos + 1) % 5; savelen = i; savebuf = abyte0; midiplay = true; savereq = "jingle" + midipos + ".mid"; } } public static void reporterror(String s) { System.out.println("Error: " + s); } private Signlink() { } public static final int clientversion = 317; public static int uid; public static int storeid = 32; public static RandomAccessFile cache_dat = null; public static final RandomAccessFile[] cache_idx = new RandomAccessFile[6]; public static boolean sunjava; public static Applet mainapp = null; private static boolean active; private static int threadliveid; private static InetAddress socketip; private static int socketreq; private static Socket socket = null; private static int threadreqpri = 1; private static Runnable threadreq = null; private static String dnsreq = null; public static String dns = null; private static String urlreq = null; private static DataInputStream urlstream = null; private static int savelen; private static String savereq = null; private static byte[] savebuf = null; private static boolean midiplay; private static int midipos; public static String midi = null; public static int midivol; public static int midifade; private static boolean waveplay; private static int wavepos; public static int wavevol; public static boolean reporterror = true; public static String errorname = ""; } I am not sure if it is really downloading or not because when i take my original cache files out it gets replaced when I open the client but maybe it is not downloading completely or something because all the files are there... but I guess not working with the client. When I replace all the files with my original it starts back again. And both of these files are the same file the one that it is suppose to be downloading and the my original files are indeed the same files..
×