Was deciding to use this for my new upcoming server but I just decided to release the code anyway.
This is compatible with any Project Insanity client.
As quoted from How to make your Project Insanity client a Webclient!
"Thank-you openice123 for this. Thank-you Onlyme for a quick fix."
And thank you JUSTINNN for the original post! FROM Run3-S3rv3r
If you already have the original CacheDownloader.java and wish to update to V2:
If you don't have the CacheDownlaoder.java follow the tutorial here
1. Go into your client.java and search
Code:
new CacheDownloader(this).downloadCache();
Replace that with
Code:
new CacheDownloaderV2(this).downloadCache();
Save and close client.java
2. now open CacheDownloader.java and replace the whole file with this:
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 javax.swing.*;
import java.awt.event.*;
import sign.signlink;
/*************************************
*All edits to CacheDownloaderV2.java*
* go to m13rz | mod cody *
* Please give credits *
*************************************/
public class CacheDownloaderV2 {
private client client;
private final int BUFFER = 1024;
private final int VERSION = 1; // Version of cache (Change on client updates)
private String cacheLink = "YOUR CACHE LINK"; // 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()) {
downloadFile(getCacheLink(), getArchivedName());
BufferedWriter versionFile = new BufferedWriter(new FileWriter(getCacheDir() + "/cacheVersion" + getCacheVersion() + ".dat"));
versionFile.close();
} else {
if(!version.exists()) {
downloadFile(getCacheLink(), getArchivedName());
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) {
}
}
fileExists();
}
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());
}
drawLoadingText("[UN-ZIP]: " + e.getName());
}
zin.close();
} catch(Exception e) {
e.printStackTrace();
}
oneSec();
unNeededCacheExists();
}
private void unzip(ZipInputStream zin, String s)
throws IOException {
FileOutputStream out = new FileOutputStream(s);
byte [] b = new byte[BUFFER];
int len = 0;
while ((len = zin.read(b)) != -1) {
out.write(b,0,len);
}
}
public void fileExists() {
File file=new File("CACHE DIRECTORY LINK");
boolean exists = file.exists();
if (!exists) {
System.out.println("The cache was not downloaded correctly.");
System.out.println("Please download it manually at:");
System.out.println("YOUR CACHE LINK");
manySec();
cacheDownloadError();
} else
{
System.out.println("Your cache is downloaded and ready to un-zip!");
oneSec();
unZip();
}
}
public void unNeededCacheExists() {
File file=new File("CACHE DIRECTORY LINK");
boolean exists = file.exists();
if (!exists) {
System.out.println("Your Client Just Hates You");
System.out.println("You are GARBAGE TODAY AYE?!");
}else {
System.out.println("Your cache is still on your HDD");
System.out.println("Attempting to delete...");
oneSec();
delete();
}
}
public void delete() {
try{
File file = new File("CACHE DIRECTORY LINK");
if(file.delete()){
System.out.println("[SUCCESS]" +file.getName()+ " was deleted!");
}else{
System.out.println("[ERROR]" +file.getName()+ " was not deleted.");
}
}catch(Exception e){
e.printStackTrace();
}
}
public void cacheDownloadError() {
try {
System.out.println("Cache Download Error: 0x21V82");
}
catch(Exception e){
e.printStackTrace();
}
}
public void oneSec() {
try {
Thread.currentThread().sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
public void manySec() {
try {
Thread.currentThread().sleep(1500);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
2. Search
replace that with your actual cache link
Example:
Code:
http://google.com/cache.zip
3. Search
Code:
CACHE DIRECTORY LINK
Replace that with your cache link on your computer
Example
Code:
C:/.Google_File_store_32/
Save, close, and compile!
DONE
If I left anything out please let me know and I will fix it up ASAP
CacheDownloaderV2.java