Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.model.players;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import server.Server;
- import server.Config;
- import server.util.Misc;
- import server.util.HiscoreManager;
- public class PlayerSave
- {
- /**
- *Loading
- **/
- public static int loadGame(Client p, String playerName, String playerPass) {
- String line = "";
- String token = "";
- String token2 = "";
- String[] token3 = new String[3];
- boolean EndOfFile = false;
- int ReadMode = 0;
- BufferedReader characterfile = null;
- boolean File1 = false;
- try {
- characterfile = new BufferedReader(new FileReader("./Data/characters/"+playerName+".txt"));
- File1 = true;
- } catch(FileNotFoundException fileex1) {
- }
- if (File1) {
- new File ("./characters/"+playerName+".txt");
- } else {
- Misc.println(playerName+": character file not found.");
- //p.newPlayer = true;
- return 0;
- }
- try {
- line = characterfile.readLine();
- } catch(IOException ioexception) {
- Misc.println(playerName+": error loading file.");
- return 3;
- }
- while(EndOfFile == false && line != null) {
- line = line.trim();
- int spot = line.indexOf("=");
- if (spot > -1) {
- token = line.substring(0, spot);
- token = token.trim();
- token2 = line.substring(spot + 1);
- token2 = token2.trim();
- token3 = token2.split("\t");
- switch (ReadMode) {
- case 1:
- if (token.equals("character-password")) {
- if (playerPass.equalsIgnoreCase(token2)) {
- } else {
- return 3;
- }
- }
- break;
- case 2:
- if (token.equals("character-height")) {
- p.heightLevel = Integer.parseInt(token2);
- } else if (token.equals("character-Assaultkills")) {
- p.Assaultkills = Integer.parseInt(token2);
- } else if (token.equals("character-posx")) {
- p.teleportToX = (Integer.parseInt(token2) <= 0 ? Config.HOME_X : Integer.parseInt(token2));
- } else if (token.equals("character-posy")) {
- p.teleportToY = (Integer.parseInt(token2) <= 0 ? Config.HOME_Y : Integer.parseInt(token2));
- } else if (token.equals("character-rights")) {
- p.playerRights = Integer.parseInt(token2);
- } else if (token.equals("character-start")) {
- p.start = Integer.parseInt(token2);
- } else if(token.equals("character-energy")) {
- p.runEnergy = Integer.parseInt(token2);
- } else if(token.equals("player-kills")) {
- p.lastKilledPlayers.set(Integer.parseInt(token3[0]), token3[1]);
- } else if (token.equals("skull-timer")) {
- p.skullTimer = Integer.parseInt(token2);
- } else if (token.equals("magic-book")) {
- p.playerMagicBook = Integer.parseInt(token2);
- } else if (token.equals("brother-info")) {
- p.barrowsNpcs[Integer.parseInt(token3[0])][1] = Integer.parseInt(token3[1]);
- } else if (token.equals("special-amount")) {
- p.specAmount = Double.parseDouble(token2);
- } else if (token.equals("selected-coffin")) {
- p.randomCoffin = Integer.parseInt(token2);
- } else if (token.equals("barrows-killcount")) {
- p.barrowsKillCount = Integer.parseInt(token2);
- } else if (token.equals("donator")) {
- p.donator = Integer.parseInt(token2);
- } else if (token.equals("donator-points")) {
- p.donatorPoints = Integer.parseInt(token2);
- } else if (token.equals("pk-points")) {
- p.pkPoints = Integer.parseInt(token2);
- } else if (token.equals("kill-count")) {
- p.killCount = Integer.parseInt(token2);
- } else if (token.equals("death-count")) {
- p.deathCount = Integer.parseInt(token2);
- } else if (token.equals("fight-mode")) {
- p.fightMode = Integer.parseInt(token2);
- } else if (token.equals("auto-retaliate")) {
- p.autoRetaliate = Boolean.parseBoolean(token2);
- } else if (token.equals("rfd-round")) {
- p.rfdRound = Integer.parseInt(token2);
- } else if (token.equals("quest-points")) {
- p.questPoints = Integer.parseInt(token2);
- } else if(token.equals("mute-end")) {
- p.muteEnd = Long.parseLong(token2);
- } else if(token.equals("clue-1")) {
- p.clueTask[0] = Integer.parseInt(token2);
- } else if(token.equals("clue-2")) {
- p.clueTask[1] = Integer.parseInt(token2);
- } else if(token.equals("clue-3")) {
- p.clueTask[2] = Integer.parseInt(token2);
- } else if(token.equals("desert-treasure")) {
- p.desertT = Integer.parseInt(token2);
- } else if(token.equals("dt-kill")) {
- p.lastDtKill = Integer.parseInt(token2);
- } else if(token.equals("horror-from-deep")) {
- p.horrorFromDeep = Integer.parseInt(token2);
- } else if(token.equals("pc-points")) {
- p.pestPoints = Integer.parseInt(token2);
- } else if(token.equals("slayer-task")) {
- p.slayerTask = Integer.parseInt(token2);
- } else if(token.equals("slayer-task-amount")) {
- p.slayerTaskA = Integer.parseInt(token2);
- } else if(token.equals("home-tele-time")) {
- p.homeTeleMinutes = Integer.parseInt(token2);
- } else if(token.equals("poison-damage")) {
- p.poisonDamage = Integer.parseInt(token2);
- } else if(token.equals("fight-mode")) {
- p.fightMode = Integer.parseInt(token2);
- } else if(token.equals("pouches")) {
- p.pouches[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- }
- break;
- case 3:
- if (token.equals("character-equip")) {
- p.playerEquipment[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- p.playerEquipmentN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- }
- break;
- case 4:
- if (token.equals("character-look")) {
- p.playerAppearance[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- }
- break;
- case 5:
- if (token.equals("character-skill")) {
- p.playerLevel[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- p.playerXP[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- }
- break;
- case 6:
- if (token.equals("character-item")) {
- p.playerItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- p.playerItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- }
- break;
- case 7:
- if (token.equals("character-bank")) {
- p.bankItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- p.bankItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- }
- break;
- case 8:
- if (token.equals("character-friend")) {
- p.friends[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
- }
- break;
- /*case 9:
- if (token.equals("character-ignore")) {
- p.ignores[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
- }
- break;*/
- }
- } else {
- if (line.equals("[ACCOUNT]")) { ReadMode = 1;
- } else if (line.equals("[CHARACTER]")) { ReadMode = 2;
- } else if (line.equals("[EQUIPMENT]")) { ReadMode = 3;
- } else if (line.equals("[LOOK]")) { ReadMode = 4;
- } else if (line.equals("[SKILLS]")) { ReadMode = 5;
- } else if (line.equals("[ITEMS]")) { ReadMode = 6;
- } else if (line.equals("[BANK]")) { ReadMode = 7;
- } else if (line.equals("[FRIENDS]")) { ReadMode = 8;
- } else if (line.equals("[IGNORES]")) { ReadMode = 9;
- } else if (line.equals("[EOF]")) { try { characterfile.close(); } catch(IOException ioexception) { } return 1;
- }
- }
- try {
- line = characterfile.readLine();
- } catch(IOException ioexception1) { EndOfFile = true; }
- }
- try { characterfile.close(); } catch(IOException ioexception) { }
- return 13;
- }
- /**
- *Saving
- **/
- public static boolean saveGame(Client p) {
- if(!p.saveFile || p.start == 0 || !p.saveCharacter) {
- return false;
- }
- if(p.playerName == null || Server.playerHandler.players[p.playerId] == null) {
- return false;
- }
- p.saveDelay = 120;
- BufferedWriter characterfile = null;
- try {
- characterfile = new BufferedWriter(new FileWriter("./Data/characters/"+p.playerName+".txt"));
- /*ACCOUNT*/
- characterfile.write("[ACCOUNT]", 0, 9);
- characterfile.newLine();
- characterfile.write("character-username = ", 0, 21);
- characterfile.write(p.playerName, 0, p.playerName.length());
- characterfile.newLine();
- characterfile.write("character-password = ", 0, 21);
- characterfile.write(p.playerPass, 0, p.playerPass.length());
- characterfile.newLine();
- characterfile.newLine();
- /*CHARACTER*/
- characterfile.write("[CHARACTER]", 0, 11);
- characterfile.newLine();
- characterfile.write("character-height = ", 0, 19);
- characterfile.write(Integer.toString(p.heightLevel), 0, Integer.toString(p.heightLevel).length());
- characterfile.newLine();
- characterfile.write("character-Assaultkills = ", 0, 24);
- characterfile.write(Integer.toString(p.Assaultkills), 0, Integer.toString(p.Assaultkills).length());
- characterfile.newLine();
- characterfile.write("character-posx = ", 0, 17);
- characterfile.write(Integer.toString(p.absX), 0, Integer.toString(p.absX).length());
- characterfile.newLine();
- characterfile.write("character-posy = ", 0, 17);
- characterfile.write(Integer.toString(p.absY), 0, Integer.toString(p.absY).length());
- characterfile.newLine();
- characterfile.write("character-rights = ", 0, 19);
- characterfile.write(Integer.toString(p.playerRights), 0, Integer.toString(p.playerRights).length());
- characterfile.newLine();
- characterfile.write("character-ip = ", 0, 15);
- characterfile.write(p.connectedFrom, 0, p.connectedFrom.length());
- characterfile.newLine();
- characterfile.write("character-start = ", 0, 18);
- characterfile.write(Integer.toString(p.start), 0, Integer.toString(p.start).length());
- characterfile.newLine();
- characterfile.write("character-energy = ", 0, 19);
- characterfile.write(Integer.toString(p.runEnergy), 0, Integer.toString(p.runEnergy).length());
- characterfile.newLine();
- for(int k = 0; k < p.lastKilledPlayers.size(); k++) {
- characterfile.write("players-killed = ", 0, 17);
- characterfile.write(Integer.toString(k), 0, 1);
- characterfile.write(" ", 0, 1);
- characterfile.write(p.lastKilledPlayers.get(k), 0, p.lastKilledPlayers.get(k).length());
- characterfile.newLine();
- }
- characterfile.write("skull-timer = ", 0, 14);
- characterfile.write(Integer.toString(p.skullTimer), 0, Integer.toString(p.skullTimer).length());
- characterfile.newLine();
- characterfile.write("magic-book = ", 0, 13);
- characterfile.write(Integer.toString(p.playerMagicBook), 0, Integer.toString(p.playerMagicBook).length());
- characterfile.newLine();
- for (int b = 0; b < p.barrowsNpcs.length; b++) {
- characterfile.write("brother-info = ", 0, 15);
- characterfile.write(Integer.toString(b), 0, Integer.toString(b).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(p.barrowsNpcs[b][1] <= 1 ? Integer.toString(0) : Integer.toString(p.barrowsNpcs[b][1]), 0, Integer.toString(p.barrowsNpcs[b][1]).length());
- characterfile.newLine();
- }
- characterfile.write("special-amount = ", 0, 17);
- characterfile.write(Double.toString(p.specAmount), 0, Double.toString(p.specAmount).length());
- characterfile.newLine();
- characterfile.write("selected-coffin = ", 0, 18);
- characterfile.write(Integer.toString(p.randomCoffin), 0, Integer.toString(p.randomCoffin).length());
- characterfile.newLine();
- characterfile.write("barrows-killcount = ", 0, 20);
- characterfile.write(Integer.toString(p.barrowsKillCount), 0, Integer.toString(p.barrowsKillCount).length());
- characterfile.newLine();
- characterfile.write("donator = ", 0, 10);
- characterfile.write(Integer.toString(p.donator), 0, Integer.toString(p.donator).length());
- characterfile.newLine();
- characterfile.write("donator-points = ", 0, 17);
- characterfile.write(Integer.toString(p.donatorPoints), 0, Integer.toString(p.donatorPoints).length());
- characterfile.newLine();
- characterfile.write("pk-points = ", 0, 12);
- characterfile.write(Integer.toString(p.pkPoints), 0, Integer.toString(p.pkPoints).length());
- characterfile.newLine();
- characterfile.write("kill-count = ", 0, 13);
- characterfile.write(Integer.toString(p.killCount), 0, Integer.toString(p.killCount).length());
- characterfile.newLine();
- characterfile.write("death-count = ", 0, 14);
- characterfile.write(Integer.toString(p.deathCount), 0, Integer.toString(p.deathCount).length());
- characterfile.newLine();
- characterfile.write("fight-mode = ", 0, 13);
- characterfile.write(Integer.toString(p.fightMode), 0, Integer.toString(p.fightMode).length());
- characterfile.newLine();
- characterfile.write("auto-retaliate = ", 0, 17);
- characterfile.write(Boolean.toString(p.autoRetaliate), 0, Boolean.toString(p.autoRetaliate).length());
- characterfile.newLine();
- characterfile.write("rfd-round = ", 0, 12);
- characterfile.write(Integer.toString(p.rfdRound), 0, Integer.toString(p.rfdRound).length());
- characterfile.newLine();
- characterfile.write("quest-points = ", 0, 15);
- characterfile.write(Integer.toString(p.questPoints), 0, Integer.toString(p.questPoints).length());
- characterfile.newLine();
- characterfile.write("mute-end = ", 0, 11);
- characterfile.write(Long.toString(p.muteEnd), 0, Long.toString(p.muteEnd).length());
- characterfile.newLine();
- characterfile.write("clue-1 = ", 0, 9);
- characterfile.write(Integer.toString(p.clueTask[0]), 0, Integer.toString(p.clueTask[0]).length());
- characterfile.newLine();
- characterfile.write("clue-2 = ", 0, 9);
- characterfile.write(Integer.toString(p.clueTask[1]), 0, Integer.toString(p.clueTask[1]).length());
- characterfile.newLine();
- characterfile.write("clue-3 = ", 0, 9);
- characterfile.write(Integer.toString(p.clueTask[2]), 0, Integer.toString(p.clueTask[2]).length());
- characterfile.newLine();
- characterfile.write("desert-treasure = ", 0, 18);
- characterfile.write(Integer.toString(p.desertT), 0, Integer.toString(p.desertT).length());
- characterfile.newLine();
- characterfile.write("dt-kill = ", 0, 10);
- characterfile.write(Integer.toString(p.lastDtKill), 0, Integer.toString(p.lastDtKill).length());
- characterfile.newLine();
- characterfile.write("horror-from-deep = ", 0, 19);
- characterfile.write(Integer.toString(p.horrorFromDeep), 0, Integer.toString(p.horrorFromDeep).length());
- characterfile.newLine();
- characterfile.write("pc-points = ", 0, 12);
- characterfile.write(Integer.toString(p.pestPoints), 0, Integer.toString(p.pestPoints).length());
- characterfile.newLine();
- characterfile.write("slayer-task = ", 0, 14);
- characterfile.write(Integer.toString(p.slayerTask), 0, Integer.toString(p.slayerTask).length());
- characterfile.newLine();
- characterfile.write("slayer-task-amount = ", 0, 21);
- characterfile.write(Integer.toString(p.slayerTaskA), 0, Integer.toString(p.slayerTaskA).length());
- characterfile.newLine();
- characterfile.write("home-tele-time = ", 0, 17);
- characterfile.write(Integer.toString(p.homeTeleMinutes), 0, Integer.toString(p.homeTeleMinutes).length());
- characterfile.newLine();
- characterfile.write("poison-damage = ", 0, 16);
- characterfile.write(Integer.toString(p.poisonDamage), 0, Integer.toString(p.poisonDamage).length());
- characterfile.newLine();
- characterfile.write("fight-mode = ", 0, 13);
- characterfile.write(Integer.toString(p.fightMode), 0, Integer.toString(p.fightMode).length());
- characterfile.newLine();
- for (int l = 0; l < p.pouches.length; l++) {
- characterfile.write("pouches = ", 0, 10);
- characterfile.write(Integer.toString(l), 0, Integer.toString(l).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.pouches[l]), 0, Integer.toString(p.pouches[l]).length());
- characterfile.newLine();
- }
- characterfile.newLine();
- /*EQUIPMENT*/
- characterfile.write("[EQUIPMENT]", 0, 11);
- characterfile.newLine();
- for (int i = 0; i < p.playerEquipment.length; i++) {
- characterfile.write("character-equip = ", 0, 18);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.playerEquipment[i]), 0, Integer.toString(p.playerEquipment[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.playerEquipmentN[i]), 0, Integer.toString(p.playerEquipmentN[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.newLine();
- }
- characterfile.newLine();
- /*LOOK*/
- characterfile.write("[LOOK]", 0, 6);
- characterfile.newLine();
- for (int i = 0; i < p.playerAppearance.length; i++) {
- characterfile.write("character-look = ", 0, 17);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.playerAppearance[i]), 0, Integer.toString(p.playerAppearance[i]).length());
- characterfile.newLine();
- }
- characterfile.newLine();
- /*SKILLS*/
- characterfile.write("[SKILLS]", 0, 8);
- characterfile.newLine();
- for (int i = 0; i < p.playerLevel.length; i++) {
- characterfile.write("character-skill = ", 0, 18);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.playerLevel[i]), 0, Integer.toString(p.playerLevel[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.playerXP[i]), 0, Integer.toString(p.playerXP[i]).length());
- characterfile.newLine();
- }
- characterfile.newLine();
- /*ITEMS*/
- characterfile.write("[ITEMS]", 0, 7);
- characterfile.newLine();
- for (int i = 0; i < p.playerItems.length; i++) {
- if (p.playerItems[i] > 0) {
- characterfile.write("character-item = ", 0, 17);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.playerItems[i]), 0, Integer.toString(p.playerItems[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.playerItemsN[i]), 0, Integer.toString(p.playerItemsN[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*BANK*/
- characterfile.write("[BANK]", 0, 6);
- characterfile.newLine();
- for (int i = 0; i < p.bankItems.length; i++) {
- if (p.bankItems[i] > 0) {
- characterfile.write("character-bank = ", 0, 17);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.bankItems[i]), 0, Integer.toString(p.bankItems[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(p.bankItemsN[i]), 0, Integer.toString(p.bankItemsN[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*FRIENDS*/
- characterfile.write("[FRIENDS]", 0, 9);
- characterfile.newLine();
- for (int i = 0; i < p.friends.length; i++) {
- if (p.friends[i] > 0) {
- characterfile.write("character-friend = ", 0, 19);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Long.toString(p.friends[i]), 0, Long.toString(p.friends[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*IGNORES*/
- characterfile.write("[IGNORES]", 0, 9);
- characterfile.newLine();
- for (int i = 0; i < p.ignores.length; i++) {
- if (p.ignores[i] > 0) {
- characterfile.write("character-ignore = ", 0, 19);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Long.toString(p.ignores[i]), 0, Long.toString(p.ignores[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*EOF*/
- characterfile.write("[EOF]", 0, 5);
- characterfile.newLine();
- characterfile.newLine();
- characterfile.close();
- } catch(IOException ioexception) {
- Misc.println(p.playerName+": error writing file.");
- return false;
- }
- if(p.playerRights < 3) {
- if(!Server.hiscoreManager.databaseRunning && Server.hiscoreManager.testConnect()) {
- Server.hiscoreManager.databaseRunning = true;
- Server.hiscoreManager.createConnection();
- } else if(Server.hiscoreManager.databaseRunning && !Server.hiscoreManager.databaseConnected)
- Server.hiscoreManager.createConnection();
- if(Server.hiscoreManager.databaseRunning && Server.hiscoreManager.databaseConnected)
- Server.hiscoreManager.saveHiscores(p);
- }
- return true;
- }
- }
Add Comment
Please, Sign In to add comment