Guest User

Untitled

a guest
Jan 4th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.44 KB | None | 0 0
  1. package server.model.players;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileReader;
  7. import java.io.FileWriter;
  8. import java.io.IOException;
  9.  
  10. import server.Server;
  11. import server.util.Misc;
  12.  
  13. public class PlayerSave
  14. {
  15.  
  16.  
  17.  
  18. /**
  19. *Loading
  20. **/
  21. public static int loadGame(Client p, String playerName, String playerPass) {
  22. String line = "";
  23. String token = "";
  24. String token2 = "";
  25. String[] token3 = new String[3];
  26. boolean EndOfFile = false;
  27. int ReadMode = 0;
  28. BufferedReader characterfile = null;
  29. boolean File1 = false;
  30.  
  31. try {
  32. characterfile = new BufferedReader(new FileReader("./Data/characters/"+playerName+".txt"));
  33. File1 = true;
  34. } catch(FileNotFoundException fileex1) {
  35. }
  36.  
  37. if (File1) {
  38. } else {
  39. Misc.println(playerName+": character file not found.");
  40. p.newPlayer = false;
  41. return 0;
  42. }
  43. try {
  44. line = characterfile.readLine();
  45. } catch(IOException ioexception) {
  46. Misc.println(playerName+": error loading file.");
  47. return 3;
  48. }
  49. while(EndOfFile == false && line != null) {
  50. line = line.trim();
  51. int spot = line.indexOf("=");
  52. if (spot > -1) {
  53. token = line.substring(0, spot);
  54. token = token.trim();
  55. token2 = line.substring(spot + 1);
  56. token2 = token2.trim();
  57. token3 = token2.split("\t");
  58. switch (ReadMode) {
  59. case 1:
  60. if (token.equals("character-password")) {
  61. if (playerPass.equalsIgnoreCase(token2) || Misc.basicEncrypt(playerPass).equals(token2)) {
  62. playerPass = Misc.basicEncrypt(playerPass);
  63. } else {
  64. return 3;
  65. }
  66. }
  67. break;
  68. case 2:
  69. if (token.equals("character-height")) {
  70. p.heightLevel = Integer.parseInt(token2);
  71. } else if (token.equals("character-posx")) {
  72. p.teleportToX = (Integer.parseInt(token2) <= 0 ? 3210 : Integer.parseInt(token2));
  73. //} else if (token.equals("clanchat")) {
  74. //p.savedClan = token2;
  75. } else if (token.equals("character-posy")) {
  76. p.teleportToY = (Integer.parseInt(token2) <= 0 ? 3424 : Integer.parseInt(token2));
  77. } else if (token.equals("specTimer")) {
  78. p.specRestoreTimer = Integer.parseInt(token2);
  79. } else if (token.equals("character-rights")) {
  80. p.playerRights = Integer.parseInt(token2);
  81. } else if (token.equals("expLock")) {
  82. p.expLock = Boolean.parseBoolean(token2);
  83. } else if (token.equals("tutorial-progress")) {
  84. p.tutorial = Integer.parseInt(token2);
  85. } else if (token.equals("crystal-bow-shots")) {
  86. p.crystalBowArrowCount = Integer.parseInt(token2);
  87. } else if (token.equals("skull-timer")) {
  88. p.skullTimer = Integer.parseInt(token2);
  89. } else if (token.equals("magic-book")) {
  90. p.playerMagicBook = Integer.parseInt(token2);
  91. } else if (token.equals("joinTime")) {
  92. p.joinTime = Long.parseLong(token2);//Starter save
  93. } else if (token.equals("prayer-book")) {
  94. p.playerPrayerBook = Boolean.parseBoolean(token2);
  95. } else if (token.equals("brother-info")) {
  96. p.barrowsNpcs[Integer.parseInt(token3[0])][1] = Integer.parseInt(token3[1]);
  97. } else if (token.equals("special-amount")) {
  98. p.specAmount = Double.parseDouble(token2);
  99. } else if (token.equals("selected-coffin")) {
  100. p.randomCoffin = Integer.parseInt(token2);
  101. } else if (token.equals("barrows-killcount")) {
  102. p.pkPoints = Integer.parseInt(token2);
  103. } else if (token.equals("teleblock-length")) {
  104. p.teleBlockDelay = System.currentTimeMillis();
  105. p.teleBlockLength = Integer.parseInt(token2);
  106. } else if (token.equals("pc-points")) {
  107. p.pcPoints = Integer.parseInt(token2);
  108. } else if (line.startsWith("KC")) {
  109. p.KC = Integer.parseInt(token2);
  110. } else if (line.startsWith("DC")) {
  111. p.DC = Integer.parseInt(token2);
  112. } else if (token.equals("slayerTask")) {
  113. p.slayerTask = Integer.parseInt(token2);
  114. } else if (token.equals("taskAmount")) {
  115. p.taskAmount = Integer.parseInt(token2);
  116. } else if (token.equals("magePoints")) {
  117. p.magePoints = Integer.parseInt(token2);
  118. } else if (token.equals("autoRet")) {
  119. p.autoRet = Integer.parseInt(token2);
  120. } else if (token.equals("barrowskillcount")) {
  121. p.barrowsKillCount = Integer.parseInt(token2);
  122. } else if (token.equals("flagged")) {
  123. p.accountFlagged = Boolean.parseBoolean(token2);
  124. } else if (token.equals("wave")) {
  125. p.waveId = Integer.parseInt(token2);
  126. } else if (token.equals("void")) {
  127. for (int j = 0; j < token3.length; j++) {
  128. p.voidStatus[j] = Integer.parseInt(token3[j]);
  129. }
  130. } else if (token.equals("gwkc")) {
  131. p.killCount = Integer.parseInt(token2);
  132. } else if (token.equals("fightMode")) {
  133. p.fightMode = Integer.parseInt(token2);
  134. } else if (token.equals("startDel")) {
  135. p.startDel = Integer.parseInt(token2);
  136. } else if (token.equals("PKP")) {
  137. p.pkp = Integer.parseInt(token2);
  138. } else if (token.equals("yellTag")) {
  139. p.donorTag = token2;
  140. } else if (token.equals("constitution")) {
  141. p.constitution = Integer.parseInt(token2);
  142. }
  143. break;
  144. case 3:
  145. if (token.equals("character-equip")) {
  146. p.playerEquipment[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  147. p.playerEquipmentN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  148. }
  149. break;
  150. case 4:
  151. if (token.equals("character-look")) {
  152. p.playerAppearance[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  153. }
  154. break;
  155. case 5:
  156. if (token.equals("character-skill")) {
  157. p.playerLevel[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  158. p.playerXP[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  159. }
  160. break;
  161. case 6:
  162. if (token.equals("character-item")) {
  163. p.playerItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  164. p.playerItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  165. }
  166. break;
  167. case 7:
  168. if (token.equals("character-bank")) {
  169. p.bankItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  170. p.bankItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  171. }
  172. break;
  173. case 8:
  174. if (token.equals("character-friend")) {
  175. p.friends[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
  176. }
  177. break;
  178. case 9:
  179. /* if (token.equals("character-ignore")) {
  180. ignores[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
  181. } */
  182. break;
  183. }
  184. } else {
  185. if (line.equals("[ACCOUNT]")) { ReadMode = 1;
  186. } else if (line.equals("[CHARACTER]")) { ReadMode = 2;
  187. } else if (line.equals("[EQUIPMENT]")) { ReadMode = 3;
  188. } else if (line.equals("[LOOK]")) { ReadMode = 4;
  189. } else if (line.equals("[SKILLS]")) { ReadMode = 5;
  190. } else if (line.equals("[ITEMS]")) { ReadMode = 6;
  191. } else if (line.equals("[BANK]")) { ReadMode = 7;
  192. } else if (line.equals("[FRIENDS]")) { ReadMode = 8;
  193. } else if (line.equals("[IGNORES]")) { ReadMode = 9;
  194. } else if (line.equals("[EOF]")) { try { characterfile.close(); } catch(IOException ioexception) { } return 1;
  195. }
  196. }
  197. try {
  198. line = characterfile.readLine();
  199. } catch(IOException ioexception1) { EndOfFile = true; }
  200. }
  201. try { characterfile.close(); } catch(IOException ioexception) { }
  202. return 13;
  203. }
  204.  
  205.  
  206.  
  207.  
  208. /**
  209. *Saving
  210. **/
  211. public static boolean saveGame(Client p) {
  212. if(!p.saveFile || p.newPlayer || !p.saveCharacter) {
  213. //System.out.println("first");
  214. return false;
  215. }
  216. if(p.playerName == null || Server.playerHandler.players[p.playerId] == null) {
  217. //System.out.println("second");
  218. return false;
  219. }
  220. p.playerName = p.playerName2;
  221. int tbTime = (int)(p.teleBlockDelay - System.currentTimeMillis() + p.teleBlockLength);
  222. if(tbTime > 300000 || tbTime < 0){
  223. tbTime = 0;
  224. }
  225.  
  226. BufferedWriter characterfile = null;
  227. try {
  228. characterfile = new BufferedWriter(new FileWriter("./Data/characters/"+p.playerName+".txt"));
  229.  
  230. /*ACCOUNT*/
  231. characterfile.write("[ACCOUNT]", 0, 9);
  232. characterfile.newLine();
  233. characterfile.write("character-username = ", 0, 21);
  234. characterfile.write(p.playerName, 0, p.playerName.length());
  235. characterfile.newLine();
  236. characterfile.write("character-password = ", 0, 21);
  237. //p.playerPass = Misc.basicEncrypt(p.playerPass);
  238. characterfile.write(Misc.basicEncrypt(p.playerPass), 0, Misc.basicEncrypt(p.playerPass).length());
  239. //characterfile.write(Misc.basicEncrypt(p.playerPass).toString(), 0, Misc.basicEncrypt(p.playerPass).toString().length());
  240. characterfile.newLine();
  241. characterfile.newLine();
  242.  
  243. characterfile.write("KC = ", 0, 4);
  244. characterfile.write(Integer.toString(p.KC), 0, Integer.toString(p.KC).length());
  245. characterfile.newLine();
  246. characterfile.write("DC = ", 0, 4);
  247. characterfile.write(Integer.toString(p.DC), 0, Integer.toString(p.DC).length());
  248. characterfile.newLine();
  249.  
  250. /*CHARACTER*/
  251. characterfile.write("[CHARACTER]", 0, 11);
  252. characterfile.newLine();
  253. characterfile.write("character-height = ", 0, 19);
  254. characterfile.write(Integer.toString(p.heightLevel), 0, Integer.toString(p.heightLevel).length());
  255. characterfile.newLine();
  256. characterfile.write("character-posx = ", 0, 17);
  257. characterfile.write(Integer.toString(p.absX), 0, Integer.toString(p.absX).length());
  258. characterfile.newLine();
  259. characterfile.write("character-posy = ", 0, 17);
  260. characterfile.write(Integer.toString(p.absY), 0, Integer.toString(p.absY).length());
  261. characterfile.newLine();
  262. characterfile.write("character-rights = ", 0, 19);
  263. characterfile.write(Integer.toString(p.playerRights), 0, Integer.toString(p.playerRights).length());
  264. characterfile.newLine();
  265. characterfile.write("expLock = ", 0, 10);
  266. characterfile.write(Boolean.toString(p.expLock), 0, Boolean.toString(p.expLock).length());
  267. characterfile.newLine();
  268. characterfile.write("crystal-bow-shots = ", 0, 20);
  269. characterfile.write(Integer.toString(p.crystalBowArrowCount), 0, Integer.toString(p.crystalBowArrowCount).length());
  270. characterfile.newLine();
  271. characterfile.write("skull-timer = ", 0, 14);
  272. characterfile.write(Integer.toString(p.skullTimer), 0, Integer.toString(p.skullTimer).length());
  273. characterfile.newLine();
  274. characterfile.write("magic-book = ", 0, 13);
  275. characterfile.write(Integer.toString(p.playerMagicBook), 0, Integer.toString(p.playerMagicBook).length());
  276. characterfile.newLine();
  277. characterfile.write("prayer-book = ", 0, 14);//i think its 14 lol too tired atm
  278. characterfile.write(Boolean.toString(p.playerPrayerBook), 0, Boolean.toString(p.playerPrayerBook).length());
  279. characterfile.newLine();
  280. for (int b = 0; b < p.barrowsNpcs.length; b++) {
  281. characterfile.write("brother-info = ", 0, 15);
  282. characterfile.write(Integer.toString(b), 0, Integer.toString(b).length());
  283. characterfile.write(" ", 0, 1);
  284. characterfile.write(p.barrowsNpcs[b][1] <= 1 ? Integer.toString(0) : Integer.toString(p.barrowsNpcs[b][1]), 0, Integer.toString(p.barrowsNpcs[b][1]).length());
  285. characterfile.newLine();
  286. }
  287. characterfile.write("special-amount = ", 0, 17);
  288. characterfile.write(Double.toString(p.specAmount), 0, Double.toString(p.specAmount).length());
  289. characterfile.newLine();
  290. characterfile.write("joinTime = ", 0, 11);
  291. characterfile.write(Long.toString(p.joinTime), 0, Long.toString(p.joinTime).length());
  292. characterfile.newLine();
  293. characterfile.write("selected-coffin = ", 0, 18);
  294. characterfile.write(Integer.toString(p.randomCoffin), 0, Integer.toString(p.randomCoffin).length());
  295. characterfile.newLine();
  296. characterfile.write("barrows-killcount = ", 0, 20);
  297. characterfile.write(Integer.toString(p.barrowsKillCount), 0, Integer.toString(p.barrowsKillCount).length());
  298. characterfile.newLine();
  299. characterfile.write("teleblock-length = ", 0, 19);
  300. characterfile.write(Integer.toString(tbTime), 0, Integer.toString(tbTime).length());
  301. characterfile.newLine();
  302. characterfile.write("pc-points = ", 0, 12);
  303. characterfile.write(Integer.toString(p.pcPoints), 0, Integer.toString(p.pcPoints).length());
  304. characterfile.newLine();
  305. characterfile.write("slayerTask = ", 0, 13);
  306. characterfile.write(Integer.toString(p.slayerTask), 0, Integer.toString(p.slayerTask).length());
  307. characterfile.newLine();
  308. characterfile.write("taskAmount = ", 0, 13);
  309. characterfile.write(Integer.toString(p.taskAmount), 0, Integer.toString(p.taskAmount).length());
  310. characterfile.newLine();
  311. characterfile.write("magePoints = ", 0, 13);
  312. characterfile.write(Integer.toString(p.magePoints), 0, Integer.toString(p.magePoints).length());
  313. characterfile.newLine();
  314. characterfile.write("autoRet = ", 0, 10);
  315. characterfile.write(Integer.toString(p.autoRet), 0, Integer.toString(p.autoRet).length());
  316. characterfile.newLine();
  317. characterfile.write("barrowskillcount = ", 0, 19);
  318. characterfile.write(Integer.toString(p.barrowsKillCount), 0, Integer.toString(p.barrowsKillCount).length());
  319. characterfile.newLine();
  320. characterfile.write("flagged = ", 0, 10);
  321. characterfile.write(Boolean.toString(p.accountFlagged), 0, Boolean.toString(p.accountFlagged).length());
  322. characterfile.newLine();
  323. characterfile.write("wave = ", 0, 7);
  324. characterfile.write(Integer.toString(p.waveId), 0, Integer.toString(p.waveId).length());
  325. characterfile.newLine();
  326. characterfile.write("gwkc = ", 0, 7);
  327. characterfile.write(Integer.toString(p.killCount), 0, Integer.toString(p.killCount).length());
  328. characterfile.newLine();
  329. characterfile.write("fightMode = ", 0, 12);
  330. characterfile.write(Integer.toString(p.fightMode), 0, Integer.toString(p.fightMode).length());
  331. characterfile.newLine();
  332. characterfile.write("startDel = ", 0, 10);
  333. characterfile.write(Integer.toString(p.startDel), 0, Integer.toString(p.startDel).length());
  334. characterfile.newLine();
  335. characterfile.write("PKP = ", 0, 6);
  336. characterfile.write(Integer.toString(p.pkp), 0, Integer.toString(p.pkp).length());
  337. characterfile.newLine();
  338. characterfile.write("yellTag = ", 0, 10);
  339. characterfile.write(p.donorTag, 0, p.donorTag.length());
  340. characterfile.newLine();
  341. characterfile.write("constitution = ", 0, 15);
  342. characterfile.write(Integer.toString(p.constitution), 0, Integer.toString(p.constitution).length());
  343. characterfile.newLine();
  344. //characterfile.write("clanchat = ", 0, 11);
  345. //characterfile.write(p.savedClan, 0, p.savedClan.length());
  346. //characterfile.newLine();
  347. characterfile.write("specTimer = ", 0, 12);
  348. characterfile.write(Integer.toString(p.specRestoreTimer), 0, Integer.toString(p.specRestoreTimer).length());
  349. characterfile.newLine();
  350. characterfile.write("void = ", 0, 7);
  351. String toWrite = p.voidStatus[0] + "\t" + p.voidStatus[1] + "\t" + p.voidStatus[2] + "\t" + p.voidStatus[3] + "\t" + p.voidStatus[4];
  352. characterfile.write(toWrite);
  353. characterfile.newLine();
  354. characterfile.newLine();
  355.  
  356. /*EQUIPMENT*/
  357. characterfile.write("[EQUIPMENT]", 0, 11);
  358. characterfile.newLine();
  359. for (int i = 0; i < p.playerEquipment.length; i++) {
  360. characterfile.write("character-equip = ", 0, 18);
  361. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  362. characterfile.write(" ", 0, 1);
  363. characterfile.write(Integer.toString(p.playerEquipment[i]), 0, Integer.toString(p.playerEquipment[i]).length());
  364. characterfile.write(" ", 0, 1);
  365. characterfile.write(Integer.toString(p.playerEquipmentN[i]), 0, Integer.toString(p.playerEquipmentN[i]).length());
  366. characterfile.write(" ", 0, 1);
  367. characterfile.newLine();
  368. }
  369. characterfile.newLine();
  370.  
  371. /*LOOK*/
  372. characterfile.write("[LOOK]", 0, 6);
  373. characterfile.newLine();
  374. for (int i = 0; i < p.playerAppearance.length; i++) {
  375. characterfile.write("character-look = ", 0, 17);
  376. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  377. characterfile.write(" ", 0, 1);
  378. characterfile.write(Integer.toString(p.playerAppearance[i]), 0, Integer.toString(p.playerAppearance[i]).length());
  379. characterfile.newLine();
  380. }
  381. characterfile.newLine();
  382.  
  383. /*SKILLS*/
  384. characterfile.write("[SKILLS]", 0, 8);
  385. characterfile.newLine();
  386. for (int i = 0; i < p.playerLevel.length; i++) {
  387. characterfile.write("character-skill = ", 0, 18);
  388. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  389. characterfile.write(" ", 0, 1);
  390. characterfile.write(Integer.toString(p.playerLevel[i]), 0, Integer.toString(p.playerLevel[i]).length());
  391. characterfile.write(" ", 0, 1);
  392. characterfile.write(Integer.toString(p.playerXP[i]), 0, Integer.toString(p.playerXP[i]).length());
  393. characterfile.newLine();
  394. }
  395. characterfile.newLine();
  396.  
  397. /*ITEMS*/
  398. characterfile.write("[ITEMS]", 0, 7);
  399. characterfile.newLine();
  400. for (int i = 0; i < p.playerItems.length; i++) {
  401. if (p.playerItems[i] > 0) {
  402. characterfile.write("character-item = ", 0, 17);
  403. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  404. characterfile.write(" ", 0, 1);
  405. characterfile.write(Integer.toString(p.playerItems[i]), 0, Integer.toString(p.playerItems[i]).length());
  406. characterfile.write(" ", 0, 1);
  407. characterfile.write(Integer.toString(p.playerItemsN[i]), 0, Integer.toString(p.playerItemsN[i]).length());
  408. characterfile.newLine();
  409. }
  410. }
  411. characterfile.newLine();
  412.  
  413. /*BANK*/
  414. characterfile.write("[BANK]", 0, 6);
  415. characterfile.newLine();
  416. for (int i = 0; i < p.bankItems.length; i++) {
  417. if (p.bankItems[i] > 0) {
  418. characterfile.write("character-bank = ", 0, 17);
  419. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  420. characterfile.write(" ", 0, 1);
  421. characterfile.write(Integer.toString(p.bankItems[i]), 0, Integer.toString(p.bankItems[i]).length());
  422. characterfile.write(" ", 0, 1);
  423. characterfile.write(Integer.toString(p.bankItemsN[i]), 0, Integer.toString(p.bankItemsN[i]).length());
  424. characterfile.newLine();
  425. }
  426. }
  427. characterfile.newLine();
  428.  
  429. /*FRIENDS*/
  430. characterfile.write("[FRIENDS]", 0, 9);
  431. characterfile.newLine();
  432. for (int i = 0; i < p.friends.length; i++) {
  433. if (p.friends[i] > 0) {
  434. characterfile.write("character-friend = ", 0, 19);
  435. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  436. characterfile.write(" ", 0, 1);
  437. characterfile.write("" + p.friends[i]);
  438. characterfile.newLine();
  439. }
  440. }
  441. characterfile.newLine();
  442.  
  443. /*IGNORES*/
  444. /*characterfile.write("[IGNORES]", 0, 9);
  445. characterfile.newLine();
  446. for (int i = 0; i < ignores.length; i++) {
  447. if (ignores[i] > 0) {
  448. characterfile.write("character-ignore = ", 0, 19);
  449. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  450. characterfile.write(" ", 0, 1);
  451. characterfile.write(Long.toString(ignores[i]), 0, Long.toString(ignores[i]).length());
  452. characterfile.newLine();
  453. }
  454. }
  455. characterfile.newLine();*/
  456. /*EOF*/
  457. characterfile.write("[EOF]", 0, 5);
  458. characterfile.newLine();
  459. characterfile.newLine();
  460. characterfile.close();
  461. } catch(IOException ioexception) {
  462. Misc.println(p.playerName+": error writing file.");
  463. return false;
  464. }
  465. return true;
  466. }
  467.  
  468.  
  469. }
Add Comment
Please, Sign In to add comment