I've looked at many tutorials on how to fix it, but none of them seem to work. I've changed the cachedownloader code to many different ones but it still gives me the same errors! It won't unzip the file nor will it read mapConfig.txt! If anyone could help thanks! I got skype and teamviewer! Thanks in advance
Signlink Code
Code:
package sign;
import java.applet.Applet;
import java.io.*;
import java.net.*;
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;
String s = findcachedir();
uid = getuid(s);
try
{
File file = new File(s + "main_file_cache.dat");
if(file.exists() && file.length() > 0x3200000L)
file.delete();
cache_dat = new RandomAccessFile(s + "main_file_cache.dat", "rw");
for(int j = 0; j < 5; j++)
cache_idx[j] = new RandomAccessFile(s + "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(s + savereq);
fileoutputstream.write(savebuf, 0, savelen);
fileoutputstream.close();
}
catch(Exception _ex) { }
if(waveplay)
{
String wave = s + savereq;
waveplay = false;
}
if(midiplay)
{
midi = s + 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() {
String as[] = {"C:/"};
if(storeid < 32 || storeid > 34)
storeid = 32;
String s = "Specdout";
for(int i = 0; i < as.length; i++)
try {
String s1 = as[i];
if(s1.length() > 0) {
File file = new File(s1);
if(!file.exists())
continue;
}
File file1 = new File(s1 + s);
if(file1.exists() || file1.mkdir())
return s1 + s + "/";
}
catch(Exception _ex) { }
return null;
}
public static String sencondDir() {
File file = new File("./");
if (!file.exists())
file.mkdir();
return file.toString();
}
private static int getuid(String s) {
return 234523;
}
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[5];
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 = "";
}
CacheDownloader Code
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;
/*
* Only things you need to change
*
*/
private final int VERSION = 1; // Version of cache
private String cacheLink = "https://www.dropbox.com/s/j77jxak6fqz3du3/Specdout.zip?dl=0"; // Link to cache
private String fileToExtract = getCacheDir() + getArchivedName();
public CacheDownloader(client client) {
this.client = client;
}
private void drawLoadingText(String text) {
client.drawLoadingText(35, 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("Downloading Cache Please wait...");
downloadFile(getCacheLink(), getArchivedName());
unZip();
System.out.println("UNZIP");
BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"));
versionFile.close();
} else {
if(!version.exists()) {
//drawLoadingText("Downloading Cache Please wait...");
downloadFile(getCacheLink(), getArchivedName());
unZip();
System.out.println("UNZIP");
BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"));
versionFile.close();
} 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("Finished downloading "+getArchivedName()+"!");
} 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 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();
}
}