Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 64.19 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3. import java.net.*;
  4. import java.sql.*;
  5.  
  6. public class PlayerHandler {
  7.  
  8. public boolean updateNotifyRequired = false;
  9. public boolean updateRunning = false;
  10. public int updateSeconds = -1;
  11. public int battlegameTime = -1;
  12. public boolean shutdownServer = false;
  13. public boolean shuttingDown = false;
  14.  
  15. public void loadAllClans() {
  16. BufferedReader br = null;
  17. String line = "";
  18. File clanFolder = new File("Clans");
  19. File[] clanFile = clanFolder.listFiles();
  20. int lnCnt = 0;
  21. int i4 = 0;
  22. for (int i = 0; i < clanFile.length; i++) {
  23. try {
  24. br = new BufferedReader(new FileReader(clanFile[i]));
  25. line = br.readLine();
  26. clanIds[Integer.parseInt(line)] = 1;
  27. int cId = Integer.parseInt(line);
  28. String clnName = clanFile[i].getName();
  29. clanName[cId] = clnName.substring(0, clnName.lastIndexOf("."));
  30. lnCnt = 0;
  31. while ((line = br.readLine()) != null) {
  32. i4 = line.lastIndexOf(",");
  33. clanPlayerName[cId][lnCnt] = line.substring(0, i4);
  34. clanPlayerRights[cId][lnCnt] = Integer.parseInt(line.substring(i4 + 1));
  35. lnCnt++;
  36. }
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. }
  40. }
  41. }
  42.  
  43. public boolean saveClan(int clanId) {
  44. if (clanIds[clanId] == 0) {
  45. return false;
  46. }
  47. BufferedWriter bw = null;
  48. try {
  49. bw = new BufferedWriter(new FileWriter("./Clans/" + clanName[clanId] + ".txt"));
  50. bw.write(Integer.toString(clanId), 0, Integer.toString(clanId).length());
  51. bw.newLine();
  52. for (int i = 0; i < maxClanSlots; i++) {
  53. if (clanPlayerName[clanId][i] != null && !clanPlayerName[clanId][i].equalsIgnoreCase("")) {
  54. bw.write(clanPlayerName[clanId][i] + "," + clanPlayerRights[clanId][i], 0, clanPlayerName[clanId][i].length() + 2);
  55. bw.newLine();
  56. }
  57. }
  58. bw.flush();
  59. bw.close();
  60. return true;
  61. } catch (Exception e) {
  62. }
  63. return false;
  64. }
  65.  
  66. public boolean createClan(String cName, int pId) {
  67. if (players[pId] != null) {
  68. int clanId = getClanId(players[pId].playerName);
  69. if (clanId != -1) {
  70. return false;
  71. }
  72. if (!clanExists(cName)) {
  73. for (int i = 0; i < maxClans; i++) {
  74. if (clanIds[i] == 0) {
  75. clanIds[i] = 1;
  76. clanName[i] = cName;
  77. clanPlayerName[i][0] = players[pId].playerName;
  78. clanPlayerRights[i][0] = 3;
  79. buildClanInterface(i);
  80. saveClan(i);
  81. return true;
  82. }
  83. }
  84. }
  85. }
  86. return false;
  87. }
  88.  
  89. public boolean deleteClan(String pName, int cId) {
  90. int clanId = -1;
  91. if (!pName.equals("NULL")) {
  92. clanId = getClanId(pName);
  93. if (clanId == -1) {
  94. return false;
  95. }
  96. } else {
  97. clanId = cId;
  98. }
  99. for (int i = 0; i < maxClanSlots; i++) {
  100. if (clanPlayerName[clanId][i].equalsIgnoreCase(pName) || pName.equals("NULL")) {
  101. if (clanPlayerRights[clanId][i] == 3 || pName.equals("NULL")) {
  102. boolean success = (new File("./Clans/" + clanName[clanId] + ".txt")).delete();
  103. for (int q = 0; q < maxClanSlots; q++) {
  104. clanPlayerName[clanId][q] = "";
  105. clanPlayerRights[clanId][q] = 0;
  106. }
  107. clanIds[clanId] = 0;
  108. clanName[clanId] = "";
  109. return true;
  110. }
  111. }
  112. }
  113. return false;
  114. }
  115.  
  116. public void fixClanNames(int clanId) {
  117. if (clanId < 0) {
  118. return;
  119. }
  120. String[] usedSlot = new String[maxClanSlots];
  121. int[] usedSlotRights = new int[maxClanSlots];
  122. int slotUsedId = 0;
  123. boolean clanInUse = false;
  124. for (int i = 0; i < maxClanSlots; i++) {
  125. if (clanPlayerName[clanId][i] != null && !clanPlayerName[clanId][i].equalsIgnoreCase("")) {
  126. usedSlot[slotUsedId] = clanPlayerName[clanId][i];
  127. usedSlotRights[slotUsedId] = clanPlayerRights[clanId][i];
  128. clanInUse = true;
  129. slotUsedId++;
  130. }
  131. }
  132. if (!clanInUse) {
  133. deleteClan("NULL", clanId);
  134. return;
  135. }
  136. for (int i = 0; i < maxClanSlots; i++) {
  137. clanPlayerName[clanId][i] = "";
  138. clanPlayerRights[clanId][i] = 0;
  139. }
  140. for (int i = 0; i < maxClanSlots; i++) {
  141. if (usedSlot[i] == null) {
  142. usedSlot[i] = "";
  143. usedSlotRights[i] = 0;
  144. }
  145. }
  146. clanPlayerName[clanId] = usedSlot;
  147. clanPlayerRights[clanId] = usedSlotRights;
  148. }
  149.  
  150. public void buildClanInterface(int clanId) {
  151. for (int i = 0; i < maxClanSlots; i++) {
  152. if (clanPlayerName[clanId][i] != null && !clanPlayerName[clanId][i].equalsIgnoreCase("")) {
  153. int id = GetIdFromName(clanPlayerName[clanId][i]);
  154. if (id != -1) {
  155. client p = clients[id];
  156. p.buildClanInterface();
  157. }
  158. }
  159. }
  160. }
  161.  
  162. public boolean addClanMember(String newPName, String pName) {
  163. int clanId = getClanId(pName);
  164. if (clanId == -1) {
  165. return false;
  166. }
  167. int otherClanId = getClanId(newPName);
  168. if (otherClanId != -1) {
  169. return false;
  170. }
  171. for (int i = 0; i < maxClanSlots; i++) {
  172. if (clanPlayerName[clanId][i] == null || clanPlayerName[clanId][i].equalsIgnoreCase("")) {
  173. clanPlayerName[clanId][i] = newPName;
  174. clanPlayerRights[clanId][i] = 1;
  175. fixClanNames(clanId);
  176. buildClanInterface(clanId);
  177. saveClan(clanId);
  178. return true;
  179. }
  180. }
  181. return false;
  182. }
  183.  
  184. public boolean removeClanMember(String newPName, String pName) {
  185. int clanId = getClanId(pName);
  186. if (clanId == -1) {
  187. return false;
  188. }
  189. int otherClanId = getClanId(newPName);
  190. if (otherClanId == -1) {
  191. return false;
  192. }
  193. if (otherClanId != clanId) {
  194. return false;
  195. }
  196. for (int i = 0; i < maxClanSlots; i++) {
  197. if (clanPlayerName[clanId][i] != null && !clanPlayerName[clanId][i].equalsIgnoreCase("")) {
  198. if (clanPlayerName[clanId][i].equalsIgnoreCase(newPName)) {
  199. clanPlayerName[clanId][i] = "";
  200. clanPlayerRights[clanId][i] = 0;
  201. fixClanNames(clanId);
  202. buildClanInterface(clanId);
  203. saveClan(clanId);
  204. return true;
  205. }
  206. }
  207. }
  208. return false;
  209. }
  210.  
  211. public boolean changeClanMemberRights(String newPName, String pName, int newRights) {
  212. int clanId = getClanId(pName);
  213. if (clanId == -1) {
  214. return false;
  215. }
  216. int otherClanId = getClanId(newPName);
  217. if (otherClanId == -1) {
  218. return false;
  219. }
  220. if (otherClanId != clanId) {
  221. return false;
  222. }
  223. for (int i = 0; i < maxClanSlots; i++) {
  224. if (clanPlayerName[clanId][i] != null && !clanPlayerName[clanId][i].equalsIgnoreCase("")) {
  225. if (clanPlayerName[clanId][i].equalsIgnoreCase(newPName)) {
  226. clanPlayerRights[clanId][i] = newRights;
  227. buildClanInterface(clanId);
  228. saveClan(clanId);
  229. return true;
  230. }
  231. }
  232. }
  233. return false;
  234. }
  235.  
  236. public int getClanId(String pName) {
  237. for (int i = 0; i < maxClans; i++) {
  238. if (clanIds[i] == 1) {
  239. for (int q = 0; q < maxClanSlots; q++) {
  240. if (clanPlayerName[i][q] != null && !clanPlayerName[i][q].equalsIgnoreCase("")) {
  241. if (clanPlayerName[i][q].equalsIgnoreCase(pName)) {
  242. return i;
  243. }
  244. }
  245. }
  246. }
  247. }
  248. return -1;
  249. }
  250.  
  251. public int getClanRights(String pName) {
  252. for (int i = 0; i < maxClans; i++) {
  253. if (clanIds[i] == 1) {
  254. for (int q = 0; q < maxClanSlots; q++) {
  255. if (clanPlayerName[i][q] != null && !clanPlayerName[i][q].equalsIgnoreCase("")) {
  256. if (clanPlayerName[i][q].equalsIgnoreCase(pName)) {
  257. return clanPlayerRights[i][q];
  258. }
  259. }
  260. }
  261. }
  262. }
  263. return -1;
  264. }
  265.  
  266. public boolean clanExists(String cName) {
  267. for (int i = 0; i < maxClans; i++) {
  268. if (clanName[i] != null && !clanName[i].equalsIgnoreCase("")) {
  269. if (clanName[i].equalsIgnoreCase(cName)) {
  270. return true;
  271. }
  272. }
  273. }
  274. return false;
  275. }
  276.  
  277. PlayerHandler() {
  278. for (int i = 0; i < maxClans; i++) {
  279. clanIds[i] = 0;
  280. clanName[i] = "";
  281. for (int q = 0; q < maxClanSlots; q++) {
  282. clanPlayerName[i][q] = "";
  283. clanPlayerRights[i][q] = 0;
  284. }
  285. }
  286. loadAllClans();
  287. }
  288.  
  289. public int GetIdFromName(String playerName) {
  290. playerName.replaceAll("_", " ");
  291. for (int i = 0; i < maxPlayers; i++) {
  292. if (playersCurrentlyOn[i] != null) {
  293. if (playersCurrentlyOn[i].equalsIgnoreCase(playerName))
  294. return i;
  295. }
  296. }
  297. return -1;
  298. }
  299.  
  300. public void newPlayerClient(Socket s, String hostAddress) {
  301. int index = -1;
  302. for (int i = 1; i < maxPlayers; i++) {
  303. if (clients[i] == null || players[i] == null) {
  304. index = i;
  305. break;
  306. }
  307. }
  308. if (index == -1) {
  309. try {
  310. s.close();
  311. } catch (Exception e) {
  312. }
  313. return;
  314. }
  315. clients[index] = new client(s, index);
  316. clients[index].handler = this;
  317. players[index] = clients[index];
  318. players[index].PlayerIp = hostAddress;
  319. (new Thread(clients[index])).start();
  320. }
  321.  
  322. public boolean donatorStatus(String playerName) {
  323. String name;
  324. try {
  325. BufferedReader in = new BufferedReader(new FileReader("./Data/Donator.txt"));
  326. while ((name = in.readLine()) != null) {
  327. if (playerName.equalsIgnoreCase(name)) {
  328. in.close();
  329. return true;
  330. }
  331. }
  332. in.close();
  333. } catch (IOException e) {
  334. //e.printStackTrace();
  335. }
  336. return false;
  337. }
  338.  
  339. public boolean tempBannedPlayer(String name) {
  340. return false;
  341. }
  342.  
  343. public boolean bannedPlayer(String name) {
  344. return false;
  345. }
  346.  
  347. public boolean bannedHost(String host) {
  348. String loggedHosts = null;
  349. try {
  350. BufferedReader in = new BufferedReader(new FileReader("./Data/BannedIps.txt"));
  351. while ((loggedHosts = in.readLine()) != null) {
  352. if (host.startsWith(loggedHosts)) {
  353. in.close();
  354. return true;
  355. }
  356. }
  357. in.close();
  358. } catch (IOException e) {
  359. //e.printStackTrace();
  360. }
  361. return false;
  362. }
  363.  
  364. public void destruct() {
  365. }
  366.  
  367. public void updatePlayerNames() {
  368. playerCount = 0;
  369. int slot = 0;
  370. for (int i = 0; i < maxPlayers; i++) {
  371. if (players[i] != null) {
  372. playersCurrentlyOn[slot] = players[i].playerName;
  373. playerCount++;
  374. } else {
  375. playersCurrentlyOn[slot] = "";
  376. }
  377. slot++;
  378. }
  379. }
  380.  
  381. public boolean isPlayerOn(String playerName) {
  382. if (playerName == null || playerName.equals(""))
  383. return false;
  384. for (Player p : players) {
  385. if (p == null)
  386. continue;
  387. if (p.playerName.equalsIgnoreCase(playerName))
  388. return true;
  389. }
  390. return false;
  391. }
  392.  
  393. public int getPlayerID(String playerName) {
  394. for (int i = 1; i < maxPlayers; i++) {
  395. if (playersCurrentlyOn[i] != null) {
  396. if (playersCurrentlyOn[i].equalsIgnoreCase(playerName))
  397. return i;
  398. }
  399. }
  400. return -1;
  401. }
  402.  
  403. public void notificationsRequired() {
  404. for (client c : clients) {
  405. try {
  406. if (c == null || c.disconnected || !c.isActive) {
  407. continue;
  408. }
  409. c.updateNotifyRequired = true;
  410. } catch (Exception e) {
  411. System.out.println("Error while notifying players of update.");
  412. }
  413. }
  414. }
  415.  
  416. public void process() {
  417. if (messageToAll.length() != 0) {
  418. int msgTo = 0;
  419. do {
  420. if (players[msgTo] != null)
  421. players[msgTo].globalMessage = messageToAll;
  422. msgTo++;
  423. } while (msgTo < maxPlayers);
  424. messageToAll = "";
  425. }
  426. rockFallDelay--;
  427.  
  428. if (updateSeconds > 0)
  429. updateSeconds--;
  430. if (battlegameTime > 0)
  431. battlegameTime--;
  432.  
  433. if (updateSeconds == 0 && shuttingDown == false) {
  434. shuttingDown = true;
  435. //boolean success = true;
  436. System.out.println("We've hit 0.");
  437. try {
  438. for (client c : clients) {
  439. if (c == null) {
  440. } else {
  441. SQL.savePlayerInfo(c);
  442. System.out.println("Player info autosaved for "+c.playerName);
  443. }
  444. }
  445. shutdownServer = true;
  446. } catch (Exception e) {
  447. e.printStackTrace();
  448. shutdownServer = false;
  449. System.out.println("NOTE: There was an error saving players - the server will not shut down.");
  450. }
  451. }
  452. //if (success)
  453. // shutdownServer = true;
  454. //}
  455.  
  456. for (client c : clients) {
  457. try {
  458. if (c == null || c.disconnected || !c.isActive) {
  459. continue;
  460. }
  461. for (int pk = 0; pk < 15; pk++) {
  462. if (!c.PacketProcess()) {
  463. break;
  464. }
  465. }
  466. c.process();
  467. c.postProcessing();
  468. c.getNextPlayerMovement();
  469. if (c.updateNotifyRequired) {
  470. c.outStream.createFrame(114);
  471. c.outStream.writeWordBigEndian((updateSeconds / 2 + 10)*50/30);
  472. c.updateNotifyRequired = false;
  473. }
  474. if (rockFallDelay == 4 && c.monkeyCaveArea()) {
  475. c.shakeScreen(2, 0, 10, 5);
  476. c.shakeScreen(3, 10, 20, 10);
  477. } else if (rockFallDelay == 0 && c.monkeyCaveArea() && !c.monkeyCaveSafeArea()) {
  478. c.hitDiff2 = misc.random(6);
  479. c.updateHp(c.hitDiff2, false);
  480. c.updateRequired = true;
  481. c.hitUpdateRequired2 = true;
  482. }
  483. if (rockFallDelay == 0 && c.monkeyCaveArea()) {
  484. c.shakeScreen(2, 0, 0, 0);
  485. c.shakeScreen(3, 0, 0, 0);
  486. }
  487. } catch (Exception e) {
  488. e.printStackTrace();
  489. }
  490. }
  491. for (client c : clients) {
  492. if (c == null || !c.isActive) {
  493. continue;
  494. }
  495. if (!c.initialized) {
  496. c.initialize();
  497. c.initialized = true;
  498. } else {
  499. c.UpdateAll();
  500. }
  501. }
  502. for (client c : clients) {
  503. if (c == null) {
  504. continue;
  505. }
  506. if (c.isActive && !c.disconnected) {
  507. c.clearUpdateFlags();
  508. }
  509. }
  510. for (client c : clients) {
  511. if (c == null || !c.disconnected) {
  512. continue;
  513. }
  514. for (int p = 1; p < Server.s.npcHandler.maxNPCs; p++) {
  515. if (Server.s.npcHandler.npcs[p] != null) {
  516. if (Server.s.npcHandler.npcs[p].SpawnedFor == c.playerId) {
  517. Server.s.npcHandler.npcs[p].absX = 0;
  518. Server.s.npcHandler.npcs[p].absY = 0;
  519. Server.s.npcHandler.npcs[p].CurrentHp = 0;
  520. Server.s.npcHandler.npcs[p] = null;
  521. }
  522. }
  523. }
  524. if (c.savefile && c.isActive) {
  525. //SaveChar(c);
  526. //SaveMoreInfo(c);
  527. SQL.savePlayerInfo(c);
  528. System.out.println("Player info saved for "+c.playerName+".");
  529. SQL.saveHighScore(c);
  530. System.out.println("Highscore info saved for "+c.playerName+".");
  531. c.savefile = false;
  532. }
  533. removePlayer(c.playerId);
  534. continue;
  535. }
  536. updatePlayerNames();
  537. if (rockFallDelay == 0) {
  538. rockFallDelay = 24;
  539. }
  540. }
  541.  
  542. public void updateNPC(Player plr, stream str) {
  543. if (plr != null && str != null) {
  544. updateBlock.currentOffset = 0;
  545. str.createFrameVarSizeWord(65);
  546. str.initBitAccess();
  547. str.writeBits(8, plr.npcList.size());
  548. ListIterator<NPC> npcArray = plr.npcList.listIterator();
  549. while (npcArray.hasNext()) {
  550. NPC n = npcArray.next();
  551. if (n == null || !plr.withinDistance(n) || plr.RebuildNPCList) {
  552. npcArray.remove();
  553. str.writeBits(1, 1);
  554. str.writeBits(2, 3);
  555. } else {
  556. n.updateNPCMovement(str);
  557. n.appendNPCUpdateBlock(updateBlock);
  558. }
  559. }
  560. for (NPC n : Server.s.npcHandler.npcs) {
  561. if (n == null || plr.npcList.contains(n) || !plr.withinDistance(n)) {
  562. continue;
  563. }
  564. plr.addNewNPC(n, str, updateBlock);
  565. }
  566. plr.RebuildNPCList = false;
  567. if (updateBlock.currentOffset > 0) {
  568. str.writeBits(14, 16383);
  569. str.finishBitAccess();
  570. str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0);
  571. }
  572. else
  573. str.finishBitAccess();
  574. str.endFrameVarSizeWord();
  575. }
  576. }
  577.  
  578. public stream updateBlock = new stream(new byte[20000]);
  579.  
  580. public void updatePlayer(Player plr, stream str) {
  581. if (plr != null && str != null && updateBlock != null) {
  582. updateBlock.currentOffset = 0;
  583. plr.updateThisPlayerMovement(str);
  584. boolean saveChatTextUpdate = plr.chatTextUpdateRequired;
  585. plr.chatTextUpdateRequired = false;
  586. plr.appendPlayerUpdateBlock(updateBlock);
  587. plr.chatTextUpdateRequired = saveChatTextUpdate;
  588. str.writeBits(8, plr.playerList.size());
  589. ListIterator<Player> playerArray = plr.playerList.listIterator();
  590. while (playerArray.hasNext()) {
  591. Player p2 = playerArray.next();
  592. if (p2 == null || !plr.withinDistance(p2) || p2.didTeleport) {
  593. playerArray.remove();
  594. str.writeBits(1, 1);
  595. str.writeBits(2, 3);
  596. } else {
  597. p2.updatePlayerMovement(str);
  598. p2.appendPlayerUpdateBlock(updateBlock);
  599. }
  600. }
  601. for (Player p2 : players) {
  602. if (p2 == null || !p2.isActive || plr.equals(p2) || !plr.withinDistance(p2) || plr.playerList.contains(p2)) {
  603. continue;
  604. }
  605. plr.addNewPlayer(p2, str, updateBlock);
  606. }
  607. if (updateBlock.currentOffset > 0) {
  608. str.writeBits(11, 2047);
  609. str.finishBitAccess();
  610. str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0);
  611. } else {
  612. str.finishBitAccess();
  613. }
  614. str.endFrameVarSizeWord();
  615. }
  616. }
  617.  
  618. public int lastchatid = 1;
  619.  
  620. public void removePlayer(int i) {
  621. if (clients[i] == null) {
  622. return;
  623. }
  624. clients[i].isActive = false;
  625. System.out.println(clients[i].playerName + " has logged out.");
  626. clients[i].destruct();
  627. clients[i].playerName = "";
  628. if (clients[i].TradingWith != 0) {
  629. clients[i].declineTrade();
  630. }
  631. clients[i].declineDuel();
  632. players[i] = null;
  633. clients[i] = null;
  634. }
  635.  
  636. public boolean SaveMoreInfo(Player plr) {
  637. BufferedWriter characterfile = null;
  638. try {
  639. characterfile = new BufferedWriter(new FileWriter("./Characters/MoreInfo/"+plr.playerName+".txt"));
  640. characterfile.write("[Player-Clues]", 0, 14);
  641. characterfile.newLine();
  642. characterfile.write("Clue-Delay = ", 0, 13);
  643. characterfile.write(Integer.toString(plr.clueRewardDelay), 0, Integer.toString(plr.clueRewardDelay).length());
  644. characterfile.newLine();
  645. characterfile.newLine();
  646. characterfile.write("[Player-Kills]", 0, 14);
  647. characterfile.newLine();
  648. //characterfile.write("Fight-Arena-Kills = ", 0, 20);
  649. //characterfile.write(Integer.toString(plr.FightArenaKills), 0, Integer.toString(plr.FightArenaKills).length());
  650. //characterfile.newLine();
  651. characterfile.write("Mage-Arena-Kills = ", 0, 19);
  652. characterfile.write(Integer.toString(plr.mageArenaKills), 0, Integer.toString(plr.mageArenaKills).length());
  653. characterfile.newLine();
  654. characterfile.newLine();
  655. characterfile.write("[RecoilRing]", 0, 11);
  656. characterfile.newLine();
  657. characterfile.write("Recoil-Ring = ", 0, 14);
  658. characterfile.write(Integer.toString(plr.RecoilRing), 0, Integer.toString(plr.RecoilRing).length());
  659. characterfile.newLine();
  660. characterfile.newLine();
  661. characterfile.write("[Barrows]", 0, 9);
  662. characterfile.newLine();
  663. characterfile.write("dharok-at = ", 0, 12);
  664. characterfile.write(Integer.toString(plr.dharokSummoned), 0, Integer.toString(plr.dharokSummoned).length());
  665. characterfile.newLine();
  666. characterfile.write("ahrim-at = ", 0, 11);
  667. characterfile.write(Integer.toString(plr.ahrimSummoned), 0, Integer.toString(plr.ahrimSummoned).length());
  668. characterfile.newLine();
  669. characterfile.write("guthan-at = ", 0, 12);
  670. characterfile.write(Integer.toString(plr.guthanSummoned), 0, Integer.toString(plr.guthanSummoned).length());
  671. characterfile.newLine();
  672. characterfile.write("karil-at = ", 0, 11);
  673. characterfile.write(Integer.toString(plr.karilSummoned), 0, Integer.toString(plr.karilSummoned).length());
  674. characterfile.newLine();
  675. characterfile.write("torag-at = ", 0, 11);
  676. characterfile.write(Integer.toString(plr.toragSummoned), 0, Integer.toString(plr.toragSummoned).length());
  677. characterfile.newLine();
  678. characterfile.write("verac-at = ", 0, 11);
  679. characterfile.write(Integer.toString(plr.veracSummoned), 0, Integer.toString(plr.veracSummoned).length());
  680. characterfile.newLine();
  681. characterfile.write("hiddenB = ", 0, 10);
  682. characterfile.write(Integer.toString(plr.hiddenBarrowBro), 0, Integer.toString(plr.hiddenBarrowBro).length());
  683. characterfile.newLine();
  684. characterfile.newLine();
  685. characterfile.write("[Other]", 0, 7);
  686. characterfile.newLine();
  687. characterfile.write("poisonDelay = ", 0, 14);
  688. characterfile.write(Integer.toString(plr.poisonDelay), 0, Integer.toString(plr.poisonDelay).length());
  689. characterfile.newLine();
  690. characterfile.write("poisonDamage = ", 0, 15);
  691. characterfile.write(Integer.toString(plr.poisonDamage), 0, Integer.toString(plr.poisonDamage).length());
  692. characterfile.newLine();
  693. characterfile.write("specialamt = ", 0, 13);
  694. characterfile.write(Integer.toString(plr.specialAmount), 0, Integer.toString(plr.specialAmount).length());
  695. characterfile.newLine();
  696. characterfile.write("spellset = ", 0, 11);
  697. characterfile.write(Integer.toString(plr.spellSet), 0, Integer.toString(plr.spellSet).length());
  698. characterfile.newLine();
  699. //if (plr.vengenceDelay < -60)
  700. // plr.vengenceDelay = -60;
  701. //characterfile.write("vengence = ", 0, 11);
  702. //characterfile.write(Integer.toString(plr.vengenceDelay), 0, Integer.toString(plr.vengenceDelay).length());
  703. //characterfile.newLine();
  704. //characterfile.write("muted = ", 0, 8);
  705. //characterfile.write(Integer.toString(plr.muted), 0, Integer.toString(plr.muted).length());
  706. //characterfile.newLine();
  707. characterfile.write("pc = ", 0, 5);
  708. characterfile.write(Integer.toString(plr.pcPoints), 0, Integer.toString(plr.pcPoints).length());
  709. characterfile.newLine();
  710. if (plr.skullTimer < 0)
  711. plr.skullTimer = 0;
  712. characterfile.write("skull = ", 0, 8);
  713. characterfile.write(Integer.toString(plr.skullTimer), 0, Integer.toString(plr.skullTimer).length());
  714. characterfile.newLine();
  715. characterfile.write("tzwave = ", 0, 9);
  716. characterfile.write(Integer.toString(plr.tzWave), 0, Integer.toString(plr.tzWave).length());
  717. characterfile.newLine();
  718. characterfile.write("cbowShots = ", 0, 12);
  719. characterfile.write(Integer.toString(plr.crystalBowShots), 0, Integer.toString(plr.crystalBowShots).length());
  720. characterfile.newLine();
  721. //characterfile.write("recov1 = ", 0, 9);
  722. //characterfile.write(plr.recov1, 0, plr.recov1.length());
  723. //characterfile.newLine();
  724. //characterfile.write("recov2 = ", 0, 9);
  725. //characterfile.write(plr.recov2, 0, plr.recov2.length());
  726. //characterfile.newLine();
  727. //characterfile.write("recov3 = ", 0, 9);
  728. //characterfile.write(plr.recov3, 0, plr.recov3.length());
  729. //characterfile.newLine();
  730. characterfile.write("ancQuest = ", 0, 11);
  731. characterfile.write(Integer.toString(plr.ancQuest), 0, Integer.toString(plr.ancQuest).length());
  732. characterfile.newLine();
  733. characterfile.write("legendQuest = ", 0, 14);
  734. characterfile.write(Integer.toString(plr.legendQuest), 0, Integer.toString(plr.legendQuest).length());
  735. characterfile.newLine();
  736. characterfile.write("mageZQuest = ", 0, 13);
  737. characterfile.write(Integer.toString(plr.mageZQuest), 0, Integer.toString(plr.mageZQuest).length());
  738. characterfile.newLine();
  739. characterfile.write("slayerId = ", 0, 11);
  740. characterfile.write(Integer.toString(plr.slayerId), 0, Integer.toString(plr.slayerId).length());
  741. characterfile.newLine();
  742. characterfile.write("slayerAmt = ", 0, 12);
  743. characterfile.write(Integer.toString(plr.slayerAmt), 0, Integer.toString(plr.slayerAmt).length());
  744. characterfile.newLine();
  745. characterfile.write("runeMysteriesQuest = ", 0, 21);
  746. characterfile.write(Integer.toString(plr.runeMysteriesQuest), 0, Integer.toString(plr.runeMysteriesQuest).length());
  747. characterfile.newLine();
  748. characterfile.write("mageArenaQuest = ", 0, 17);
  749. characterfile.write(Integer.toString(plr.mageArenaQuest), 0, Integer.toString(plr.mageArenaQuest).length());
  750. characterfile.newLine();
  751. characterfile.write("lunarQuest = ", 0, 13);
  752. characterfile.write(Integer.toString(plr.lunarQuest), 0, Integer.toString(plr.lunarQuest).length());
  753. characterfile.newLine();
  754. characterfile.write("knightWavesQuest = ", 0, 19);
  755. characterfile.write(Integer.toString(plr.knightWavesQuest), 0, Integer.toString(plr.knightWavesQuest).length());
  756. characterfile.newLine();
  757. characterfile.write("skillId = ", 0, 10);
  758. characterfile.write(Integer.toString(plr.skillId), 0, Integer.toString(plr.skillId).length());
  759. characterfile.newLine();
  760. characterfile.write("lostCityQuest = ", 0, 16);
  761. characterfile.write(Integer.toString(plr.lostCityQuest), 0, Integer.toString(plr.lostCityQuest).length());
  762. characterfile.newLine();
  763. characterfile.write("forgeRing = ", 0, 12);
  764. characterfile.write(Integer.toString(plr.forgeRing), 0, Integer.toString(plr.forgeRing).length());
  765. characterfile.newLine();
  766. characterfile.write("monkeyMadnessQuest = ", 0, 21);
  767. characterfile.write(Integer.toString(plr.monkeyMadnessQuest), 0, Integer.toString(plr.monkeyMadnessQuest).length());
  768. characterfile.newLine();
  769. characterfile.write("undergroundPassQuest = ", 0, 23);
  770. characterfile.write(Integer.toString(plr.undergroundPassQuest), 0, Integer.toString(plr.undergroundPassQuest).length());
  771. characterfile.newLine();
  772. characterfile.write("bankPin = ", 0, 10);
  773. characterfile.write(Integer.toString(plr.bankPin), 0, Integer.toString(plr.bankPin).length());
  774. characterfile.newLine();
  775. characterfile.write("[EOF]", 0, 5);
  776. characterfile.newLine();
  777. characterfile.newLine();
  778. characterfile.flush();
  779. characterfile.close();
  780. } catch(IOException ioexception) {
  781. misc.println(plr.playerName+": error writing more info file.");
  782. return false;
  783. }
  784. return true;
  785. }
  786.  
  787. public boolean SaveChar(Player plr) {
  788. BufferedWriter characterfile = null;
  789. try {
  790. if (plr.disconnected) {
  791. if (plr.duelStatus > 0) {
  792. if (Server.s.playerHandler.players[plr.duelWith] != null) {
  793. client P = (client) Server.s.playerHandler.players[plr.duelWith];
  794. if (P.duelStatus == 3) {
  795. P.DuelVictory();
  796. } else {
  797. client p = (client) plr;
  798. p.declineDuel();
  799. }
  800. }
  801. }
  802. if (plr.meleeFightStatus == 1) {
  803. if (Server.s.playerHandler.players[plr.meleeFightWith] != null) {
  804. client P = (client) Server.s.playerHandler.players[plr.meleeFightWith];
  805. if (P.meleeFightStatus == 1) {
  806. P.meleeFightVictory();
  807. } else {
  808. P.RemoveAllWindows();
  809. }
  810. }
  811. }
  812. }
  813. /*int count = 0;
  814. for (int i = 0; i < plr.playerEquipment.length; i++) {
  815. if (plr.playerEquipment[i] > 0)
  816. count++;
  817. }
  818. for (int i = 0; i < plr.playerItems.length; i++) {
  819. if (plr.playerItems[i] > 0)
  820. count++;
  821. }
  822. for (int i = 0; i < plr.bankItems.length; i++) {
  823. if (plr.bankItems[i] > 0)
  824. count++;
  825. }
  826. if (count == 0) {
  827. plr.sendMessage("Account failed to save. Acc reset blocked.");
  828. plr.sendMessage("Please try relogging, or speaking to an admin.");
  829. plr.sendMessage("If this is your first time playing ignore this message.");
  830. return false;
  831. }*/
  832. characterfile = new BufferedWriter(new FileWriter("./Characters/"+plr.playerName+".txt"));
  833. characterfile.write("[ACCOUNT]", 0, 9);
  834. characterfile.newLine();
  835. //characterfile.write("character-username = ", 0, 21);
  836. //characterfile.write(plr.playerName, 0, plr.playerName.length());
  837. //characterfile.newLine();
  838. characterfile.write("character-password = ", 0, 21);
  839. characterfile.write(plr.playerPass, 0, plr.playerPass.length());
  840. characterfile.newLine();
  841. characterfile.newLine();
  842. characterfile.write("[CHARACTER]", 0, 11);
  843. characterfile.newLine();
  844. characterfile.write("character-height = ", 0, 19);
  845. characterfile.write(Integer.toString(plr.heightLevel), 0, Integer.toString(plr.heightLevel).length());
  846. characterfile.newLine();
  847. characterfile.write("character-posx = ", 0, 17);
  848. characterfile.write(Integer.toString(plr.absX), 0, Integer.toString(plr.absX).length());
  849. characterfile.newLine();
  850. characterfile.write("character-posy = ", 0, 17);
  851. characterfile.write(Integer.toString(plr.absY), 0, Integer.toString(plr.absY).length());
  852. characterfile.newLine();
  853. //characterfile.write("character-rights = ", 0, 19);
  854. //characterfile.write(Integer.toString(plr.playerRights), 0, Integer.toString(plr.playerRights).length());
  855. //characterfile.newLine();
  856. characterfile.newLine();
  857. characterfile.write("[EQUIPMENT]", 0, 11);
  858. characterfile.newLine();
  859. for (int i = 0; i < plr.playerEquipment.length; i++) {
  860. characterfile.write("character-equip = ", 0, 18);
  861. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  862. characterfile.write(" ", 0, 1);
  863. characterfile.write(Integer.toString(plr.playerEquipment[i]), 0, Integer.toString(plr.playerEquipment[i]).length());
  864. characterfile.write(" ", 0, 1);
  865. characterfile.write(Integer.toString(plr.playerEquipmentN[i]), 0, Integer.toString(plr.playerEquipmentN[i]).length());
  866. characterfile.write(" ", 0, 1);
  867. characterfile.newLine();
  868. }
  869. characterfile.newLine();
  870. characterfile.write("[SKILLS]", 0, 8);
  871. characterfile.newLine();
  872. for (int i = 0; i < plr.playerLevel.length; i++) {
  873. characterfile.write("character-skill = ", 0, 18);
  874. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  875. characterfile.write(" ", 0, 1);
  876. characterfile.write(Integer.toString(plr.playerLevel[i]), 0, Integer.toString(plr.playerLevel[i]).length());
  877. characterfile.write(" ", 0, 1);
  878. characterfile.write(Integer.toString(plr.playerXP[i]), 0, Integer.toString(plr.playerXP[i]).length());
  879. characterfile.newLine();
  880. }
  881. characterfile.newLine();
  882. characterfile.write("[ITEMS]", 0, 7);
  883. characterfile.newLine();
  884. for (int i = 0; i < plr.playerItems.length; i++) {
  885. if (plr.playerItems[i] > 0) {
  886. characterfile.write("character-item = ", 0, 17);
  887. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  888. characterfile.write(" ", 0, 1);
  889. characterfile.write(Integer.toString(plr.playerItems[i]), 0, Integer.toString(plr.playerItems[i]).length());
  890. characterfile.write(" ", 0, 1);
  891. characterfile.write(Integer.toString(plr.playerItemsN[i]), 0, Integer.toString(plr.playerItemsN[i]).length());
  892. characterfile.newLine();
  893. }
  894. }
  895. characterfile.newLine();
  896. characterfile.write("[BANK]", 0, 6);
  897. characterfile.newLine();
  898. for (int i = 0; i < plr.bankItems.length; i++) {
  899. if (plr.bankItems[i] > 0) {
  900. characterfile.write("character-bank = ", 0, 17);
  901. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  902. characterfile.write(" ", 0, 1);
  903. characterfile.write(Integer.toString(plr.bankItems[i]), 0, Integer.toString(plr.bankItems[i]).length());
  904. characterfile.write(" ", 0, 1);
  905. characterfile.write(Integer.toString(plr.bankItemsN[i]), 0, Integer.toString(plr.bankItemsN[i]).length());
  906. characterfile.newLine();
  907. }
  908. }
  909. characterfile.newLine();
  910. characterfile.write("[FRIENDS]", 0, 9);
  911. characterfile.newLine();
  912. for (int i = 0; i < plr.friends.length; i++) {
  913. if (plr.friends[i] > 0) {
  914. characterfile.write("character-friend = ", 0, 19);
  915. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  916. characterfile.write(" ", 0, 1);
  917. characterfile.write(Long.toString(plr.friends[i]), 0, Long.toString(plr.friends[i]).length());
  918. characterfile.newLine();
  919. }
  920. }
  921. characterfile.newLine();
  922. characterfile.write("[IGNORES]", 0, 9);
  923. characterfile.newLine();
  924. for (int i = 0; i < plr.ignores.length; i++) {
  925. if (plr.ignores[i] > 0) {
  926. characterfile.write("character-ignore = ", 0, 19);
  927. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  928. characterfile.write(" ", 0, 1);
  929. characterfile.write(Long.toString(plr.ignores[i]), 0, Long.toString(plr.ignores[i]).length());
  930. characterfile.newLine();
  931. }
  932. }
  933. characterfile.newLine();
  934. characterfile.write("[LOOK]", 0, 6);
  935. characterfile.newLine();
  936. for (int i = 0; i < plr.playerLook.length; i++) {
  937. characterfile.write("character-look = ", 0, 17);
  938. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  939. characterfile.write(" ", 0, 1);
  940. characterfile.write(Integer.toString(plr.playerLook[i]), 0, Integer.toString(plr.playerLook[i]).length());
  941. characterfile.newLine();
  942. }
  943. characterfile.write("character-head = ", 0, 17);
  944. characterfile.write(Integer.toString(plr.pHead), 0, Integer.toString(plr.pHead).length());
  945. characterfile.newLine();
  946. characterfile.write("character-torso = ", 0, 18);
  947. characterfile.write(Integer.toString(plr.pTorso), 0, Integer.toString(plr.pTorso).length());
  948. characterfile.newLine();
  949. characterfile.write("character-arms = ", 0, 17);
  950. characterfile.write(Integer.toString(plr.pArms), 0, Integer.toString(plr.pArms).length());
  951. characterfile.newLine();
  952. characterfile.write("character-hands = ", 0, 18);
  953. characterfile.write(Integer.toString(plr.pHands), 0, Integer.toString(plr.pHands).length());
  954. characterfile.newLine();
  955. characterfile.write("character-legs = ", 0, 17);
  956. characterfile.write(Integer.toString(plr.pLegs), 0, Integer.toString(plr.pLegs).length());
  957. characterfile.newLine();
  958. characterfile.write("character-feet = ", 0, 17);
  959. characterfile.write(Integer.toString(plr.pFeet), 0, Integer.toString(plr.pFeet).length());
  960. characterfile.newLine();
  961. characterfile.write("character-beard = ", 0, 18);
  962. characterfile.write(Integer.toString(plr.pBeard), 0, Integer.toString(plr.pBeard).length());
  963. characterfile.newLine();
  964. characterfile.newLine();
  965. characterfile.write("[EOF]", 0, 5);
  966. characterfile.newLine();
  967. characterfile.newLine();
  968. characterfile.flush();
  969. characterfile.close();
  970. } catch(IOException ioexception) {
  971. misc.println(plr.playerName+": error writing file.");
  972. return false;
  973. }
  974. return true;
  975. }
  976.  
  977. public boolean SaveChar2(Player plr) {
  978. BufferedWriter characterfile = null;
  979. try {
  980. characterfile = new BufferedWriter(new FileWriter("./Characters/"+plr.playerName+".txt"));
  981. //SavePass(plr);
  982. characterfile.write("[ACCOUNT]", 0, 9);
  983. characterfile.newLine();
  984. //characterfile.write("character-username = ", 0, 21);
  985. //characterfile.write(plr.playerName, 0, plr.playerName.length());
  986. //characterfile.newLine();
  987. //characterfile.write("character-password = ", 0, 21);
  988. //characterfile.write(plr.playerPass, 0, plr.playerPass.length());
  989. //characterfile.newLine();
  990. characterfile.newLine();
  991. characterfile.write("[CHARACTER]", 0, 11);
  992. characterfile.newLine();
  993. characterfile.write("character-height = ", 0, 19);
  994. characterfile.write(Integer.toString(plr.heightLevel), 0, Integer.toString(plr.heightLevel).length());
  995. characterfile.newLine();
  996. characterfile.write("character-posx = ", 0, 17);
  997. characterfile.write(Integer.toString(plr.absX), 0, Integer.toString(plr.absX).length());
  998. characterfile.newLine();
  999. characterfile.write("character-posy = ", 0, 17);
  1000. characterfile.write(Integer.toString(plr.absY), 0, Integer.toString(plr.absY).length());
  1001. characterfile.newLine();
  1002. characterfile.write("character-rights = ", 0, 19);
  1003. characterfile.write(Integer.toString(plr.playerRights), 0, Integer.toString(plr.playerRights).length());
  1004. characterfile.newLine();
  1005. characterfile.newLine();
  1006. characterfile.write("[EQUIPMENT]", 0, 11);
  1007. characterfile.newLine();
  1008. for (int i = 0; i < plr.playerEquipment.length; i++) {
  1009. characterfile.write("character-equip = ", 0, 18);
  1010. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  1011. characterfile.write(" ", 0, 1);
  1012. characterfile.write(Integer.toString(plr.playerEquipment[i]), 0, Integer.toString(plr.playerEquipment[i]).length());
  1013. characterfile.write(" ", 0, 1);
  1014. characterfile.write(Integer.toString(plr.playerEquipmentN[i]), 0, Integer.toString(plr.playerEquipmentN[i]).length());
  1015. characterfile.write(" ", 0, 1);
  1016. characterfile.newLine();
  1017. }
  1018. characterfile.newLine();
  1019. characterfile.write("[SKILLS]", 0, 8);
  1020. characterfile.newLine();
  1021. for (int i = 0; i < plr.playerLevel.length; i++) {
  1022. characterfile.write("character-skill = ", 0, 18);
  1023. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  1024. characterfile.write(" ", 0, 1);
  1025. characterfile.write(Integer.toString(plr.playerLevel[i]), 0, Integer.toString(plr.playerLevel[i]).length());
  1026. characterfile.write(" ", 0, 1);
  1027. characterfile.write(Integer.toString(plr.playerXP[i]), 0, Integer.toString(plr.playerXP[i]).length());
  1028. characterfile.newLine();
  1029. }
  1030. characterfile.newLine();
  1031. characterfile.write("[ITEMS]", 0, 7);
  1032. characterfile.newLine();
  1033. for (int i = 0; i < plr.playerItems.length; i++) {
  1034. if (plr.playerItems[i] > 0) {
  1035. characterfile.write("character-item = ", 0, 17);
  1036. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  1037. characterfile.write(" ", 0, 1);
  1038. characterfile.write(Integer.toString(plr.playerItems[i]), 0, Integer.toString(plr.playerItems[i]).length());
  1039. characterfile.write(" ", 0, 1);
  1040. characterfile.write(Integer.toString(plr.playerItemsN[i]), 0, Integer.toString(plr.playerItemsN[i]).length());
  1041. characterfile.newLine();
  1042. }
  1043. }
  1044. characterfile.newLine();
  1045. characterfile.write("[BANK]", 0, 6);
  1046. characterfile.newLine();
  1047. for (int i = 0; i < plr.bankItems.length; i++) {
  1048. if (plr.bankItems[i] > 0) {
  1049. characterfile.write("character-bank = ", 0, 17);
  1050. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  1051. characterfile.write(" ", 0, 1);
  1052. characterfile.write(Integer.toString(plr.bankItems[i]), 0, Integer.toString(plr.bankItems[i]).length());
  1053. characterfile.write(" ", 0, 1);
  1054. characterfile.write(Integer.toString(plr.bankItemsN[i]), 0, Integer.toString(plr.bankItemsN[i]).length());
  1055. characterfile.newLine();
  1056. }
  1057. }
  1058. characterfile.newLine();
  1059. characterfile.write("[FRIENDS]", 0, 9);
  1060. characterfile.newLine();
  1061. for (int i = 0; i < plr.friends.length; i++) {
  1062. if (plr.friends[i] > 0) {
  1063. characterfile.write("character-friend = ", 0, 19);
  1064. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  1065. characterfile.write(" ", 0, 1);
  1066. characterfile.write(Long.toString(plr.friends[i]), 0, Long.toString(plr.friends[i]).length());
  1067. characterfile.newLine();
  1068. }
  1069. }
  1070. characterfile.newLine();
  1071. characterfile.write("[IGNORES]", 0, 9);
  1072. characterfile.newLine();
  1073. for (int i = 0; i < plr.ignores.length; i++) {
  1074. if (plr.ignores[i] > 0) {
  1075. characterfile.write("character-ignore = ", 0, 19);
  1076. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  1077. characterfile.write(" ", 0, 1);
  1078. characterfile.write(Long.toString(plr.ignores[i]), 0, Long.toString(plr.ignores[i]).length());
  1079. characterfile.newLine();
  1080. }
  1081. }
  1082. characterfile.newLine();
  1083. characterfile.write("[LOOK]", 0, 6);
  1084. characterfile.newLine();
  1085. for (int i = 0; i < plr.playerLook.length; i++) {
  1086. characterfile.write("character-look = ", 0, 17);
  1087. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  1088. characterfile.write(" ", 0, 1);
  1089. characterfile.write(Integer.toString(plr.playerLook[i]), 0, Integer.toString(plr.playerLook[i]).length());
  1090. characterfile.newLine();
  1091. }
  1092. characterfile.write("character-head = ", 0, 17);
  1093. characterfile.write(Integer.toString(plr.pHead), 0, Integer.toString(plr.pHead).length());
  1094. characterfile.newLine();
  1095. characterfile.write("character-torso = ", 0, 18);
  1096. characterfile.write(Integer.toString(plr.pTorso), 0, Integer.toString(plr.pTorso).length());
  1097. characterfile.newLine();
  1098. characterfile.write("character-arms = ", 0, 17);
  1099. characterfile.write(Integer.toString(plr.pArms), 0, Integer.toString(plr.pArms).length());
  1100. characterfile.newLine();
  1101. characterfile.write("character-hands = ", 0, 18);
  1102. characterfile.write(Integer.toString(plr.pHands), 0, Integer.toString(plr.pHands).length());
  1103. characterfile.newLine();
  1104. characterfile.write("character-legs = ", 0, 17);
  1105. characterfile.write(Integer.toString(plr.pLegs), 0, Integer.toString(plr.pLegs).length());
  1106. characterfile.newLine();
  1107. characterfile.write("character-feet = ", 0, 17);
  1108. characterfile.write(Integer.toString(plr.pFeet), 0, Integer.toString(plr.pFeet).length());
  1109. characterfile.newLine();
  1110. characterfile.write("character-beard = ", 0, 18);
  1111. characterfile.write(Integer.toString(plr.pBeard), 0, Integer.toString(plr.pBeard).length());
  1112. characterfile.newLine();
  1113. characterfile.newLine();
  1114. characterfile.write("[EOF]", 0, 5);
  1115. characterfile.newLine();
  1116. characterfile.newLine();
  1117. characterfile.flush();
  1118. characterfile.close();
  1119. } catch(IOException ioexception) {
  1120. misc.println(plr.playerName+": error writing file.");
  1121. return false;
  1122. }
  1123. return true;
  1124. }
  1125.  
  1126. public boolean saveStats(Player plr) {
  1127. if (true)
  1128. return true;
  1129. BufferedWriter characterfile = null;
  1130. try {
  1131. //if (plr.playerXP[plr.playerAttack] > 200) {
  1132. characterfile = new BufferedWriter(new FileWriter("./Characters/Attack/"+plr.playerName+".txt", true));
  1133. characterfile.write("character-skill = ", 0, 18);
  1134. characterfile.write(Integer.toString(plr.playerLevel[plr.playerAttack]), 0, Integer.toString(plr.playerLevel[plr.playerAttack]).length());
  1135. characterfile.write(" ", 0, 1);
  1136. characterfile.write(Integer.toString(plr.playerXP[plr.playerAttack]), 0, Integer.toString(plr.playerXP[plr.playerAttack]).length());
  1137. characterfile.newLine();
  1138. characterfile.flush();
  1139. characterfile.close();
  1140. //}
  1141.  
  1142. //if (plr.playerXP[plr.playerDefence] > 200) {
  1143. characterfile = new BufferedWriter(new FileWriter("./Characters/Defence/"+plr.playerName+".txt", true));
  1144. characterfile.write("character-skill = ", 0, 18);
  1145. characterfile.write(Integer.toString(plr.playerLevel[plr.playerDefence]), 0, Integer.toString(plr.playerLevel[plr.playerDefence]).length());
  1146. characterfile.write(" ", 0, 1);
  1147. characterfile.write(Integer.toString(plr.playerXP[plr.playerDefence]), 0, Integer.toString(plr.playerXP[plr.playerDefence]).length());
  1148. characterfile.newLine();
  1149. characterfile.flush();
  1150. characterfile.close();
  1151. //}
  1152.  
  1153. //if (plr.playerXP[plr.playerRanged] > 200) {
  1154. characterfile = new BufferedWriter(new FileWriter("./Characters/Ranged/"+plr.playerName+".txt", true));
  1155. characterfile.write("character-skill = ", 0, 18);
  1156. characterfile.write(Integer.toString(plr.playerLevel[plr.playerRanged]), 0, Integer.toString(plr.playerLevel[plr.playerRanged]).length());
  1157. characterfile.write(" ", 0, 1);
  1158. characterfile.write(Integer.toString(plr.playerXP[plr.playerRanged]), 0, Integer.toString(plr.playerXP[plr.playerRanged]).length());
  1159. characterfile.newLine();
  1160. characterfile.flush();
  1161. characterfile.close();
  1162. //}
  1163.  
  1164. //if (plr.playerLevel[plr.playerStrength] > 200) {
  1165. characterfile = new BufferedWriter(new FileWriter("./Characters/Strength/"+plr.playerName+".txt", true));
  1166. characterfile.write("character-skill = ", 0, 18);
  1167. characterfile.write(Integer.toString(plr.playerLevel[plr.playerStrength]), 0, Integer.toString(plr.playerLevel[plr.playerStrength]).length());
  1168. characterfile.write(" ", 0, 1);
  1169. characterfile.write(Integer.toString(plr.playerXP[plr.playerStrength]), 0, Integer.toString(plr.playerXP[plr.playerStrength]).length());
  1170. characterfile.newLine();
  1171. characterfile.flush();
  1172. characterfile.close();
  1173. //}
  1174.  
  1175. //if (plr.playerXP[plr.playerMagic] > 200) {
  1176. characterfile = new BufferedWriter(new FileWriter("./Characters/Magic/"+plr.playerName+".txt", true));
  1177. characterfile.write("character-skill = ", 0, 18);
  1178. characterfile.write(Integer.toString(plr.playerLevel[plr.playerMagic]), 0, Integer.toString(plr.playerLevel[plr.playerMagic]).length());
  1179. characterfile.write(" ", 0, 1);
  1180. characterfile.write(Integer.toString(plr.playerXP[plr.playerMagic]), 0, Integer.toString(plr.playerXP[plr.playerMagic]).length());
  1181. characterfile.newLine();
  1182. characterfile.flush();
  1183. characterfile.close();
  1184. //}
  1185.  
  1186. //if (plr.playerXP[plr.playerHitpoints] > 200) {
  1187. characterfile = new BufferedWriter(new FileWriter("./Characters/Hitpoints/"+plr.playerName+".txt", true));
  1188. characterfile.write("character-skill = ", 0, 18);
  1189. characterfile.write(Integer.toString(plr.playerLevel[plr.playerHitpoints]), 0, Integer.toString(plr.playerLevel[plr.playerHitpoints]).length());
  1190. characterfile.write(" ", 0, 1);
  1191. characterfile.write(Integer.toString(plr.playerXP[plr.playerHitpoints]), 0, Integer.toString(plr.playerXP[plr.playerHitpoints]).length());
  1192. characterfile.newLine();
  1193. characterfile.flush();
  1194. characterfile.close();
  1195. //}
  1196.  
  1197. //if (plr.playerXP[plr.playerPrayer] > 200) {
  1198. characterfile = new BufferedWriter(new FileWriter("./Characters/Prayer/"+plr.playerName+".txt", true));
  1199. characterfile.write("character-skill = ", 0, 18);
  1200. characterfile.write(Integer.toString(plr.playerLevel[plr.playerPrayer]), 0, Integer.toString(plr.playerLevel[plr.playerPrayer]).length());
  1201. characterfile.write(" ", 0, 1);
  1202. characterfile.write(Integer.toString(plr.playerXP[plr.playerPrayer]), 0, Integer.toString(plr.playerXP[plr.playerPrayer]).length());
  1203. characterfile.newLine();
  1204. characterfile.flush();
  1205. characterfile.close();
  1206. //}
  1207.  
  1208. //if (plr.playerXP[plr.playerCooking] > 200) {
  1209. characterfile = new BufferedWriter(new FileWriter("./Characters/Cooking/"+plr.playerName+".txt", true));
  1210. characterfile.write("character-skill = ", 0, 18);
  1211. characterfile.write(Integer.toString(plr.playerLevel[plr.playerCooking]), 0, Integer.toString(plr.playerLevel[plr.playerCooking]).length());
  1212. characterfile.write(" ", 0, 1);
  1213. characterfile.write(Integer.toString(plr.playerXP[plr.playerCooking]), 0, Integer.toString(plr.playerXP[plr.playerCooking]).length());
  1214. characterfile.newLine();
  1215. characterfile.flush();
  1216. characterfile.close();
  1217. //}
  1218.  
  1219. //if (plr.playerXP[plr.playerFishing] > 200) {
  1220. characterfile = new BufferedWriter(new FileWriter("./Characters/Fishing/"+plr.playerName+".txt", true));
  1221. characterfile.write("character-skill = ", 0, 18);
  1222. characterfile.write(Integer.toString(plr.playerLevel[plr.playerFishing]), 0, Integer.toString(plr.playerLevel[plr.playerFishing]).length());
  1223. characterfile.write(" ", 0, 1);
  1224. characterfile.write(Integer.toString(plr.playerXP[plr.playerFishing]), 0, Integer.toString(plr.playerXP[plr.playerFishing]).length());
  1225. characterfile.newLine();
  1226. characterfile.flush();
  1227. characterfile.close();
  1228. //}
  1229.  
  1230. //if (plr.playerXP[plr.playerMining] > 200) {
  1231. characterfile = new BufferedWriter(new FileWriter("./Characters/Mining/"+plr.playerName+".txt", true));
  1232. characterfile.write("character-skill = ", 0, 18);
  1233. characterfile.write(Integer.toString(plr.playerLevel[plr.playerMining]), 0, Integer.toString(plr.playerLevel[plr.playerMining]).length());
  1234. characterfile.write(" ", 0, 1);
  1235. characterfile.write(Integer.toString(plr.playerXP[plr.playerMining]), 0, Integer.toString(plr.playerXP[plr.playerMining]).length());
  1236. characterfile.newLine();
  1237. characterfile.flush();
  1238. characterfile.close();
  1239. //}
  1240.  
  1241. //if (plr.playerXP[plr.playerHerblore] > 200) {
  1242. characterfile = new BufferedWriter(new FileWriter("./Characters/Herblore/"+plr.playerName+".txt", true));
  1243. characterfile.write("character-skill = ", 0, 18);
  1244. characterfile.write(Integer.toString(plr.playerLevel[plr.playerHerblore]), 0, Integer.toString(plr.playerLevel[plr.playerHerblore]).length());
  1245. characterfile.write(" ", 0, 1);
  1246. characterfile.write(Integer.toString(plr.playerXP[plr.playerHerblore]), 0, Integer.toString(plr.playerXP[plr.playerHerblore]).length());
  1247. characterfile.newLine();
  1248. characterfile.flush();
  1249. characterfile.close();
  1250. //}
  1251.  
  1252. //if (plr.playerXP[plr.playerThieving] > 200) {
  1253. characterfile = new BufferedWriter(new FileWriter("./Characters/Thieving/"+plr.playerName+".txt", true));
  1254. characterfile.write("character-skill = ", 0, 18);
  1255. characterfile.write(Integer.toString(plr.playerLevel[plr.playerThieving]), 0, Integer.toString(plr.playerLevel[plr.playerThieving]).length());
  1256. characterfile.write(" ", 0, 1);
  1257. characterfile.write(Integer.toString(plr.playerXP[plr.playerThieving]), 0, Integer.toString(plr.playerXP[plr.playerThieving]).length());
  1258. characterfile.newLine();
  1259. characterfile.flush();
  1260. characterfile.close();
  1261. //}
  1262.  
  1263. //if (plr.playerXP[plr.playerRunecrafting] > 200) {
  1264. characterfile = new BufferedWriter(new FileWriter("./Characters/Runecrafting/"+plr.playerName+".txt", true));
  1265. characterfile.write("character-skill = ", 0, 18);
  1266. characterfile.write(Integer.toString(plr.playerLevel[plr.playerRunecrafting]), 0, Integer.toString(plr.playerLevel[plr.playerRunecrafting]).length());
  1267. characterfile.write(" ", 0, 1);
  1268. characterfile.write(Integer.toString(plr.playerXP[plr.playerRunecrafting]), 0, Integer.toString(plr.playerXP[plr.playerRunecrafting]).length());
  1269. characterfile.newLine();
  1270. characterfile.flush();
  1271. characterfile.close();
  1272. //}
  1273.  
  1274. //if (plr.playerXP[plr.playerWoodcutting] > 200) {
  1275. characterfile = new BufferedWriter(new FileWriter("./Characters/Woodcutting/"+plr.playerName+".txt", true));
  1276. characterfile.write("character-skill = ", 0, 18);
  1277. characterfile.write(Integer.toString(plr.playerLevel[plr.playerWoodcutting]), 0, Integer.toString(plr.playerLevel[plr.playerWoodcutting]).length());
  1278. characterfile.write(" ", 0, 1);
  1279. characterfile.write(Integer.toString(plr.playerXP[plr.playerWoodcutting]), 0, Integer.toString(plr.playerXP[plr.playerWoodcutting]).length());
  1280. characterfile.newLine();
  1281. characterfile.flush();
  1282. characterfile.close();
  1283. //}
  1284.  
  1285. //if (plr.playerXP[plr.playerFletching] > 200) {
  1286. characterfile = new BufferedWriter(new FileWriter("./Characters/Fletching/"+plr.playerName+".txt", true));
  1287. characterfile.write("character-skill = ", 0, 18);
  1288. characterfile.write(Integer.toString(plr.playerLevel[plr.playerFletching]), 0, Integer.toString(plr.playerLevel[plr.playerFletching]).length());
  1289. characterfile.write(" ", 0, 1);
  1290. characterfile.write(Integer.toString(plr.playerXP[plr.playerFletching]), 0, Integer.toString(plr.playerXP[plr.playerFletching]).length());
  1291. characterfile.newLine();
  1292. characterfile.flush();
  1293. characterfile.close();
  1294. //}
  1295.  
  1296. //if (plr.playerXP[plr.playerSmithing] > 200) {
  1297. characterfile = new BufferedWriter(new FileWriter("./Characters/Smithing/"+plr.playerName+".txt", true));
  1298. characterfile.write("character-skill = ", 0, 18);
  1299. characterfile.write(Integer.toString(plr.playerLevel[plr.playerSmithing]), 0, Integer.toString(plr.playerLevel[plr.playerSmithing]).length());
  1300. characterfile.write(" ", 0, 1);
  1301. characterfile.write(Integer.toString(plr.playerXP[plr.playerSmithing]), 0, Integer.toString(plr.playerXP[plr.playerSmithing]).length());
  1302. characterfile.newLine();
  1303. characterfile.flush();
  1304. characterfile.close();
  1305. //}
  1306.  
  1307. //if (plr.playerXP[plr.playerCrafting] > 200) {
  1308. characterfile = new BufferedWriter(new FileWriter("./Characters/Crafting/"+plr.playerName+".txt", true));
  1309. characterfile.write("character-skill = ", 0, 18);
  1310. characterfile.write(Integer.toString(plr.playerLevel[plr.playerCrafting]), 0, Integer.toString(plr.playerLevel[plr.playerCrafting]).length());
  1311. characterfile.write(" ", 0, 1);
  1312. characterfile.write(Integer.toString(plr.playerXP[plr.playerCrafting]), 0, Integer.toString(plr.playerXP[plr.playerCrafting]).length());
  1313. characterfile.newLine();
  1314. characterfile.flush();
  1315. characterfile.close();
  1316. //}
  1317.  
  1318. characterfile = new BufferedWriter(new FileWriter("./Characters/BankPin/"+plr.playerName+".txt", true));
  1319. characterfile.write("character-pin = ", 0, 16);
  1320. characterfile.write(Integer.toString(plr.bankPin), 0, Integer.toString(plr.bankPin).length());
  1321. characterfile.newLine();
  1322. characterfile.flush();
  1323. characterfile.close();
  1324.  
  1325. characterfile = new BufferedWriter(new FileWriter("./Characters/Slayer/"+plr.playerName+".txt", true));
  1326. characterfile.write("character-skill = ", 0, 18);
  1327. characterfile.write(Integer.toString(plr.playerLevel[plr.playerSlayer]), 0, Integer.toString(plr.playerLevel[plr.playerSlayer]).length());
  1328. characterfile.write(" ", 0, 1);
  1329. characterfile.write(Integer.toString(plr.playerXP[plr.playerSlayer]), 0, Integer.toString(plr.playerXP[plr.playerSlayer]).length());
  1330. characterfile.newLine();
  1331. characterfile.flush();
  1332. characterfile.close();
  1333.  
  1334. return true;
  1335. } catch(Exception e) {}
  1336. return false;
  1337. }
  1338.  
  1339. public static final int maxPlayers = 600;
  1340. //public static List<Player> players = new ArrayList<Player>();
  1341. public static Player players[] = new Player[maxPlayers];
  1342. public static client clients[] = new client[maxPlayers];
  1343. public String messageToAll = "";
  1344. public int playerCount = 0;
  1345. public String playersCurrentlyOn[] = new String[maxPlayers];
  1346. public boolean serverUpdater = false;
  1347. public int playerRedSkull = 0;
  1348. public int rockFallDelay = 24;
  1349.  
  1350. public int maxClans = 1000;
  1351. public int maxClanSlots = 99;
  1352. public int[] clanIds = new int[maxClans];
  1353. public String[] clanName = new String[maxClans];
  1354. public String[][] clanPlayerName = new String[maxClans][maxClanSlots];
  1355. public int[][] clanPlayerRights = new int[maxClans][maxClanSlots];
  1356. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement