Code:
package com.rs2hd;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import com.rs2hd.model.Player;
import com.rs2hd.model.World;
public class FileManager {
private static final String[] DATA = {"[Password]: ","[Rights]: ","[Coords]: ","[Items]: ","[Equip]: ","[Looks]: "};
public static int loadGame(Player p)
{
for(Player p2 : World.getInstance().getPlayerList()) {
if(p.getPlayerDetails().getUsername().equals(p2.getPlayerDetails().getUsername())) {
return 5; //Already Logged In.
}
}
boolean FoundPlayer = false;
BufferedReader loadFile = null;
try {
loadFile = new BufferedReader(new FileReader(Constants.getDirectory() + "/data/Characters/"+ p.getPlayerDetails().getUsername() + ".txt"));
FoundPlayer = true;
} catch (Exception e){}
if(FoundPlayer)
{
String data = null;
try {
while ((data = loadFile.readLine()) != null) {
if(data.startsWith(DATA[0]) && !p.getPlayerDetails().getPassword().equals(data.substring(DATA[0].length()))) {
return 3; //Invalid Password.
} else if(data.startsWith(DATA[1])) {
p.setRights(Integer.valueOf(data.substring(DATA[1].length())));
} else if(data.startsWith(DATA[2])) {
String[] coords = data.substring(DATA[2].length()).split(",");
p.setTeleport(Integer.valueOf(coords[0]),Integer.valueOf(coords[1]),Integer.valueOf(coords[2]));
} else if(data.startsWith(DATA[3])) {
String[] items = data.substring(DATA[3].length()).split(",");
for(int i = 1; i < 29; i++) {
p.getSetterGetter().setPlayerItem(i - 1,Integer.valueOf(items[i * 2 - 2]));
p.getSetterGetter().setPlayerItemN(i - 1,Integer.valueOf(items[i * 2 - 1]));
}
} else if(data.startsWith(DATA[4])) {
String[] equip = data.substring(DATA[4].length()).split(",");
for(int i = 1; i < 15; i++) {
p.getSetterGetter().setEquipment(i - 1,Integer.valueOf(equip[i * 2 - 2]));
p.getSetterGetter().setEquipmentN(i - 1,Integer.valueOf(equip[i * 2 - 1]));
}
} else if(data.startsWith(DATA[5])) {
String[] looks = data.substring(DATA[5].length()).split(",");
int[] looks_ = new int[13];
for(int i = 0; i < 13; i++) {
looks_[i] = Integer.valueOf(looks[i]);
}
p.getSetterGetter().setLooks(looks_);
}
}
p.getSetterGetter().setFirstTimePlaying(false);
return 2;
} catch (Exception e){e.printStackTrace();}
} else {
p.getSetterGetter().setPlayerDefaultSettings();
}
return 2;
}
public static void saveGame(Player p)
{
try {
BufferedWriter saveFile = null;
saveFile = new BufferedWriter(new FileWriter(Constants.getDirectory() + "/data/Characters/"+ p.getPlayerDetails().getUsername() + ".txt"));
saveFile.write(DATA[0] + p.getPlayerDetails().getPassword());
saveFile.newLine();
saveFile.write(DATA[1] + p.getRights());
saveFile.newLine();
saveFile.write(DATA[2]);
saveFile.write(p.getLocation().getX() + "," + p.getLocation().getY() + "," + p.getLocation().getZ());
saveFile.newLine();
saveFile.write(DATA[3]);
int[] items = p.getSetterGetter().getPlayerItems();
int[] itemsN = p.getSetterGetter().getPlayerItemsN();
for(int i = 0; i < 28; i++)
saveFile.write(items[i] + "," + itemsN[i] + (i < 27 ? "," : ""));
saveFile.newLine();
saveFile.write(DATA[4]);
int[] equip = p.getSetterGetter().getEquipment();
int[] equipN = p.getSetterGetter().getEquipmentN();
for(int i = 0; i < 14; i++)
saveFile.write(equip[i] + "," + equipN[i] + (i < 13 ? "," : ""));
saveFile.newLine();
saveFile.write(DATA[5]);
int[] looks = p.getSetterGetter().getLooks();
for(int i = 0; i < 13; i++)
saveFile.write(looks[i] + (i < 12 ? "," : ""));
saveFile.newLine();
saveFile.close();
} catch (Exception e){ }
}
public static void write(String data, String file) {
try {
BufferedWriter saveFile = null;
saveFile = new BufferedWriter(new FileWriter(Constants.getDirectory() + file + ".txt"));
saveFile.write(data);
saveFile.newLine();
saveFile.close();
} catch (Exception e){ }
}
}
Code:
[Password]: d
[Rights]: 2
[Coords]: 2904,5472,0
[Items]: 11694,1,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0
[Equip]: -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0
[Looks]: 0,0,10,18,26,33,36,42,0,0,0,0,0