Advertisement
Guest User

Untitled

a guest
Mar 16th, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package server.rs2.players;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.File;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileReader;
  8. import java.io.FileWriter;
  9. import java.io.IOException;
  10.  
  11. import com.google.common.collect.Multiset.Entry;
  12.  
  13. import server.util.Misc;
  14.  
  15. public class PlayerSave {
  16.  
  17. public static int loadGame(Player p, String playerName, String playerPass) {
  18. String line = "";
  19. String token = "";
  20. String token2 = "";
  21. String[] token3 = new String[3];
  22. boolean EndOfFile = false;
  23. int ReadMode = 0;
  24. BufferedReader characterfile = null;
  25. boolean File1 = false;
  26.  
  27. try {
  28. characterfile = new BufferedReader(new FileReader("./Data/characters/" + playerName + ".txt"));
  29. File1 = true;
  30. } catch (FileNotFoundException fileex1) {
  31. }
  32.  
  33. if (File1) {
  34. // new File ("./characters/"+playerName+".txt");
  35. } else {
  36. Misc.println(playerName + ": character file not found.");
  37. p.newPlayer = false;
  38. return 0;
  39. }
  40. try {
  41. line = characterfile.readLine();
  42. } catch (IOException ioexception) {
  43. Misc.println(playerName + ": error loading file.");
  44. return 3;
  45. }
  46. while (EndOfFile == false && line != null) {
  47. line = line.trim();
  48. int spot = line.indexOf("=");
  49. if (spot > -1) {
  50. token = line.substring(0, spot);
  51. token = token.trim();
  52. token2 = line.substring(spot + 1);
  53. token2 = token2.trim();
  54. token3 = token2.split("\t");
  55. switch (ReadMode) {
  56. case 1:
  57. if (token.equals("character-password")) {
  58. if (playerPass.equalsIgnoreCase(token2) || Misc.basicEncrypt(playerPass).equals(token2)
  59. || Misc.md5Hash(playerPass).equals(token2)) {
  60. playerPass = Misc.basicEncrypt(playerPass);
  61. } else {
  62. return 3;
  63. }
  64. }
  65. break;
  66. case 2:
  67. if (token.equals("barrows")) {
  68. for (int j = 0; j < token3.length; j++) {
  69. p.killedBrother[j] = Boolean.parseBoolean(token3[j]);
  70. }
  71. } else if (token.equals("character-height")) {
  72. p.heightLevel = Integer.parseInt(token2);
  73. } else if (token.equals("character-donator")) {
  74. p.playerDonator = Integer.parseInt(token2);
  75. } else if (token.equals("character-mac")) {
  76. p.macAddress = token2;
  77. } else if (token.equals("amount-donated")) {
  78. p.amountDonated = Integer.parseInt(token2);
  79. } else if (token.equals("donation-points")) {
  80. p.donationPoints = Integer.parseInt(token2);
  81. } else if (token.equals("character-posx")) {
  82. p.teleportToX = (Integer.parseInt(token2) <= 0 ? 3210 : Integer.parseInt(token2));
  83. } else if (token.equals("character-posy")) {
  84. p.teleportToY = (Integer.parseInt(token2) <= 0 ? 3424 : Integer.parseInt(token2));
  85. } else if (token.equals("character-rights")) {
  86. p.playerRights = Integer.parseInt(token2);
  87. } else if (token.equals("crystal-bow-shots")) {
  88. p.crystalBowArrowCount = Integer.parseInt(token2);
  89. } else if (token.equals("skull-timer")) {
  90. p.skullTimer = Integer.parseInt(token2);
  91. } else if (token.equals("heal-delay")) {
  92. p.healDelay = Integer.parseInt(token2);
  93. } else if (token.equals("special-amount")) {
  94. p.specAmount = Double.parseDouble(token2);
  95. } else if (token.equals("teleblock-length")) {
  96. p.teleBlockDelay = System.currentTimeMillis();
  97. p.teleBlockLength = Integer.parseInt(token2);
  98. } else if (token.equals("poison")) {
  99. p.poisonDamage = Integer.parseInt(token2);
  100. } else if (token.equals("autoRet")) {
  101. p.autoRet = Integer.parseInt(token2);
  102. } else if (token.equals("flagged")) {
  103. p.accountFlagged = Boolean.parseBoolean(token2);
  104. } else if (token.equals("fightMode")) {
  105. p.fightMode = Integer.parseInt(token2);
  106. } else if (token.equals("playerMagicBook")) {
  107. p.playerMagicBook = Integer.parseInt(token2);
  108. } else if (token.equals("lastLoginDate")) {
  109. p.lastLoginDate = Integer.parseInt(token2);
  110. } else if (token.equals("oldSpec")) {
  111. p.oldSpec = Boolean.parseBoolean(token2);
  112. } else if (token.equals("newSpecialBar")) {
  113. p.newSpecialBar = Boolean.parseBoolean(token2);
  114. } else if (token.equals("isRunning2")) {
  115. p.isRunning = Boolean.parseBoolean(token2);
  116. } else if (token.equals(destroytoggle")) {
  117. p.toggleDrops = Boolean.parseBoolean(token2);
  118. } else if (token.equals("run-energy")) {
  119. p.runEnergy = Integer.parseInt(token2);
  120. } else if (token.equals("brother-info")) {
  121. p.barrowsNpcs[Integer.parseInt(token3[0])][1] = Integer.parseInt(token3[1]);
  122. // } else if (token.equals("selected-coffin")) {
  123. // p.randomCoffin = Integer.parseInt(token2);
  124. } else if (token.equals("barrowskillcount")) {
  125. p.barrowsKillCount = Integer.parseInt(token2);
  126. } else if (token.equals("pc-points")) {
  127. p.pcPoints = Integer.parseInt(token2);
  128. } else if (token.equals("slayerTask")) {
  129. p.slayerTask = Integer.parseInt(token2);
  130. } else if (token.equals("taskAmount")) {
  131. p.taskAmount = Integer.parseInt(token2);
  132. } else if (token.equals("wave")) {
  133. p.waveId = Integer.parseInt(token2);
  134. } else if (token.equals("altar")) {
  135. p.altarPrayed = Integer.parseInt(token2);
  136. } else if (token.equals("splitChat")) {
  137. p.splitChat = Boolean.parseBoolean(token2);
  138. } else if (token.equals("expLock")) {
  139. p.expLock = Boolean.parseBoolean(token2);
  140. } else if (token.equals("wonChallenge")) {
  141. p.wonChallenge = Boolean.parseBoolean(token2);
  142. } else if (token.equals("spiritWave")) {
  143. p.spiritWave = Integer.parseInt(token2);
  144. } else if (token.equals("spiritCount")) {
  145. p.spiritCount = Integer.parseInt(token2);
  146. } else if (token.equals("poison")) {
  147. p.poisonDamage = Integer.parseInt(token2);
  148. } else if (token.equals("lastKilled")) {
  149. p.lastKilledIPs.add(token2);
  150. } else if (token.equals("pvp-points")) {
  151. p.pvpPoints = Integer.parseInt(token2);
  152. } else if (token.equals("pvp-kills")) {
  153. p.pvpKills = Integer.parseInt(token2);
  154. } else if (token.equals("pvp-points")) {
  155. p.pvpPoints = Integer.parseInt(token2);
  156. } else if (token.equals("slayer-points")) {
  157. p.slayerPoints = Integer.parseInt(token2);
  158. } else if (token.equals("barb-points")) {
  159. p.barbPoints = Integer.parseInt(token2);
  160. } else if (token.equals("rfd-points")) {
  161. p.rfdPoints = Integer.parseInt(token2);
  162. } else if (token.equals("rfd-done")) {
  163. p.rfdDone = Integer.parseInt(token2);
  164. } else if (token.equals("dfs_count")) {
  165. p.dfsCount = Integer.parseInt(token2);
  166. } else if (token.equals("fire-cape")) {
  167. p.fireCape = Integer.parseInt(token2);
  168. } else if (token.equals("armadyl-kc")) {
  169. p.Arma = Integer.parseInt(token2);
  170. } else if (token.equals("zamorak-kc")) {
  171. p.Zammy = Integer.parseInt(token2);
  172. } else if (token.equals("saradomin-kc")) {
  173. p.Sara = Integer.parseInt(token2);
  174. } else if (token.equals("bandos-kc")) {
  175. p.Band = Integer.parseInt(token2);
  176. } else if (token.equals("canTrade")) {
  177. p.canTrade = Boolean.parseBoolean(token2);
  178. } else if (token.equals("canDuel")) {
  179. p.canDuel = Boolean.parseBoolean(token2);
  180. } else if (token.equals("lastclanchat")) {
  181. p.lastClanChat = token2;
  182. } else if (token.equals("pouch")) {
  183. for (int j = 0; j < token3.length; j++) {
  184. p.pouch[j] = Integer.parseInt(token3[j]);
  185. }
  186. } else if (token.equals("bankPin")) {
  187. p.bankPin = token2;
  188. } else if (token.equals("setPin")) {
  189. p.setPin = Boolean.parseBoolean(token2);
  190. }
  191. break;
  192. case 3:
  193. if (token.equals("character-equip")) {
  194. p.playerEquipment[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  195. p.playerEquipmentN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  196. }
  197. break;
  198. case 4:
  199. if (token.equals("character-look")) {
  200. p.playerAppearance[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  201. }
  202. break;
  203. case 5:
  204. if (token.equals("character-skill")) {
  205. p.playerLevel[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  206. p.playerXP[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  207. }
  208. break;
  209. case 6:
  210. if (token.equals("character-item")) {
  211. p.playerItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  212. p.playerItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  213. }
  214. break;
  215. case 7:
  216. if (token.equals("character-bank")) {
  217. p.bankItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  218. p.bankItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  219. }
  220. break;
  221. case 8:
  222. if (token.equals("character-friend")) {
  223. p.friends[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
  224. }
  225. break;
  226. case 9:
  227. /*
  228. * if (token.equals("character-ignore")) {
  229. * ignores[Integer.parseInt(token3[0])] =
  230. * Long.parseLong(token3[1]); }
  231. */
  232. break;
  233. case 10:
  234. if (token.equals("character-degrade")) {
  235. p.degradables.add(Integer.parseInt(token3[0]), Integer.parseInt(token3[1]));
  236. }
  237. break;
  238. }
  239. } else {
  240. if (line.equals("[ACCOUNT]")) {
  241. ReadMode = 1;
  242. } else if (line.equals("[CHARACTER]")) {
  243. ReadMode = 2;
  244. } else if (line.equals("[EQUIPMENT]")) {
  245. ReadMode = 3;
  246. } else if (line.equals("[LOOK]")) {
  247. ReadMode = 4;
  248. } else if (line.equals("[SKILLS]")) {
  249. ReadMode = 5;
  250. } else if (line.equals("[ITEMS]")) {
  251. ReadMode = 6;
  252. } else if (line.equals("[BANK]")) {
  253. ReadMode = 7;
  254. } else if (line.equals("[FRIENDS]")) {
  255. ReadMode = 8;
  256. } else if (line.equals("[IGNORES]")) {
  257. ReadMode = 9;
  258. } else if (line.equals("[DEGRADE]")) {
  259. ReadMode = 10;
  260. } else if (line.equals("[EOF]")) {
  261. try {
  262. characterfile.close();
  263. } catch (IOException ioexception) {
  264. }
  265. return 1;
  266. }
  267. }
  268. try {
  269. line = characterfile.readLine();
  270. } catch (IOException ioexception1) {
  271. EndOfFile = true;
  272. }
  273. }
  274. try {
  275. characterfile.close();
  276. } catch (IOException ioexception) {
  277. }
  278. return 13;
  279. }
  280.  
  281. /**
  282. * Saving
  283. **/
  284. public static boolean saveGame(Player p) {
  285. if (!p.saveFile || p.newPlayer || !p.saveCharacter) {
  286. // System.out.println("first");
  287. return false;
  288. }
  289. if (p.playerName == null || PlayerHandler.players[p.playerId] == null) {
  290. // System.out.println("second");
  291. return false;
  292. }
  293. p.playerName = p.playerName2;
  294. int tbTime = (int) (p.teleBlockDelay - System.currentTimeMillis() + p.teleBlockLength);
  295. if (tbTime > 300000 || tbTime < 0) {
  296. tbTime = 0;
  297. }
  298.  
  299. BufferedWriter characterfile = null;
  300. try {
  301. characterfile = new BufferedWriter(new FileWriter("./Data/characters/" + p.playerName + ".txt"));
  302.  
  303. /* ACCOUNT */
  304. characterfile.write("[ACCOUNT]", 0, 9);
  305. characterfile.newLine();
  306. characterfile.write("character-username = ", 0, 21);
  307. characterfile.write(p.playerName, 0, p.playerName.length());
  308. characterfile.newLine();
  309. characterfile.write("character-password = ", 0, 21);
  310. String passToWrite = Misc.md5Hash(p.playerPass);
  311. characterfile.write(passToWrite, 0, passToWrite.length());
  312. characterfile.newLine();
  313. characterfile.newLine();
  314.  
  315. /* CHARACTER */
  316. characterfile.write("[CHARACTER]", 0, 11);
  317. characterfile.newLine();
  318. characterfile.write("character-mac = ", 0, 16);
  319. characterfile.write(p.getMacAddress(), 0, p.getMacAddress().length());
  320. characterfile.newLine();
  321. characterfile.write("character-height = ", 0, 19);
  322. characterfile.write(Integer.toString(p.heightLevel), 0, Integer.toString(p.heightLevel).length());
  323. characterfile.newLine();
  324. characterfile.write("character-posx = ", 0, 17);
  325. characterfile.write(Integer.toString(p.absX), 0, Integer.toString(p.absX).length());
  326. characterfile.newLine();
  327. characterfile.write("character-posy = ", 0, 17);
  328. characterfile.write(Integer.toString(p.absY), 0, Integer.toString(p.absY).length());
  329. characterfile.newLine();
  330. characterfile.write("character-rights = ", 0, 19);
  331. characterfile.write(Integer.toString(p.playerRights), 0, Integer.toString(p.playerRights).length());
  332. characterfile.newLine();
  333. characterfile.write("character-donator = ", 0, 20);
  334. characterfile.write(Integer.toString(p.playerDonator), 0, Integer.toString(p.playerDonator).length());
  335. characterfile.newLine();
  336. characterfile.write("amount-donated = ", 0, 17);
  337. characterfile.write(Integer.toString(p.amountDonated), 0, Integer.toString(p.amountDonated).length());
  338. characterfile.newLine();
  339. characterfile.write("donation-points = ", 0, 18);
  340. characterfile.write(Integer.toString(p.donationPoints), 0, Integer.toString(p.donationPoints).length());
  341. characterfile.newLine();
  342. characterfile.write("crystal-bow-shots = ", 0, 20);
  343. characterfile.write(Integer.toString(p.crystalBowArrowCount), 0,
  344. Integer.toString(p.crystalBowArrowCount).length());
  345. characterfile.newLine();
  346. characterfile.write("skull-timer = ", 0, 14);
  347. characterfile.write(Integer.toString(p.skullTimer), 0, Integer.toString(p.skullTimer).length());
  348. characterfile.newLine();
  349. characterfile.write("heal-delay = ", 0, 13);
  350. characterfile.write(Integer.toString(p.healDelay), 0, Integer.toString(p.healDelay).length());
  351. characterfile.newLine();
  352. characterfile.write("playerMagicBook = ", 0, 18);
  353. characterfile.write(Integer.toString(p.playerMagicBook), 0, Integer.toString(p.playerMagicBook).length());
  354. characterfile.newLine();
  355. characterfile.write("special-amount = ", 0, 17);
  356. characterfile.write(Double.toString(p.specAmount), 0, Double.toString(p.specAmount).length());
  357. characterfile.newLine();
  358. characterfile.write("teleblock-length = ", 0, 19);
  359. characterfile.write(Integer.toString(tbTime), 0, Integer.toString(tbTime).length());
  360. characterfile.newLine();
  361. characterfile.write("poison = ", 0, 9);
  362. characterfile.write(Integer.toString(p.poisonDamage), 0, Integer.toString(p.poisonDamage).length());
  363. characterfile.newLine();
  364. characterfile.write("slayerTask = ", 0, 13);
  365. characterfile.write(Integer.toString(p.slayerTask), 0, Integer.toString(p.slayerTask).length());
  366. characterfile.newLine();
  367. characterfile.write("taskAmount = ", 0, 13);
  368. characterfile.write(Integer.toString(p.taskAmount), 0, Integer.toString(p.taskAmount).length());
  369. characterfile.newLine();
  370. characterfile.write("autoRet = ", 0, 10);
  371. characterfile.write(Integer.toString(p.autoRet), 0, Integer.toString(p.autoRet).length());
  372. characterfile.newLine();
  373. characterfile.write("flagged = ", 0, 10);
  374. characterfile.write(Boolean.toString(p.accountFlagged), 0, Boolean.toString(p.accountFlagged).length());
  375. characterfile.newLine();
  376. characterfile.write("fightMode = ", 0, 12);
  377. characterfile.write(Integer.toString(p.fightMode), 0, Integer.toString(p.fightMode).length());
  378. characterfile.newLine();
  379. characterfile.write("barrowskillcount = ", 0, 19);
  380. characterfile.write(Integer.toString(p.barrowsKillCount), 0, Integer.toString(p.barrowsKillCount).length());
  381. characterfile.newLine();
  382. // characterfile.write("selected-coffin = ", 0, 18);
  383. // characterfile.write(Integer.toString(p.randomCoffin), 0, Integer
  384. // .toString(p.randomCoffin).length());
  385. // characterfile.newLine();
  386. for (int b = 0; b < p.barrowsNpcs.length; b++) {
  387. characterfile.write("brother-info = ", 0, 15);
  388. characterfile.write(Integer.toString(b), 0, Integer.toString(b).length());
  389. characterfile.write(" ", 0, 1);
  390. characterfile.write(
  391. p.barrowsNpcs[b][1] <= 1 ? Integer.toString(0) : Integer.toString(p.barrowsNpcs[b][1]), 0,
  392. Integer.toString(p.barrowsNpcs[b][1]).length());
  393. characterfile.newLine();
  394. }
  395. characterfile.write("lastLoginDate = ", 0, 16);
  396. characterfile.write(Integer.toString(p.lastLoginDate), 0, Integer.toString(p.lastLoginDate).length());
  397. characterfile.newLine();
  398. characterfile.write("isRunning2 = ", 0, 13);
  399. characterfile.write(Boolean.toString(p.isRunning), 0, Boolean.toString(p.isRunning).length());
  400. characterfile.newLine();
  401. characterfile.write("destroytoggle = ", 0, 16);
  402. characterfile.write(Boolean.toString(p.toggleDrops), 0, Boolean.toString(p.toggleDrops).length());
  403. characterfile.newLine();
  404. characterfile.write("oldSpec = ", 0, 10);
  405. characterfile.write(Boolean.toString(p.oldSpec), 0, Boolean.toString(p.oldSpec).length());
  406. characterfile.newLine();
  407. characterfile.write("newSpecialBar = ", 0, 16);
  408. characterfile.write(Boolean.toString(p.newSpecialBar), 0, Boolean.toString(p.newSpecialBar).length());
  409. characterfile.newLine();
  410. characterfile.write("run-energy = ", 0, 13);
  411. characterfile.write(Integer.toString(p.runEnergy), 0, Integer.toString(p.runEnergy).length());
  412. characterfile.newLine();
  413. characterfile.write("wave = ", 0, 7);
  414. characterfile.write(Integer.toString(p.waveId), 0, Integer.toString(p.waveId).length());
  415. characterfile.newLine();
  416. characterfile.write("altar = ", 0, 8);
  417. characterfile.write(Integer.toString(p.altarPrayed), 0, Integer.toString(p.altarPrayed).length());
  418. characterfile.newLine();
  419. characterfile.write("splitChat = ", 0, 12);
  420. characterfile.write(Boolean.toString(p.splitChat), 0, Boolean.toString(p.splitChat).length());
  421. characterfile.newLine();
  422. characterfile.write("expLock = ", 0, 10);
  423. characterfile.write(Boolean.toString(p.expLock), 0, Boolean.toString(p.expLock).length());
  424. characterfile.newLine();
  425. characterfile.write("wonChallenge = ", 0, 15);
  426. characterfile.write(Boolean.toString(p.wonChallenge), 0, Boolean.toString(p.wonChallenge).length());
  427. characterfile.newLine();
  428. characterfile.write("spiritWave = ", 0, 13);
  429. characterfile.write(Integer.toString(p.spiritWave), 0, Integer.toString(p.spiritWave).length());
  430. characterfile.newLine();
  431. characterfile.write("spiritCount = ", 0, 14);
  432. characterfile.write(Integer.toString(p.spiritCount), 0, Integer.toString(p.spiritCount).length());
  433. characterfile.newLine();
  434. characterfile.write("pc-points = ", 0, 12);
  435. characterfile.write(Integer.toString(p.pcPoints), 0, Integer.toString(p.pcPoints).length());
  436. characterfile.newLine();
  437. if (!p.lastKilledIPs.isEmpty()) {
  438. for (String s : p.lastKilledIPs) {
  439. characterfile.write("lastKilled = ", 0, 13);
  440. characterfile.write(s, 0, s.length());
  441. characterfile.newLine();
  442. }
  443. }
  444. characterfile.write("pvp-points = ", 0, 13);
  445. characterfile.write(Integer.toString(p.pvpPoints), 0, Integer.toString(p.pvpPoints).length());
  446. characterfile.newLine();
  447. characterfile.write("pvp-kills = ", 0, 12);
  448. characterfile.write(Integer.toString(p.pvpKills), 0, Integer.toString(p.pvpKills).length());
  449. characterfile.newLine();
  450. characterfile.write("slayer-points = ", 0, 16);
  451. characterfile.write(Integer.toString(p.slayerPoints), 0, Integer.toString(p.slayerPoints).length());
  452. characterfile.newLine();
  453. characterfile.write("barb-points = ", 0, 14);
  454. characterfile.write(Integer.toString(p.barbPoints), 0, Integer.toString(p.barbPoints).length());
  455. characterfile.newLine();
  456. characterfile.write("rfd-points = ", 0, 13);
  457. characterfile.write(Integer.toString(p.rfdPoints), 0, Integer.toString(p.rfdPoints).length());
  458. characterfile.newLine();
  459. characterfile.write("rfd-done = ", 0, 11);
  460. characterfile.write(Integer.toString(p.rfdDone), 0, Integer.toString(p.rfdDone).length());
  461. characterfile.newLine();
  462. characterfile.write("dfs_count = ", 0, 12);
  463. characterfile.write(Integer.toString(p.dfsCount), 0, Integer.toString(p.dfsCount).length());
  464. characterfile.newLine();
  465. characterfile.write("fire-cape = ", 0, 12);
  466. characterfile.write(Integer.toString(p.fireCape), 0, Integer.toString(p.fireCape).length());
  467. characterfile.newLine();
  468.  
  469. characterfile.write("armadyl-kc = ", 0, 13);
  470. characterfile.write(Integer.toString(p.Arma), 0, Integer.toString(p.Arma).length());
  471. characterfile.newLine();
  472. characterfile.write("zamorak-kc = ", 0, 13);
  473. characterfile.write(Integer.toString(p.Zammy), 0, Integer.toString(p.Zammy).length());
  474. characterfile.newLine();
  475. characterfile.write("saradomin-kc = ", 0, 15);
  476. characterfile.write(Integer.toString(p.Sara), 0, Integer.toString(p.Sara).length());
  477. characterfile.newLine();
  478. characterfile.write("bandos-kc = ", 0, 12);
  479. characterfile.write(Integer.toString(p.Band), 0, Integer.toString(p.Band).length());
  480. characterfile.newLine();
  481. characterfile.write("canTrade = ", 0, 11);
  482. characterfile.write(Boolean.toString(p.canTrade), 0, Boolean.toString(p.canTrade).length());
  483. characterfile.newLine();
  484. characterfile.write("canDuel = ", 0, 10);
  485. characterfile.write(Boolean.toString(p.canDuel), 0, Boolean.toString(p.canDuel).length());
  486. characterfile.newLine();
  487. characterfile.write("lastclanchat = ", 0, 15);
  488. characterfile.write(p.lastClanChat, 0, p.lastClanChat.length());
  489. characterfile.newLine();
  490. characterfile.write("pouch = ", 0, 8);
  491. characterfile.write(p.pouch[0] + "\t" + p.pouch[1] + "\t" + p.pouch[2] + "\t" + p.pouch[3]);
  492. characterfile.newLine();
  493. characterfile.write("bankPin = ", 0, 10);
  494. characterfile.write(p.bankPin, 0, p.bankPin.length());
  495. characterfile.newLine();
  496. characterfile.write("setPin = ", 0, 9);
  497. characterfile.write(Boolean.toString(p.setPin), 0, Boolean.toString(p.setPin).length());
  498. characterfile.newLine();
  499. /* EQUIPMENT */
  500. characterfile.newLine();
  501. characterfile.write("[EQUIPMENT]", 0, 11);
  502. characterfile.newLine();
  503. for (int i = 0; i < p.playerEquipment.length; i++) {
  504. characterfile.write("character-equip = ", 0, 18);
  505. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  506. characterfile.write(" ", 0, 1);
  507. characterfile.write(Integer.toString(p.playerEquipment[i]), 0,
  508. Integer.toString(p.playerEquipment[i]).length());
  509. characterfile.write(" ", 0, 1);
  510. characterfile.write(Integer.toString(p.playerEquipmentN[i]), 0,
  511. Integer.toString(p.playerEquipmentN[i]).length());
  512. characterfile.write(" ", 0, 1);
  513. characterfile.newLine();
  514. }
  515. characterfile.newLine();
  516.  
  517. /* LOOK */
  518. characterfile.write("[LOOK]", 0, 6);
  519. characterfile.newLine();
  520. for (int i = 0; i < p.playerAppearance.length; i++) {
  521. characterfile.write("character-look = ", 0, 17);
  522. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  523. characterfile.write(" ", 0, 1);
  524. characterfile.write(Integer.toString(p.playerAppearance[i]), 0,
  525. Integer.toString(p.playerAppearance[i]).length());
  526. characterfile.newLine();
  527. }
  528. characterfile.newLine();
  529.  
  530. /* SKILLS */
  531. characterfile.write("[SKILLS]", 0, 8);
  532. characterfile.newLine();
  533. for (int i = 0; i < p.playerLevel.length; i++) {
  534. characterfile.write("character-skill = ", 0, 18);
  535. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  536. characterfile.write(" ", 0, 1);
  537. characterfile.write(Integer.toString(p.playerLevel[i]), 0, Integer.toString(p.playerLevel[i]).length());
  538. characterfile.write(" ", 0, 1);
  539. characterfile.write(Integer.toString(p.playerXP[i]), 0, Integer.toString(p.playerXP[i]).length());
  540. characterfile.newLine();
  541. }
  542. characterfile.newLine();
  543.  
  544. /* ITEMS */
  545. characterfile.write("[ITEMS]", 0, 7);
  546. characterfile.newLine();
  547. for (int i = 0; i < p.playerItems.length; i++) {
  548. if (p.playerItems[i] > 0) {
  549. characterfile.write("character-item = ", 0, 17);
  550. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  551. characterfile.write(" ", 0, 1);
  552. characterfile.write(Integer.toString(p.playerItems[i]), 0,
  553. Integer.toString(p.playerItems[i]).length());
  554. characterfile.write(" ", 0, 1);
  555. characterfile.write(Integer.toString(p.playerItemsN[i]), 0,
  556. Integer.toString(p.playerItemsN[i]).length());
  557. characterfile.newLine();
  558. }
  559. }
  560. characterfile.newLine();
  561.  
  562. /* BANK */
  563. characterfile.write("[BANK]", 0, 6);
  564. characterfile.newLine();
  565. for (int i = 0; i < p.bankItems.length; i++) {
  566. if (p.bankItems[i] > 0) {
  567. characterfile.write("character-bank = ", 0, 17);
  568. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  569. characterfile.write(" ", 0, 1);
  570. characterfile.write(Integer.toString(p.bankItems[i]), 0, Integer.toString(p.bankItems[i]).length());
  571. characterfile.write(" ", 0, 1);
  572. characterfile.write(Integer.toString(p.bankItemsN[i]), 0,
  573. Integer.toString(p.bankItemsN[i]).length());
  574. characterfile.newLine();
  575. }
  576. }
  577. characterfile.newLine();
  578. /* FRIENDS */
  579. characterfile.write("[FRIENDS]", 0, 9);
  580. characterfile.newLine();
  581. for (int i = 0; i < p.friends.length; i++) {
  582. if (p.friends[i] > 0) {
  583. characterfile.write("character-friend = ", 0, 19);
  584. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  585. characterfile.write(" ", 0, 1);
  586. characterfile.write("" + p.friends[i]);
  587. characterfile.newLine();
  588. }
  589. }
  590. characterfile.newLine();
  591.  
  592. /* IGNORES */
  593. /*
  594. * characterfile.write("[IGNORES]", 0, 9); characterfile.newLine();
  595. * for (int i = 0; i < ignores.length; i++) { if (ignores[i] > 0) {
  596. * characterfile.write("character-ignore = ", 0, 19);
  597. * characterfile.write(Integer.toString(i), 0,
  598. * Integer.toString(i).length()); characterfile.write(" ", 0, 1);
  599. * characterfile.write(Long.toString(ignores[i]), 0,
  600. * Long.toString(ignores[i]).length()); characterfile.newLine(); } }
  601. * characterfile.newLine();
  602. */
  603. characterfile.write("[DEGRADE]");
  604. characterfile.newLine();
  605. for (Entry<Integer> it : p.degradables.entrySet()) {
  606. characterfile.write("character-degrade = ");
  607. characterfile.write(it.getElement() + "\t" + it.getCount());
  608. characterfile.newLine();
  609. }
  610. characterfile.newLine();
  611. /* EOF */
  612. characterfile.write("[EOF]");
  613. characterfile.newLine();
  614. characterfile.newLine();
  615. characterfile.close();
  616. } catch (IOException ioexception) {
  617. Misc.println(p.playerName + ": error writing file.");
  618. return false;
  619. }
  620. return true;
  621. }
  622.  
  623. /**
  624. * Tells us whether or not the player exists for the specified name.
  625. *
  626. * @param name
  627. * @return
  628. */
  629. public static boolean playerExists(String name) {
  630. File file = new File("./Data/characters/" + name + ".txt");
  631. return file.exists();
  632. }
  633.  
  634. /**
  635. * Tells use whether or not the specified name has the friend added.
  636. *
  637. * @param name
  638. * @param friend
  639. * @return
  640. */
  641. public static boolean isFriend(String name, String friend) {
  642. long nameLong = Misc.playerNameToInt64(friend);
  643. long[] friends = getFriends(name);
  644. if (friends != null && friends.length > 0) {
  645. for (int index = 0; index < friends.length; index++) {
  646. if (friends[index] == nameLong) {
  647. return true;
  648. }
  649. }
  650. }
  651. return false;
  652. }
  653.  
  654. /**
  655. * Returns a characters friends in the form of a long array.
  656. *
  657. * @param name
  658. * @return
  659. */
  660. public static long[] getFriends(String name) {
  661. String line = "";
  662. String token = "";
  663. String token2 = "";
  664. String[] token3 = new String[3];
  665. boolean end = false;
  666. int readMode = 0;
  667. BufferedReader file = null;
  668. boolean file1 = false;
  669. long[] readFriends = new long[200];
  670. long[] friends = null;
  671. int totalFriends = 0;
  672. try {
  673. file = new BufferedReader(new FileReader("./Data/characters/" + name + ".txt"));
  674. file1 = true;
  675. } catch (FileNotFoundException fileex1) {
  676. }
  677.  
  678. if (file1) {
  679. new File("./Data/characters/" + name + ".txt");
  680. } else {
  681. return null;
  682. }
  683. try {
  684. line = file.readLine();
  685. } catch (IOException ioexception) {
  686. return null;
  687. }
  688. while (end == false && line != null) {
  689. line = line.trim();
  690. int spot = line.indexOf("=");
  691. if (spot > -1) {
  692. token = line.substring(0, spot);
  693. token = token.trim();
  694. token2 = line.substring(spot + 1);
  695. token2 = token2.trim();
  696. token3 = token2.split("\t");
  697. switch (readMode) {
  698. case 0:
  699. if (token.equals("character-friend")) {
  700. readFriends[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
  701. totalFriends++;
  702. }
  703. break;
  704. }
  705. } else {
  706. if (line.equals("[FRIENDS]")) {
  707. readMode = 0;
  708. } else if (line.equals("[EOF]")) {
  709. try {
  710. file.close();
  711. } catch (IOException ioexception) {
  712. }
  713. }
  714. }
  715. try {
  716. line = file.readLine();
  717. } catch (IOException ioexception1) {
  718. end = true;
  719. }
  720. }
  721. try {
  722. if (totalFriends > 0) {
  723. friends = new long[totalFriends];
  724. for (int index = 0; index < totalFriends; index++) {
  725. friends[index] = readFriends[index];
  726. }
  727. return friends;
  728. }
  729. file.close();
  730. } catch (IOException ioexception) {
  731. }
  732. return null;
  733. }
  734.  
  735. public static void appendData(String file, String text) {
  736. BufferedWriter bw = null;
  737. try {
  738. FileWriter fileWriter = new FileWriter(file, true);
  739. bw = new BufferedWriter(fileWriter);
  740. bw.write(text);
  741. bw.newLine();
  742. bw.flush();
  743. bw.close();
  744. fileWriter = null;
  745. bw = null;
  746. } catch (Exception exception) {
  747. System.out.println("Critical error while writing data: " + file);
  748. }
  749. }
  750.  
  751. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement