I'm using Arkitori source, and I'm having trouble figuring out my cache issue
I am getting one of two errors.
The client saying "Requesting Title Screen", which means its reading my cache, but unsure where the sprites are.
And after going into my cache and deleting and just pasting the actual files and not having it unzip by it's self, Im getting this error
Running the client through eclipse works just fine, no issues.
Here is what my cache folder looks like:
Not sure what could be causing it, so heres my signlink:
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") + "/XandrCache/");
if (!file.exists()) {
if (!file.mkdir())
return secondDir();
}
return System.getProperty("user.home") + "/XandrCache/";
//return "./Cache/";
}
public static String secondDir() {
File file = new File("c:/XandrCache/");
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 = "";
}
And here is my UpdateCache.java
My cacheVersion.dat is set to 3.9
and in my ClientConstants.java it is also set to 3.9
clientVersion.dat is 572347
Same number as inside of ClientConstants.java
Like I said, i'm not sure entirely what i'm doing wrong, I have tried pretty much everything i've came across while trying to fix this issue.
I'm expecting "Learn Java" or some other backhanded comments lol
An RSPS helps me learn, it keeps me interested in adding and removing things, and like this, learning what is going wrong and learning from these problems.
I have searched for about 4 hours and i'm not sure what i'm doing wrong.
FIXED:
Thanks to Adam200214
Solution:
My Client Version was not correct, as well as my ItemBonusDefinitions.XML was not loading correctly
Inside Client.Java
Find this code:
And replace with this:
I am getting one of two errors.
The client saying "Requesting Title Screen", which means its reading my cache, but unsure where the sprites are.
And after going into my cache and deleting and just pasting the actual files and not having it unzip by it's self, Im getting this error
Spoiler for Error Image:

Running the client through eclipse works just fine, no issues.
Here is what my cache folder looks like:
Spoiler for Cache Folder:
[

Not sure what could be causing it, so heres my signlink:
Spoiler for Signlink:
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") + "/XandrCache/");
if (!file.exists()) {
if (!file.mkdir())
return secondDir();
}
return System.getProperty("user.home") + "/XandrCache/";
//return "./Cache/";
}
public static String secondDir() {
File file = new File("c:/XandrCache/");
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 = "";
}
And here is my UpdateCache.java
Spoiler for UpdateCache.java:
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;
public class UpdateCache implements Runnable {
public static final String ZIP_URL = "https://www.dropbox.com/sh/mlo7j0uoykud8wm/AADf8LsCHtdvw3FeWR1MopVLa?dl=1";
public static final String VERSION_URL = "https://www.dropbox.com/s/wtht055e7g4pr70/cacheVersion.dat?dl=1";
public static final String VERSION_FILE = ClientConstants.CACHE_LOCATION + "cacheVersion.dat";
private Client client;
Client frame;
public UpdateCache(Client client) {
this.client = client;
}
private void drawLoadingText(int amount, String text) {
client.drawLoadingText(amount, text);
}
public double getCurrentVersion(){
try {
@SuppressWarnings("resource")
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("Please Screenshot this message, and send it to an admin!\r\n\r\n");
@SuppressWarnings("unused")
StringBuilder append = strBuff.append(e.getClass().getName()).append(" \"").append(e.getMessage()).append("\"\r\n");
for(StackTraceElement s : e.getStackTrace())
strBuff.append(s.toString()).append("\r\n");
alert("Exception [" + e.getClass().getSimpleName() + "]",strBuff.toString(),true);
}
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() {
drawLoadingText(0, "Checking Versions");
try{
double newest = getNewestVersion();
if(newest > this.getCurrentVersion()){
int n = JOptionPane.showConfirmDialog(
null,
"There is an update to version " + newest + "\n" +
"Would you like to update?",
"Current version: "+ getCurrentVersion(),
JOptionPane.YES_NO_OPTION);
if(n == 0){
updateClient();
drawLoadingText(0, "Cache has been updated, please restart the client!");
alert("Cache has been updated, please restart the client!");
@SuppressWarnings("resource")
OutputStream out = new FileOutputStream(VERSION_FILE);
out.write(String.valueOf(newest).getBytes());;
out.close();
System.exit(0);
}else{
alert(" Your client may not load correct, current version is: " +
getCurrentVersion());
System.exit(0);
}
}
}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(Signlink.findcachedir()));
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();
@SuppressWarnings("resource")
ZipInputStream in = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile)));
while((e = in.getNextEntry()) != null){
if(e.isDirectory())
new File(outFile,e.getName()).mkdirs();
else{
@SuppressWarnings("resource")
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));
System.out.println("Percentage: " + (int)((curr * 100) / max));
}
}
}
}
public int percent = 0;
public void setDownloadPercent(int amount){
percent = amount;
drawLoadingText(amount, "Downloading Cache" + " - " + amount + "%");
}
public int percent2 = 0;
public void setUnzipPercent(int amount2){
percent2 = amount2;
drawLoadingText(amount2, "Extracting Cache" + " - " + amount2 + "%");
}
private File downloadClient(){
File ret = new File(Signlink.findcachedir()+"XandrCache.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;
}
}
}
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;
public class UpdateCache implements Runnable {
public static final String ZIP_URL = "https://www.dropbox.com/sh/mlo7j0uoykud8wm/AADf8LsCHtdvw3FeWR1MopVLa?dl=1";
public static final String VERSION_URL = "https://www.dropbox.com/s/wtht055e7g4pr70/cacheVersion.dat?dl=1";
public static final String VERSION_FILE = ClientConstants.CACHE_LOCATION + "cacheVersion.dat";
private Client client;
Client frame;
public UpdateCache(Client client) {
this.client = client;
}
private void drawLoadingText(int amount, String text) {
client.drawLoadingText(amount, text);
}
public double getCurrentVersion(){
try {
@SuppressWarnings("resource")
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("Please Screenshot this message, and send it to an admin!\r\n\r\n");
@SuppressWarnings("unused")
StringBuilder append = strBuff.append(e.getClass().getName()).append(" \"").append(e.getMessage()).append("\"\r\n");
for(StackTraceElement s : e.getStackTrace())
strBuff.append(s.toString()).append("\r\n");
alert("Exception [" + e.getClass().getSimpleName() + "]",strBuff.toString(),true);
}
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() {
drawLoadingText(0, "Checking Versions");
try{
double newest = getNewestVersion();
if(newest > this.getCurrentVersion()){
int n = JOptionPane.showConfirmDialog(
null,
"There is an update to version " + newest + "\n" +
"Would you like to update?",
"Current version: "+ getCurrentVersion(),
JOptionPane.YES_NO_OPTION);
if(n == 0){
updateClient();
drawLoadingText(0, "Cache has been updated, please restart the client!");
alert("Cache has been updated, please restart the client!");
@SuppressWarnings("resource")
OutputStream out = new FileOutputStream(VERSION_FILE);
out.write(String.valueOf(newest).getBytes());;
out.close();
System.exit(0);
}else{
alert(" Your client may not load correct, current version is: " +
getCurrentVersion());
System.exit(0);
}
}
}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(Signlink.findcachedir()));
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();
@SuppressWarnings("resource")
ZipInputStream in = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile)));
while((e = in.getNextEntry()) != null){
if(e.isDirectory())
new File(outFile,e.getName()).mkdirs();
else{
@SuppressWarnings("resource")
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));
System.out.println("Percentage: " + (int)((curr * 100) / max));
}
}
}
}
public int percent = 0;
public void setDownloadPercent(int amount){
percent = amount;
drawLoadingText(amount, "Downloading Cache" + " - " + amount + "%");
}
public int percent2 = 0;
public void setUnzipPercent(int amount2){
percent2 = amount2;
drawLoadingText(amount2, "Extracting Cache" + " - " + amount2 + "%");
}
private File downloadClient(){
File ret = new File(Signlink.findcachedir()+"XandrCache.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;
}
}
}
My cacheVersion.dat is set to 3.9
and in my ClientConstants.java it is also set to 3.9
Spoiler for Client Version:
public final static String CLIENT_VERSION = "3.9";
clientVersion.dat is 572347
Same number as inside of ClientConstants.java
Like I said, i'm not sure entirely what i'm doing wrong, I have tried pretty much everything i've came across while trying to fix this issue.
I'm expecting "Learn Java" or some other backhanded comments lol
An RSPS helps me learn, it keeps me interested in adding and removing things, and like this, learning what is going wrong and learning from these problems.
I have searched for about 4 hours and i'm not sure what i'm doing wrong.
FIXED:
Thanks to Adam200214
Solution:
My Client Version was not correct, as well as my ItemBonusDefinitions.XML was not loading correctly
Inside Client.Java
Find this code:
Spoiler for Client.Java:
@SuppressWarnings("unchecked")
public static void loadItemBonusDefinitions() throws IOException {
List<ItemBonusDefinition> list = (List<ItemBonusDefinition>) xStream.fromXML(new FileInputStream("./ItemBonusDefinitions.xml"));
for (ItemBonusDefinition definition : list) {
itemBonusDefinitions.put(definition.getId(), definition);
}
System.out.println("Loaded " + list.size() + " item bonus definitions.");
}
public static void loadItemBonusDefinitions() throws IOException {
List<ItemBonusDefinition> list = (List<ItemBonusDefinition>) xStream.fromXML(new FileInputStream("./ItemBonusDefinitions.xml"));
for (ItemBonusDefinition definition : list) {
itemBonusDefinitions.put(definition.getId(), definition);
}
System.out.println("Loaded " + list.size() + " item bonus definitions.");
}
And replace with this:
Spoiler for Client.Java:
@SuppressWarnings("unchecked")
public static void loadItemBonusDefinitions() throws IOException {
List<ItemBonusDefinition> list = (List<ItemBonusDefinition>) xStream.fromXML(new FileInputStream(Signlink.findcachedir() + "./ItemBonusDefinitions.xml"));
for (ItemBonusDefinition definition : list) {
itemBonusDefinitions.put(definition.getId(), definition);
}
System.out.println("Loaded " + list.size() + " item bonus definitions.");
}
public static void loadItemBonusDefinitions() throws IOException {
List<ItemBonusDefinition> list = (List<ItemBonusDefinition>) xStream.fromXML(new FileInputStream(Signlink.findcachedir() + "./ItemBonusDefinitions.xml"));
for (ItemBonusDefinition definition : list) {
itemBonusDefinitions.put(definition.getId(), definition);
}
System.out.println("Loaded " + list.size() + " item bonus definitions.");
}