Guest User

Untitled

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