Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.rs2.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 com.google.common.collect.Multiset.Entry;
- import server.util.Misc;
- public class PlayerSave {
- public static int loadGame(Player 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 = false;
- 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) || Misc.basicEncrypt(playerPass).equals(token2)
- || Misc.md5Hash(playerPass).equals(token2)) {
- playerPass = Misc.basicEncrypt(playerPass);
- } else {
- return 3;
- }
- }
- break;
- case 2:
- if (token.equals("barrows")) {
- for (int j = 0; j < token3.length; j++) {
- p.killedBrother[j] = Boolean.parseBoolean(token3[j]);
- }
- } else if (token.equals("character-height")) {
- p.heightLevel = Integer.parseInt(token2);
- } else if (token.equals("character-donator")) {
- p.playerDonator = Integer.parseInt(token2);
- } else if (token.equals("character-mac")) {
- p.macAddress = token2;
- } else if (token.equals("amount-donated")) {
- p.amountDonated = Integer.parseInt(token2);
- } else if (token.equals("donation-points")) {
- p.donationPoints = Integer.parseInt(token2);
- } else if (token.equals("character-posx")) {
- p.teleportToX = (Integer.parseInt(token2) <= 0 ? 3210 : Integer.parseInt(token2));
- } else if (token.equals("character-posy")) {
- p.teleportToY = (Integer.parseInt(token2) <= 0 ? 3424 : Integer.parseInt(token2));
- } else if (token.equals("character-rights")) {
- p.playerRights = Integer.parseInt(token2);
- } else if (token.equals("crystal-bow-shots")) {
- p.crystalBowArrowCount = Integer.parseInt(token2);
- } else if (token.equals("skull-timer")) {
- p.skullTimer = Integer.parseInt(token2);
- } else if (token.equals("heal-delay")) {
- p.healDelay = Integer.parseInt(token2);
- } else if (token.equals("special-amount")) {
- p.specAmount = Double.parseDouble(token2);
- } else if (token.equals("teleblock-length")) {
- p.teleBlockDelay = System.currentTimeMillis();
- p.teleBlockLength = Integer.parseInt(token2);
- } else if (token.equals("poison")) {
- p.poisonDamage = Integer.parseInt(token2);
- } else if (token.equals("autoRet")) {
- p.autoRet = Integer.parseInt(token2);
- } else if (token.equals("flagged")) {
- p.accountFlagged = Boolean.parseBoolean(token2);
- } else if (token.equals("fightMode")) {
- p.fightMode = Integer.parseInt(token2);
- } else if (token.equals("playerMagicBook")) {
- p.playerMagicBook = Integer.parseInt(token2);
- } else if (token.equals("lastLoginDate")) {
- p.lastLoginDate = Integer.parseInt(token2);
- } else if (token.equals("oldSpec")) {
- p.oldSpec = Boolean.parseBoolean(token2);
- } else if (token.equals("newSpecialBar")) {
- p.newSpecialBar = Boolean.parseBoolean(token2);
- } else if (token.equals("isRunning2")) {
- p.isRunning = Boolean.parseBoolean(token2);
- } else if (token.equals(destroytoggle")) {
- p.toggleDrops = Boolean.parseBoolean(token2);
- } else if (token.equals("run-energy")) {
- p.runEnergy = Integer.parseInt(token2);
- } else if (token.equals("brother-info")) {
- p.barrowsNpcs[Integer.parseInt(token3[0])][1] = Integer.parseInt(token3[1]);
- // } else if (token.equals("selected-coffin")) {
- // p.randomCoffin = Integer.parseInt(token2);
- } else if (token.equals("barrowskillcount")) {
- p.barrowsKillCount = Integer.parseInt(token2);
- } else if (token.equals("pc-points")) {
- p.pcPoints = Integer.parseInt(token2);
- } else if (token.equals("slayerTask")) {
- p.slayerTask = Integer.parseInt(token2);
- } else if (token.equals("taskAmount")) {
- p.taskAmount = Integer.parseInt(token2);
- } else if (token.equals("wave")) {
- p.waveId = Integer.parseInt(token2);
- } else if (token.equals("altar")) {
- p.altarPrayed = Integer.parseInt(token2);
- } else if (token.equals("splitChat")) {
- p.splitChat = Boolean.parseBoolean(token2);
- } else if (token.equals("expLock")) {
- p.expLock = Boolean.parseBoolean(token2);
- } else if (token.equals("wonChallenge")) {
- p.wonChallenge = Boolean.parseBoolean(token2);
- } else if (token.equals("spiritWave")) {
- p.spiritWave = Integer.parseInt(token2);
- } else if (token.equals("spiritCount")) {
- p.spiritCount = Integer.parseInt(token2);
- } else if (token.equals("poison")) {
- p.poisonDamage = Integer.parseInt(token2);
- } else if (token.equals("lastKilled")) {
- p.lastKilledIPs.add(token2);
- } else if (token.equals("pvp-points")) {
- p.pvpPoints = Integer.parseInt(token2);
- } else if (token.equals("pvp-kills")) {
- p.pvpKills = Integer.parseInt(token2);
- } else if (token.equals("pvp-points")) {
- p.pvpPoints = Integer.parseInt(token2);
- } else if (token.equals("slayer-points")) {
- p.slayerPoints = Integer.parseInt(token2);
- } else if (token.equals("barb-points")) {
- p.barbPoints = Integer.parseInt(token2);
- } else if (token.equals("rfd-points")) {
- p.rfdPoints = Integer.parseInt(token2);
- } else if (token.equals("rfd-done")) {
- p.rfdDone = Integer.parseInt(token2);
- } else if (token.equals("dfs_count")) {
- p.dfsCount = Integer.parseInt(token2);
- } else if (token.equals("fire-cape")) {
- p.fireCape = Integer.parseInt(token2);
- } else if (token.equals("armadyl-kc")) {
- p.Arma = Integer.parseInt(token2);
- } else if (token.equals("zamorak-kc")) {
- p.Zammy = Integer.parseInt(token2);
- } else if (token.equals("saradomin-kc")) {
- p.Sara = Integer.parseInt(token2);
- } else if (token.equals("bandos-kc")) {
- p.Band = Integer.parseInt(token2);
- } else if (token.equals("canTrade")) {
- p.canTrade = Boolean.parseBoolean(token2);
- } else if (token.equals("canDuel")) {
- p.canDuel = Boolean.parseBoolean(token2);
- } else if (token.equals("lastclanchat")) {
- p.lastClanChat = token2;
- } else if (token.equals("pouch")) {
- for (int j = 0; j < token3.length; j++) {
- p.pouch[j] = Integer.parseInt(token3[j]);
- }
- } else if (token.equals("bankPin")) {
- p.bankPin = token2;
- } else if (token.equals("setPin")) {
- p.setPin = Boolean.parseBoolean(token2);
- }
- 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")) {
- * ignores[Integer.parseInt(token3[0])] =
- * Long.parseLong(token3[1]); }
- */
- break;
- case 10:
- if (token.equals("character-degrade")) {
- p.degradables.add(Integer.parseInt(token3[0]), Integer.parseInt(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("[DEGRADE]")) {
- ReadMode = 10;
- } 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(Player p) {
- if (!p.saveFile || p.newPlayer || !p.saveCharacter) {
- // System.out.println("first");
- return false;
- }
- if (p.playerName == null || PlayerHandler.players[p.playerId] == null) {
- // System.out.println("second");
- return false;
- }
- p.playerName = p.playerName2;
- int tbTime = (int) (p.teleBlockDelay - System.currentTimeMillis() + p.teleBlockLength);
- if (tbTime > 300000 || tbTime < 0) {
- tbTime = 0;
- }
- 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);
- String passToWrite = Misc.md5Hash(p.playerPass);
- characterfile.write(passToWrite, 0, passToWrite.length());
- characterfile.newLine();
- characterfile.newLine();
- /* CHARACTER */
- characterfile.write("[CHARACTER]", 0, 11);
- characterfile.newLine();
- characterfile.write("character-mac = ", 0, 16);
- characterfile.write(p.getMacAddress(), 0, p.getMacAddress().length());
- 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-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-donator = ", 0, 20);
- characterfile.write(Integer.toString(p.playerDonator), 0, Integer.toString(p.playerDonator).length());
- characterfile.newLine();
- characterfile.write("amount-donated = ", 0, 17);
- characterfile.write(Integer.toString(p.amountDonated), 0, Integer.toString(p.amountDonated).length());
- characterfile.newLine();
- characterfile.write("donation-points = ", 0, 18);
- characterfile.write(Integer.toString(p.donationPoints), 0, Integer.toString(p.donationPoints).length());
- characterfile.newLine();
- characterfile.write("crystal-bow-shots = ", 0, 20);
- characterfile.write(Integer.toString(p.crystalBowArrowCount), 0,
- Integer.toString(p.crystalBowArrowCount).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("heal-delay = ", 0, 13);
- characterfile.write(Integer.toString(p.healDelay), 0, Integer.toString(p.healDelay).length());
- characterfile.newLine();
- characterfile.write("playerMagicBook = ", 0, 18);
- characterfile.write(Integer.toString(p.playerMagicBook), 0, Integer.toString(p.playerMagicBook).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("teleblock-length = ", 0, 19);
- characterfile.write(Integer.toString(tbTime), 0, Integer.toString(tbTime).length());
- characterfile.newLine();
- characterfile.write("poison = ", 0, 9);
- characterfile.write(Integer.toString(p.poisonDamage), 0, Integer.toString(p.poisonDamage).length());
- characterfile.newLine();
- characterfile.write("slayerTask = ", 0, 13);
- characterfile.write(Integer.toString(p.slayerTask), 0, Integer.toString(p.slayerTask).length());
- characterfile.newLine();
- characterfile.write("taskAmount = ", 0, 13);
- characterfile.write(Integer.toString(p.taskAmount), 0, Integer.toString(p.taskAmount).length());
- characterfile.newLine();
- characterfile.write("autoRet = ", 0, 10);
- characterfile.write(Integer.toString(p.autoRet), 0, Integer.toString(p.autoRet).length());
- characterfile.newLine();
- characterfile.write("flagged = ", 0, 10);
- characterfile.write(Boolean.toString(p.accountFlagged), 0, Boolean.toString(p.accountFlagged).length());
- characterfile.newLine();
- characterfile.write("fightMode = ", 0, 12);
- characterfile.write(Integer.toString(p.fightMode), 0, Integer.toString(p.fightMode).length());
- characterfile.newLine();
- characterfile.write("barrowskillcount = ", 0, 19);
- characterfile.write(Integer.toString(p.barrowsKillCount), 0, Integer.toString(p.barrowsKillCount).length());
- characterfile.newLine();
- // characterfile.write("selected-coffin = ", 0, 18);
- // characterfile.write(Integer.toString(p.randomCoffin), 0, Integer
- // .toString(p.randomCoffin).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("lastLoginDate = ", 0, 16);
- characterfile.write(Integer.toString(p.lastLoginDate), 0, Integer.toString(p.lastLoginDate).length());
- characterfile.newLine();
- characterfile.write("isRunning2 = ", 0, 13);
- characterfile.write(Boolean.toString(p.isRunning), 0, Boolean.toString(p.isRunning).length());
- characterfile.newLine();
- characterfile.write("destroytoggle = ", 0, 16);
- characterfile.write(Boolean.toString(p.toggleDrops), 0, Boolean.toString(p.toggleDrops).length());
- characterfile.newLine();
- characterfile.write("oldSpec = ", 0, 10);
- characterfile.write(Boolean.toString(p.oldSpec), 0, Boolean.toString(p.oldSpec).length());
- characterfile.newLine();
- characterfile.write("newSpecialBar = ", 0, 16);
- characterfile.write(Boolean.toString(p.newSpecialBar), 0, Boolean.toString(p.newSpecialBar).length());
- characterfile.newLine();
- characterfile.write("run-energy = ", 0, 13);
- characterfile.write(Integer.toString(p.runEnergy), 0, Integer.toString(p.runEnergy).length());
- characterfile.newLine();
- characterfile.write("wave = ", 0, 7);
- characterfile.write(Integer.toString(p.waveId), 0, Integer.toString(p.waveId).length());
- characterfile.newLine();
- characterfile.write("altar = ", 0, 8);
- characterfile.write(Integer.toString(p.altarPrayed), 0, Integer.toString(p.altarPrayed).length());
- characterfile.newLine();
- characterfile.write("splitChat = ", 0, 12);
- characterfile.write(Boolean.toString(p.splitChat), 0, Boolean.toString(p.splitChat).length());
- characterfile.newLine();
- characterfile.write("expLock = ", 0, 10);
- characterfile.write(Boolean.toString(p.expLock), 0, Boolean.toString(p.expLock).length());
- characterfile.newLine();
- characterfile.write("wonChallenge = ", 0, 15);
- characterfile.write(Boolean.toString(p.wonChallenge), 0, Boolean.toString(p.wonChallenge).length());
- characterfile.newLine();
- characterfile.write("spiritWave = ", 0, 13);
- characterfile.write(Integer.toString(p.spiritWave), 0, Integer.toString(p.spiritWave).length());
- characterfile.newLine();
- characterfile.write("spiritCount = ", 0, 14);
- characterfile.write(Integer.toString(p.spiritCount), 0, Integer.toString(p.spiritCount).length());
- characterfile.newLine();
- characterfile.write("pc-points = ", 0, 12);
- characterfile.write(Integer.toString(p.pcPoints), 0, Integer.toString(p.pcPoints).length());
- characterfile.newLine();
- if (!p.lastKilledIPs.isEmpty()) {
- for (String s : p.lastKilledIPs) {
- characterfile.write("lastKilled = ", 0, 13);
- characterfile.write(s, 0, s.length());
- characterfile.newLine();
- }
- }
- characterfile.write("pvp-points = ", 0, 13);
- characterfile.write(Integer.toString(p.pvpPoints), 0, Integer.toString(p.pvpPoints).length());
- characterfile.newLine();
- characterfile.write("pvp-kills = ", 0, 12);
- characterfile.write(Integer.toString(p.pvpKills), 0, Integer.toString(p.pvpKills).length());
- characterfile.newLine();
- characterfile.write("slayer-points = ", 0, 16);
- characterfile.write(Integer.toString(p.slayerPoints), 0, Integer.toString(p.slayerPoints).length());
- characterfile.newLine();
- characterfile.write("barb-points = ", 0, 14);
- characterfile.write(Integer.toString(p.barbPoints), 0, Integer.toString(p.barbPoints).length());
- characterfile.newLine();
- characterfile.write("rfd-points = ", 0, 13);
- characterfile.write(Integer.toString(p.rfdPoints), 0, Integer.toString(p.rfdPoints).length());
- characterfile.newLine();
- characterfile.write("rfd-done = ", 0, 11);
- characterfile.write(Integer.toString(p.rfdDone), 0, Integer.toString(p.rfdDone).length());
- characterfile.newLine();
- characterfile.write("dfs_count = ", 0, 12);
- characterfile.write(Integer.toString(p.dfsCount), 0, Integer.toString(p.dfsCount).length());
- characterfile.newLine();
- characterfile.write("fire-cape = ", 0, 12);
- characterfile.write(Integer.toString(p.fireCape), 0, Integer.toString(p.fireCape).length());
- characterfile.newLine();
- characterfile.write("armadyl-kc = ", 0, 13);
- characterfile.write(Integer.toString(p.Arma), 0, Integer.toString(p.Arma).length());
- characterfile.newLine();
- characterfile.write("zamorak-kc = ", 0, 13);
- characterfile.write(Integer.toString(p.Zammy), 0, Integer.toString(p.Zammy).length());
- characterfile.newLine();
- characterfile.write("saradomin-kc = ", 0, 15);
- characterfile.write(Integer.toString(p.Sara), 0, Integer.toString(p.Sara).length());
- characterfile.newLine();
- characterfile.write("bandos-kc = ", 0, 12);
- characterfile.write(Integer.toString(p.Band), 0, Integer.toString(p.Band).length());
- characterfile.newLine();
- characterfile.write("canTrade = ", 0, 11);
- characterfile.write(Boolean.toString(p.canTrade), 0, Boolean.toString(p.canTrade).length());
- characterfile.newLine();
- characterfile.write("canDuel = ", 0, 10);
- characterfile.write(Boolean.toString(p.canDuel), 0, Boolean.toString(p.canDuel).length());
- characterfile.newLine();
- characterfile.write("lastclanchat = ", 0, 15);
- characterfile.write(p.lastClanChat, 0, p.lastClanChat.length());
- characterfile.newLine();
- characterfile.write("pouch = ", 0, 8);
- characterfile.write(p.pouch[0] + "\t" + p.pouch[1] + "\t" + p.pouch[2] + "\t" + p.pouch[3]);
- characterfile.newLine();
- characterfile.write("bankPin = ", 0, 10);
- characterfile.write(p.bankPin, 0, p.bankPin.length());
- characterfile.newLine();
- characterfile.write("setPin = ", 0, 9);
- characterfile.write(Boolean.toString(p.setPin), 0, Boolean.toString(p.setPin).length());
- characterfile.newLine();
- /* EQUIPMENT */
- characterfile.newLine();
- 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("" + p.friends[i]);
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /* IGNORES */
- /*
- * characterfile.write("[IGNORES]", 0, 9); characterfile.newLine();
- * for (int i = 0; i < ignores.length; i++) { if (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(ignores[i]), 0,
- * Long.toString(ignores[i]).length()); characterfile.newLine(); } }
- * characterfile.newLine();
- */
- characterfile.write("[DEGRADE]");
- characterfile.newLine();
- for (Entry<Integer> it : p.degradables.entrySet()) {
- characterfile.write("character-degrade = ");
- characterfile.write(it.getElement() + "\t" + it.getCount());
- characterfile.newLine();
- }
- characterfile.newLine();
- /* EOF */
- characterfile.write("[EOF]");
- characterfile.newLine();
- characterfile.newLine();
- characterfile.close();
- } catch (IOException ioexception) {
- Misc.println(p.playerName + ": error writing file.");
- return false;
- }
- return true;
- }
- /**
- * Tells us whether or not the player exists for the specified name.
- *
- * @param name
- * @return
- */
- public static boolean playerExists(String name) {
- File file = new File("./Data/characters/" + name + ".txt");
- return file.exists();
- }
- /**
- * Tells use whether or not the specified name has the friend added.
- *
- * @param name
- * @param friend
- * @return
- */
- public static boolean isFriend(String name, String friend) {
- long nameLong = Misc.playerNameToInt64(friend);
- long[] friends = getFriends(name);
- if (friends != null && friends.length > 0) {
- for (int index = 0; index < friends.length; index++) {
- if (friends[index] == nameLong) {
- return true;
- }
- }
- }
- return false;
- }
- /**
- * Returns a characters friends in the form of a long array.
- *
- * @param name
- * @return
- */
- public static long[] getFriends(String name) {
- String line = "";
- String token = "";
- String token2 = "";
- String[] token3 = new String[3];
- boolean end = false;
- int readMode = 0;
- BufferedReader file = null;
- boolean file1 = false;
- long[] readFriends = new long[200];
- long[] friends = null;
- int totalFriends = 0;
- try {
- file = new BufferedReader(new FileReader("./Data/characters/" + name + ".txt"));
- file1 = true;
- } catch (FileNotFoundException fileex1) {
- }
- if (file1) {
- new File("./Data/characters/" + name + ".txt");
- } else {
- return null;
- }
- try {
- line = file.readLine();
- } catch (IOException ioexception) {
- return null;
- }
- while (end == 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 0:
- if (token.equals("character-friend")) {
- readFriends[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
- totalFriends++;
- }
- break;
- }
- } else {
- if (line.equals("[FRIENDS]")) {
- readMode = 0;
- } else if (line.equals("[EOF]")) {
- try {
- file.close();
- } catch (IOException ioexception) {
- }
- }
- }
- try {
- line = file.readLine();
- } catch (IOException ioexception1) {
- end = true;
- }
- }
- try {
- if (totalFriends > 0) {
- friends = new long[totalFriends];
- for (int index = 0; index < totalFriends; index++) {
- friends[index] = readFriends[index];
- }
- return friends;
- }
- file.close();
- } catch (IOException ioexception) {
- }
- return null;
- }
- public static void appendData(String file, String text) {
- BufferedWriter bw = null;
- try {
- FileWriter fileWriter = new FileWriter(file, true);
- bw = new BufferedWriter(fileWriter);
- bw.write(text);
- bw.newLine();
- bw.flush();
- bw.close();
- fileWriter = null;
- bw = null;
- } catch (Exception exception) {
- System.out.println("Critical error while writing data: " + file);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement