Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Class FileManager
- *
- * Version 1.0
- *
- * Friday, August 22, 2008
- *
- * Created by Palidino76
- */
- package com.z474.io;
- import java.io.*;
- import com.z474.model.players.Player;
- import com.z474.util.Misc;
- import com.z474.util.Stream;
- public class FileManager {
- /**
- * Byte buffer for storing bytes to be loaded or saved.
- */
- // private Stream stream = new Stream(2000, 2000);
- private BufferedWriter buffer = null;
- /**
- * Saves a character file.
- *
- * @param p
- * The player to save.
- */
- public void saveCharacter(Player p) throws Exception {
- if (p == null) {
- return;
- }
- try {
- // buffer.outOffset = 0;
- buffer.write("username:" + p.username);
- buffer.newLine();
- buffer.write("password:" + Misc.stringToLong(p.password));
- buffer.newLine();
- buffer.write("rights:" + p.rights);
- buffer.newLine();
- buffer.write("absx:" + p.absX);
- buffer.newLine();
- buffer.write("absy:" + p.absY);
- buffer.newLine();
- buffer.write("height:" + p.heightLevel);
- buffer.newLine();
- buffer.write("runenergy:" + p.runEnergy);
- buffer.newLine();
- buffer.write("gender:" + p.gender);
- buffer.newLine();
- buffer.write("special:" + p.specialAmount);
- buffer.newLine();
- buffer.write("kills:" + p.totalKills);
- buffer.newLine();
- buffer.write("startingxp:" + p.startingXP);
- buffer.newLine();
- for (int i = 0; i < p.look.length; i++) {
- buffer.write("look" + i + ":" + p.look[i]);
- buffer.newLine();
- }
- for (int i = 0; i < p.color.length; i++) {
- if (p.color[i] > 0)
- buffer.write("color" + i + ":" + p.color[i]);
- buffer.newLine();
- }
- for (int i = 0; i < p.skillLvl.length; i++) {
- buffer.write("skill" + i + ":" + p.skillLvl[i] + ","
- + p.skillXP[i]);
- buffer.newLine();
- }
- for (int i = 0; i < p.equipment.length; i++) {
- if (p.equipment[i] > -1 && p.equipmentN[i] > 0)
- buffer.write("equipment" + i + ":" + p.equipment[i] + ","
- + p.equipmentN[i]);
- buffer.newLine();
- }
- for (int i = 0; i < p.items.length; i++) {
- if (p.items[i] > -1 && p.itemsN[i] > 0)
- buffer.write("item" + i + ":" + p.items[i] + ","
- + p.itemsN[i]);
- buffer.newLine();
- }
- for (int i = 0; i < p.bankItems.length; i++) {
- if (p.bankItems[i] > -1 && p.bankItemsN[i] > 0)
- buffer.write("bankitem" + i + ":" + p.bankItems[i] + ","
- + p.bankItemsN[i]);
- buffer.newLine();
- }
- buffer.write("[END]");
- buffer.newLine();
- FileOutputStream out = new FileOutputStream(
- "./data/characters/mainsave/" + p.username + ".dat");
- // out.write(buffer.outBuffer, 0, buffer.outOffset);
- out.flush();
- out.close();
- out = null;
- } catch (Exception e) {
- }
- }
- /**
- * Loads a character file.
- *
- * @param p
- * The player to save.
- */
- public void loadCharacter(Player p) {
- // buffer.inOffset = 0;
- BufferedReader buffer = null;
- try {
- buffer = new BufferedReader(new FileReader(
- "./data/characters/mainsave/" + p.username + ".dat"));
- } catch (FileNotFoundException e) {
- return;
- }
- String line;
- try {
- while ((line = buffer.readLine()) != null && line.length() > 0
- && !line.equals("[END]")) {
- if (line.startsWith("password:")) {
- p.password = Misc.longToString(Long.parseLong(line
- .substring(9)));
- } else if (line.startsWith("rights:"))
- p.rights = Integer.parseInt(line.substring(7));
- else if (line.startsWith("absx:"))
- p.teleportToX = Integer.parseInt(line.substring(5));
- else if (line.startsWith("absy:"))
- p.teleportToY = Integer.parseInt(line.substring(5));
- else if (line.startsWith("height:"))
- p.heightLevel = Integer.parseInt(line.substring(7));
- else if (line.startsWith("runenergy:"))
- p.runEnergy = Integer.parseInt(line.substring(10));
- else if (line.startsWith("gender:"))
- p.gender = Integer.parseInt(line.substring(7));
- else if (line.startsWith("look"))
- p.look[Integer.parseInt(line.substring(4, 5))] = Integer
- .parseInt(line.substring(6));
- else if (line.startsWith("color"))
- p.color[Integer.parseInt(line.substring(5, 6))] = Integer
- .parseInt(line.substring(7));
- else if (line.startsWith("skill")) {
- p.skillLvl[Integer.parseInt(line.substring(5, line
- .indexOf(":")))] = Integer.parseInt(line.substring(
- line.indexOf(":") + 1, line.indexOf(",")));
- p.skillXP[Integer.parseInt(line.substring(5, line
- .indexOf(":")))] = Integer.parseInt(line
- .substring(line.indexOf(",") + 1));
- } else if (line.startsWith("equipment")) {
- p.equipment[Integer.parseInt(line.substring(9, line
- .indexOf(":")))] = Integer.parseInt(line.substring(
- line.indexOf(":") + 1, line.indexOf(",")));
- p.equipmentN[Integer.parseInt(line.substring(9, line
- .indexOf(":")))] = Integer.parseInt(line
- .substring(line.indexOf(",") + 1));
- } else if (line.startsWith("item")) {
- p.items[Integer.parseInt(line.substring(4, line
- .indexOf(":")))] = Integer.parseInt(line.substring(
- line.indexOf(":") + 1, line.indexOf(",")));
- p.itemsN[Integer.parseInt(line.substring(4, line
- .indexOf(":")))] = Integer.parseInt(line
- .substring(line.indexOf(",") + 1));
- } else if (line.startsWith("bankitem")) {
- p.bankItems[Integer.parseInt(line.substring(8, line
- .indexOf(":")))] = Integer.parseInt(line.substring(
- line.indexOf(":") + 1, line.indexOf(",")));
- p.bankItemsN[Integer.parseInt(line.substring(8, line
- .indexOf(":")))] = Integer.parseInt(line
- .substring(line.indexOf(",") + 1));
- } else if (line.startsWith("special:"))
- p.specialAmount = Integer.parseInt(line.substring(8));
- else if (line.startsWith("kills:"))
- p.totalKills = Integer.parseInt(line.substring(6));
- else if (line.startsWith("startingxp:"))
- p.startingXP = Integer.parseInt(line.substring(11));
- }
- } catch (Exception e) {
- }
- }
- public void appendData(String file, String text) {
- BufferedWriter bw = null;
- try {
- FileWriter fileWriter = new FileWriter("./data/" + file, true);
- bw = new BufferedWriter(fileWriter);
- bw.write(text);
- bw.newLine();
- bw.flush();
- bw.close();
- fileWriter = null;
- bw = null;
- } catch (Exception exception) {
- Misc.println("Critical error while writing data: " + file);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement