Advertisement
Guest User

Untitled

a guest
May 19th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.88 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. public void loadAllClans() {
  8. BufferedReader br = null;
  9. String line = "";
  10. File clanFolder = new File("Clans");
  11. File[] clanFile = clanFolder.listFiles();
  12. int lnCnt = 0;
  13. int i4 = 0;
  14. for (int i = 0; i < clanFile.length; i++) {
  15. try {
  16. br = new BufferedReader(new FileReader(clanFile[i]));
  17. line = br.readLine();
  18. clanIds[Integer.parseInt(line)] = 1;
  19. int cId = Integer.parseInt(line);
  20. String clnName = clanFile[i].getName();
  21. clanName[cId] = clnName.substring(0, clnName.lastIndexOf("."));
  22. lnCnt = 0;
  23. while ((line = br.readLine()) != null) {
  24. i4 = line.lastIndexOf(",");
  25. clanPlayerName[cId][lnCnt] = line.substring(0, i4);
  26. clanPlayerRights[cId][lnCnt] = Integer.parseInt(line.substring(i4 + 1));
  27. lnCnt++;
  28. }
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. }
  32. }
  33. }
  34.  
  35. public boolean saveClan(int clanId) {
  36. if (clanIds[clanId] == 0) {
  37. return false;
  38. }
  39. BufferedWriter bw = null;
  40. try {
  41. bw = new BufferedWriter(new FileWriter("./Clans/" + clanName[clanId] + ".txt"));
  42. bw.write(Integer.toString(clanId), 0, Integer.toString(clanId).length());
  43. bw.newLine();
  44. for (int i = 0; i < maxClanSlots; i++) {
  45. if (clanPlayerName[clanId][i] != null && !clanPlayerName[clanId][i].equalsIgnoreCase("")) {
  46. bw.write(clanPlayerName[clanId][i] + "," + clanPlayerRights[clanId][i], 0, clanPlayerName[clanId][i].length() + 2);
  47. bw.newLine();
  48. }
  49. }
  50. bw.flush();
  51. bw.close();
  52. return true;
  53. } catch (Exception e) {
  54. }
  55. return false;
  56. }
  57.  
  58. public boolean createClan(String cName, int pId) {
  59. if (players[pId] != null) {
  60. int clanId = getClanId(players[pId].playerName);
  61. if (clanId != -1) {
  62. return false;
  63. }
  64. /*
  65. for (client c : clients) {
  66. if (c.combatLevel < 60) {
  67. c.sendMessage("You must be at least 60 combat to create a clan");
  68. return false;
  69. }
  70. }
  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 bannedPlayer(String playerName) {
  323. String name = null;
  324. try {
  325. BufferedReader in = new BufferedReader(new FileReader("./Data/BannedUsers.txt"));
  326. while ((name = in.readLine()) != null) {
  327. if (playerName.startsWith(name)) {
  328. in.close();
  329. return true;
  330. }
  331. }
  332. in.close();
  333. } catch (IOException e) {
  334. }
  335. return false;
  336. }
  337.  
  338. public boolean bannedHost(String host) {
  339. String loggedHosts = null;
  340. try {
  341. BufferedReader in = new BufferedReader(new FileReader("./Data/BannedIps.txt"));
  342. while ((loggedHosts = in.readLine()) != null) {
  343. if (host.startsWith(loggedHosts)) {
  344. in.close();
  345. return true;
  346. }
  347. }
  348. in.close();
  349. } catch (IOException e) {
  350. //e.printStackTrace();
  351. }
  352. return false;
  353. }
  354.  
  355. public void destruct() {
  356. }
  357.  
  358. public void updatePlayerNames() {
  359. playerCount = 0;
  360. int slot = 0;
  361. for (int i = 0; i < maxPlayers; i++) {
  362. if (players[i] != null) {
  363. playersCurrentlyOn[slot] = players[i].playerName;
  364. playerCount++;
  365. } else {
  366. playersCurrentlyOn[slot] = "";
  367. }
  368. slot++;
  369. }
  370. }
  371.  
  372. public boolean isPlayerOn(String playerName) {
  373. if (playerName == null || playerName.equals(""))
  374. return false;
  375. for (Player p : players) {
  376. if (p == null)
  377. continue;
  378. if (p.playerName.equalsIgnoreCase(playerName))
  379. return true;
  380. }
  381. return false;
  382. }
  383.  
  384. public int getPlayerID(String playerName) {
  385. for (int i = 1; i < maxPlayers; i++) {
  386. if (playersCurrentlyOn[i] != null) {
  387. if (playersCurrentlyOn[i].equalsIgnoreCase(playerName))
  388. return i;
  389. }
  390. }
  391. return -1;
  392. }
  393.  
  394. public void process() {
  395. if (messageToAll.length() != 0) {
  396. int msgTo = 0;
  397. do {
  398. if (players[msgTo] != null)
  399. players[msgTo].globalMessage = messageToAll;
  400. msgTo++;
  401. } while (msgTo < maxPlayers);
  402. messageToAll = "";
  403. }
  404. rockFallDelay--;
  405. for (client c : clients) {
  406. try {
  407. if (c == null || c.disconnected || !c.isActive) {
  408. continue;
  409. }
  410. for (int pk = 0; pk < 15; pk++) {
  411. if (!c.PacketProcess()) {
  412. break;
  413. }
  414. }
  415. c.process();
  416. c.postProcessing();
  417. c.getNextPlayerMovement();
  418. if (rockFallDelay == 4 && c.monkeyCaveArea()) {
  419. c.shakeScreen(2, 0, 10, 5);
  420. c.shakeScreen(3, 10, 20, 10);
  421. } else if (rockFallDelay == 0 && c.monkeyCaveArea() && !c.monkeyCaveSafeArea()) {
  422. c.hitDiff2 = misc.random(6);
  423. c.updateHp(c.hitDiff2, false);
  424. c.updateRequired = true;
  425. c.hitUpdateRequired2 = true;
  426. }
  427. if (rockFallDelay == 0 && c.monkeyCaveArea()) {
  428. c.shakeScreen(2, 0, 0, 0);
  429. c.shakeScreen(3, 0, 0, 0);
  430. }
  431. } catch (Exception e) {
  432. e.printStackTrace();
  433. }
  434. }
  435. for (client c : clients) {
  436. if (c == null || !c.isActive) {
  437. continue;
  438. }
  439. if (!c.initialized) {
  440. c.initialize();
  441. c.initialized = true;
  442. } else {
  443. c.UpdateAll();
  444. }
  445. }
  446. for (client c : clients) {
  447. if (c == null) {
  448. continue;
  449. }
  450. if (c.isActive && !c.disconnected) {
  451. c.clearUpdateFlags();
  452. }
  453. }
  454. for (client c : clients) {
  455. if (c == null || !c.disconnected) {
  456. continue;
  457. }
  458. for (int p = 1; p < Server.s.npcHandler.maxNPCs; p++) {
  459. if (Server.s.npcHandler.npcs[p] != null) {
  460. if (Server.s.npcHandler.npcs[p].SpawnedFor == c.playerId) {
  461. Server.s.npcHandler.npcs[p].absX = 0;
  462. Server.s.npcHandler.npcs[p].absY = 0;
  463. Server.s.npcHandler.npcs[p].CurrentHp = 0;
  464. Server.s.npcHandler.npcs[p] = null;
  465. }
  466. }
  467. }
  468. if (c.savefile && c.isActive) {
  469. SaveChar(c);
  470. SaveMoreInfo(c);
  471. c.savefile = false;
  472. }
  473. removePlayer(c.playerId);
  474. continue;
  475. }
  476. updatePlayerNames();
  477. if (rockFallDelay == 0) {
  478. rockFallDelay = 24;
  479. }
  480. }
  481.  
  482. public void updateNPC(Player plr, stream str) {
  483. if (plr != null && str != null) {
  484. updateBlock.currentOffset = 0;
  485. str.createFrameVarSizeWord(65);
  486. str.initBitAccess();
  487. str.writeBits(8, plr.npcList.size());
  488. ListIterator<NPC> npcArray = plr.npcList.listIterator();
  489. while (npcArray.hasNext()) {
  490. NPC n = npcArray.next();
  491. if (n == null || !plr.withinDistance(n) || plr.RebuildNPCList) {
  492. npcArray.remove();
  493. str.writeBits(1, 1);
  494. str.writeBits(2, 3);
  495. } else {
  496. n.updateNPCMovement(str);
  497. n.appendNPCUpdateBlock(updateBlock);
  498. }
  499. }
  500. for (NPC n : Server.s.npcHandler.npcs) {
  501. if (n == null || plr.npcList.contains(n) || !plr.withinDistance(n)) {
  502. continue;
  503. }
  504. plr.addNewNPC(n, str, updateBlock);
  505. }
  506. plr.RebuildNPCList = false;
  507. if (updateBlock.currentOffset > 0) {
  508. str.writeBits(14, 16383);
  509. str.finishBitAccess();
  510. str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0);
  511. }
  512. else
  513. str.finishBitAccess();
  514. str.endFrameVarSizeWord();
  515. }
  516. }
  517.  
  518. public stream updateBlock = new stream(new byte[20000]);
  519.  
  520. public void updatePlayer(Player plr, stream str) {
  521. if (plr != null && str != null && updateBlock != null) {
  522. updateBlock.currentOffset = 0;
  523. plr.updateThisPlayerMovement(str);
  524. boolean saveChatTextUpdate = plr.chatTextUpdateRequired;
  525. plr.chatTextUpdateRequired = false;
  526. plr.appendPlayerUpdateBlock(updateBlock);
  527. plr.chatTextUpdateRequired = saveChatTextUpdate;
  528. str.writeBits(8, plr.playerList.size());
  529. ListIterator<Player> playerArray = plr.playerList.listIterator();
  530. while (playerArray.hasNext()) {
  531. Player p2 = playerArray.next();
  532. if (p2 == null || !plr.withinDistance(p2) || p2.didTeleport) {
  533. playerArray.remove();
  534. str.writeBits(1, 1);
  535. str.writeBits(2, 3);
  536. } else {
  537. p2.updatePlayerMovement(str);
  538. p2.appendPlayerUpdateBlock(updateBlock);
  539. }
  540. }
  541. for (Player p2 : players) {
  542. if (p2 == null || !p2.isActive || plr.equals(p2) || !plr.withinDistance(p2) || plr.playerList.contains(p2)) {
  543. continue;
  544. }
  545. plr.addNewPlayer(p2, str, updateBlock);
  546. }
  547. if (updateBlock.currentOffset > 0) {
  548. str.writeBits(11, 2047);
  549. str.finishBitAccess();
  550. str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0);
  551. } else {
  552. str.finishBitAccess();
  553. }
  554. str.endFrameVarSizeWord();
  555. }
  556. }
  557.  
  558. public int lastchatid = 1;
  559.  
  560. public void removePlayer(int i) {
  561. if (clients[i] == null) {
  562. return;
  563. }
  564. if (clients[i].Privatechat != 2) { // PM System
  565. for (int i2 = 1; i2 < maxPlayers; i2++) {
  566. if (clients[i2] == null || players[i2] == null || !players[i2].isActive || players[i2].playerName == null)
  567. continue;
  568. clients[i2].pmupdate(clients[i].playerId, 0);
  569. }
  570. }
  571. clients[i].isActive = false;
  572. System.out.println(clients[i].playerName + " has logged out.");
  573. clients[i].destruct();
  574. clients[i].playerName = "";
  575. if (clients[i].TradingWith != 0) {
  576. clients[i].declineTrade();
  577. }
  578. clients[i].declineDuel();
  579. players[i] = null;
  580. clients[i] = null;
  581. }
  582.  
  583. public boolean SaveMoreInfo(Player plr) {
  584. BufferedWriter characterfile = null;
  585. try {
  586. characterfile = new BufferedWriter(new FileWriter("./Characters/MoreInfo/"+plr.playerName+".txt"));
  587. characterfile.write("[Player-Clues]", 0, 14);
  588. characterfile.newLine();
  589. characterfile.write("Clue-Delay = ", 0, 13);
  590. characterfile.write(Integer.toString(plr.clueRewardDelay), 0, Integer.toString(plr.clueRewardDelay).length());
  591. characterfile.newLine();
  592. characterfile.newLine();
  593. characterfile.write("[Player-Kills]", 0, 14);
  594. characterfile.newLine();
  595. characterfile.write("Fight-Arena-Kills = ", 0, 20);
  596. characterfile.write(Integer.toString(plr.FightArenaKills), 0, Integer.toString(plr.FightArenaKills).length());
  597. characterfile.newLine();
  598. characterfile.write("Mage-Arena-Kills = ", 0, 19);
  599. characterfile.write(Integer.toString(plr.mageArenaKills), 0, Integer.toString(plr.mageArenaKills).length());
  600. characterfile.newLine();
  601. characterfile.newLine();
  602. characterfile.write("[RecoilRing]", 0, 11);
  603. characterfile.newLine();
  604. characterfile.write("Recoil-Ring = ", 0, 14);
  605. characterfile.write(Integer.toString(plr.RecoilRing), 0, Integer.toString(plr.RecoilRing).length());
  606. characterfile.newLine();
  607. characterfile.newLine();
  608. characterfile.write("[Barrows]", 0, 9);
  609. characterfile.newLine();
  610. characterfile.write("dharok-at = ", 0, 12);
  611. characterfile.write(Integer.toString(plr.dharokSummoned), 0, Integer.toString(plr.dharokSummoned).length());
  612. characterfile.newLine();
  613. characterfile.write("ahrim-at = ", 0, 11);
  614. characterfile.write(Integer.toString(plr.ahrimSummoned), 0, Integer.toString(plr.ahrimSummoned).length());
  615. characterfile.newLine();
  616. characterfile.write("guthan-at = ", 0, 12);
  617. characterfile.write(Integer.toString(plr.guthanSummoned), 0, Integer.toString(plr.guthanSummoned).length());
  618. characterfile.newLine();
  619. characterfile.write("karil-at = ", 0, 11);
  620. characterfile.write(Integer.toString(plr.karilSummoned), 0, Integer.toString(plr.karilSummoned).length());
  621. characterfile.newLine();
  622. characterfile.write("torag-at = ", 0, 11);
  623. characterfile.write(Integer.toString(plr.toragSummoned), 0, Integer.toString(plr.toragSummoned).length());
  624. characterfile.newLine();
  625. characterfile.write("verac-at = ", 0, 11);
  626. characterfile.write(Integer.toString(plr.veracSummoned), 0, Integer.toString(plr.veracSummoned).length());
  627. characterfile.newLine();
  628. characterfile.write("hiddenB = ", 0, 10);
  629. characterfile.write(Integer.toString(plr.hiddenBarrowBro), 0, Integer.toString(plr.hiddenBarrowBro).length());
  630. characterfile.newLine();
  631. characterfile.write("barrowkc = ", 0, 11);
  632. characterfile.write(Integer.toString(plr.barrowkc), 0, Integer.toString(plr.barrowkc).length());
  633. characterfile.newLine();
  634. characterfile.write("dharok-killed = ", 0, 16);
  635. characterfile.write(Integer.toString(plr.dharokkilled), 0, Integer.toString(plr.dharokkilled).length());
  636. characterfile.newLine();
  637. characterfile.write("ahrim-killed = ", 0, 15);
  638. characterfile.write(Integer.toString(plr.ahrimkilled), 0, Integer.toString(plr.ahrimkilled).length());
  639. characterfile.newLine();
  640. characterfile.write("guthan-killed = ", 0, 16);
  641. characterfile.write(Integer.toString(plr.guthankilled), 0, Integer.toString(plr.guthankilled).length());
  642. characterfile.newLine();
  643. characterfile.write("karil-killed = ", 0, 15);
  644. characterfile.write(Integer.toString(plr.karilkilled), 0, Integer.toString(plr.karilkilled).length());
  645. characterfile.newLine();
  646. characterfile.write("torag-killed = ", 0, 15);
  647. characterfile.write(Integer.toString(plr.toragkilled), 0, Integer.toString(plr.toragkilled).length());
  648. characterfile.newLine();
  649. characterfile.write("verac-killed = ", 0, 15);
  650. characterfile.write(Integer.toString(plr.verackilled), 0, Integer.toString(plr.verackilled).length());
  651. characterfile.newLine();
  652. characterfile.newLine();
  653. characterfile.write("[Other]", 0, 7);
  654. characterfile.newLine();
  655. characterfile.write("poisonDelay = ", 0, 14);
  656. characterfile.write(Integer.toString(plr.poisonDelay), 0, Integer.toString(plr.poisonDelay).length());
  657. characterfile.newLine();
  658. characterfile.write("poisonDamage = ", 0, 15);
  659. characterfile.write(Integer.toString(plr.poisonDamage), 0, Integer.toString(plr.poisonDamage).length());
  660. characterfile.newLine();
  661. characterfile.write("specialamt = ", 0, 13);
  662. characterfile.write(Integer.toString(plr.specialAmount), 0, Integer.toString(plr.specialAmount).length());
  663. characterfile.newLine();
  664. characterfile.write("spellset = ", 0, 11);
  665. characterfile.write(Integer.toString(plr.spellSet), 0, Integer.toString(plr.spellSet).length());
  666. characterfile.newLine();
  667. //if (plr.vengenceDelay < -60)
  668. // plr.vengenceDelay = -60;
  669. //characterfile.write("vengence = ", 0, 11);
  670. //characterfile.write(Integer.toString(plr.vengenceDelay), 0, Integer.toString(plr.vengenceDelay).length());
  671. //characterfile.newLine();
  672. characterfile.write("muted = ", 0, 8);
  673. characterfile.write(Integer.toString(plr.muted), 0, Integer.toString(plr.muted).length());
  674. characterfile.newLine();
  675. characterfile.write("pc = ", 0, 5);
  676. characterfile.write(Integer.toString(plr.pcPoints), 0, Integer.toString(plr.pcPoints).length());
  677. characterfile.newLine();
  678. characterfile.write("pk = ", 0, 5);
  679. characterfile.write(Integer.toString(plr.pkPoints), 0, Integer.toString(plr.pkPoints).length());
  680. characterfile.newLine();
  681. if (plr.skullTimer < 0)
  682. plr.skullTimer = 0;
  683. characterfile.write("skull = ", 0, 8);
  684. characterfile.write(Integer.toString(plr.skullTimer), 0, Integer.toString(plr.skullTimer).length());
  685. characterfile.newLine();
  686. characterfile.write("tzwave = ", 0, 9);
  687. characterfile.write(Integer.toString(plr.tzWave), 0, Integer.toString(plr.tzWave).length());
  688. characterfile.newLine();
  689. characterfile.write("cbowShots = ", 0, 12);
  690. characterfile.write(Integer.toString(plr.crystalBowShots), 0, Integer.toString(plr.crystalBowShots).length());
  691. characterfile.newLine();
  692. characterfile.write("ancQuest = ", 0, 11);
  693. characterfile.write(Integer.toString(plr.ancQuest), 0, Integer.toString(plr.ancQuest).length());
  694. characterfile.newLine();
  695. characterfile.write("legendQuest = ", 0, 14);
  696. characterfile.write(Integer.toString(plr.legendQuest), 0, Integer.toString(plr.legendQuest).length());
  697. characterfile.newLine();
  698. characterfile.write("mageZQuest = ", 0, 13);
  699. characterfile.write(Integer.toString(plr.mageZQuest), 0, Integer.toString(plr.mageZQuest).length());
  700. characterfile.newLine();
  701. characterfile.write("slayerId = ", 0, 11);
  702. characterfile.write(Integer.toString(plr.slayerId), 0, Integer.toString(plr.slayerId).length());
  703. characterfile.newLine();
  704. characterfile.write("slayerAmt = ", 0, 12);
  705. characterfile.write(Integer.toString(plr.slayerAmt), 0, Integer.toString(plr.slayerAmt).length());
  706. characterfile.newLine();
  707. characterfile.write("runeMysteriesQuest = ", 0, 21);
  708. characterfile.write(Integer.toString(plr.runeMysteriesQuest), 0, Integer.toString(plr.runeMysteriesQuest).length());
  709. characterfile.newLine();
  710. characterfile.write("mageArenaQuest = ", 0, 17);
  711. characterfile.write(Integer.toString(plr.mageArenaQuest), 0, Integer.toString(plr.mageArenaQuest).length());
  712. characterfile.newLine();
  713. characterfile.write("lunarQuest = ", 0, 13);
  714. characterfile.write(Integer.toString(plr.lunarQuest), 0, Integer.toString(plr.lunarQuest).length());
  715. characterfile.newLine();
  716. characterfile.write("knightWavesQuest = ", 0, 19);
  717. characterfile.write(Integer.toString(plr.knightWavesQuest), 0, Integer.toString(plr.knightWavesQuest).length());
  718. characterfile.newLine();
  719. characterfile.write("skillId = ", 0, 10);
  720. characterfile.write(Integer.toString(plr.skillId), 0, Integer.toString(plr.skillId).length());
  721. characterfile.newLine();
  722. characterfile.write("lostCityQuest = ", 0, 16);
  723. characterfile.write(Integer.toString(plr.lostCityQuest), 0, Integer.toString(plr.lostCityQuest).length());
  724. characterfile.newLine();
  725. characterfile.write("forgeRing = ", 0, 12);
  726. characterfile.write(Integer.toString(plr.forgeRing), 0, Integer.toString(plr.forgeRing).length());
  727. characterfile.newLine();
  728. characterfile.write("monkeyMadnessQuest = ", 0, 21);
  729. characterfile.write(Integer.toString(plr.monkeyMadnessQuest), 0, Integer.toString(plr.monkeyMadnessQuest).length());
  730. characterfile.newLine();
  731. characterfile.write("undergroundPassQuest = ", 0, 23);
  732. characterfile.write(Integer.toString(plr.undergroundPassQuest), 0, Integer.toString(plr.undergroundPassQuest).length());
  733. characterfile.newLine();
  734. characterfile.write("bankPin = ", 0, 10);
  735. characterfile.write(Integer.toString(plr.bankPin), 0, Integer.toString(plr.bankPin).length());
  736. characterfile.newLine();
  737. characterfile.write("pure = ", 0, 7);
  738. characterfile.write(Integer.toString(plr.pure), 0, Integer.toString(plr.pure).length());
  739. characterfile.newLine();
  740. characterfile.write("tradeWait = ", 0, 12);
  741. characterfile.write(Integer.toString(plr.tradeWait), 0, Integer.toString(plr.tradeWait).length());
  742. characterfile.newLine();
  743. characterfile.newLine();
  744. characterfile.write("[Quests]", 0, 8);
  745. characterfile.newLine();
  746. characterfile.write("dtquest = ", 0, 9);
  747. characterfile.write(Integer.toString(plr.dtquest), 0, Integer.toString(plr.dtquest).length());
  748. characterfile.newLine();
  749. characterfile.write("lunarquest = ", 0, 13);
  750. characterfile.write(Integer.toString(plr.lunarquest), 0, Integer.toString(plr.lunarquest).length());
  751. characterfile.newLine();
  752. characterfile.write("mmquest = ", 0, 9);
  753. characterfile.write(Integer.toString(plr.mmquest), 0, Integer.toString(plr.mmquest).length());
  754. characterfile.newLine();
  755. characterfile.write("[EOF]", 0, 5);
  756. characterfile.newLine();
  757. characterfile.newLine();
  758. characterfile.flush();
  759. characterfile.close();
  760. } catch(IOException ioexception) {
  761. misc.println(plr.playerName+": error writing more info file.");
  762. return false;
  763. }
  764. return true;
  765. }
  766.  
  767. public boolean SaveChar(Player plr) {
  768. BufferedWriter characterfile = null;
  769. try {
  770. if (plr.disconnected) {
  771. if (plr.duelStatus > 0) {
  772. if (Server.s.playerHandler.players[plr.duelWith] != null) {
  773. client P = (client) Server.s.playerHandler.players[plr.duelWith];
  774. if (P.duelStatus == 3) {
  775. P.DuelVictory();
  776. } else {
  777. client p = (client) plr;
  778. p.declineDuel();
  779. }
  780. }
  781. }
  782. if (plr.meleeFightStatus == 1) {
  783. if (Server.s.playerHandler.players[plr.meleeFightWith] != null) {
  784. client P = (client) Server.s.playerHandler.players[plr.meleeFightWith];
  785. if (P.meleeFightStatus == 1) {
  786. P.meleeFightVictory();
  787. } else {
  788. P.RemoveAllWindows();
  789. }
  790. }
  791. }
  792. }
  793. characterfile = new BufferedWriter(new FileWriter("./Characters/"+plr.playerName+".txt"));
  794. characterfile.write("[ACCOUNT]", 0, 9);
  795. characterfile.newLine();
  796. characterfile.write("character-username = ", 0, 21);
  797. characterfile.write(plr.playerName, 0, plr.playerName.length());
  798. characterfile.newLine();
  799. characterfile.write("character-password = ", 0, 21);
  800. characterfile.write(plr.playerPass, 0, plr.playerPass.length());
  801. characterfile.newLine();
  802. characterfile.newLine();
  803. characterfile.write("[CHARACTER]", 0, 11);
  804. characterfile.newLine();
  805. characterfile.write("character-height = ", 0, 19);
  806. characterfile.write(Integer.toString(plr.heightLevel), 0, Integer.toString(plr.heightLevel).length());
  807. characterfile.newLine();
  808. characterfile.write("character-posx = ", 0, 17);
  809. characterfile.write(Integer.toString(plr.absX), 0, Integer.toString(plr.absX).length());
  810. characterfile.newLine();
  811. characterfile.write("character-posy = ", 0, 17);
  812. characterfile.write(Integer.toString(plr.absY), 0, Integer.toString(plr.absY).length());
  813. characterfile.newLine();
  814. characterfile.write("character-rights = ", 0, 19);
  815. characterfile.write(Integer.toString(plr.playerRights), 0, Integer.toString(plr.playerRights).length());
  816. characterfile.newLine();
  817. characterfile.write("character-splitchat = ", 0, 21);
  818. characterfile.write(Integer.toString(plr.splitchat), 0, Integer.toString(plr.playerRights).length());
  819. characterfile.newLine();
  820. characterfile.newLine();
  821. characterfile.write("[EQUIPMENT]", 0, 11);
  822. characterfile.newLine();
  823. for (int i = 0; i < plr.playerEquipment.length; i++) {
  824. characterfile.write("character-equip = ", 0, 18);
  825. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  826. characterfile.write(" ", 0, 1);
  827. characterfile.write(Integer.toString(plr.playerEquipment[i]), 0, Integer.toString(plr.playerEquipment[i]).length());
  828. characterfile.write(" ", 0, 1);
  829. characterfile.write(Integer.toString(plr.playerEquipmentN[i]), 0, Integer.toString(plr.playerEquipmentN[i]).length());
  830. characterfile.write(" ", 0, 1);
  831. characterfile.newLine();
  832. }
  833. characterfile.newLine();
  834. characterfile.write("[SKILLS]", 0, 8);
  835. characterfile.newLine();
  836. for (int i = 0; i < plr.playerLevel.length; i++) {
  837. characterfile.write("character-skill = ", 0, 18);
  838. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  839. characterfile.write(" ", 0, 1);
  840. characterfile.write(Integer.toString(plr.playerLevel[i]), 0, Integer.toString(plr.playerLevel[i]).length());
  841. characterfile.write(" ", 0, 1);
  842. characterfile.write(Integer.toString(plr.playerXP[i]), 0, Integer.toString(plr.playerXP[i]).length());
  843. characterfile.newLine();
  844. }
  845. characterfile.newLine();
  846. characterfile.write("[ITEMS]", 0, 7);
  847. characterfile.newLine();
  848. for (int i = 0; i < plr.playerItems.length; i++) {
  849. if (plr.playerItems[i] > 0) {
  850. characterfile.write("character-item = ", 0, 17);
  851. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  852. characterfile.write(" ", 0, 1);
  853. characterfile.write(Integer.toString(plr.playerItems[i]), 0, Integer.toString(plr.playerItems[i]).length());
  854. characterfile.write(" ", 0, 1);
  855. characterfile.write(Integer.toString(plr.playerItemsN[i]), 0, Integer.toString(plr.playerItemsN[i]).length());
  856. characterfile.newLine();
  857. }
  858. }
  859. characterfile.newLine();
  860. characterfile.write("[BANK]", 0, 6);
  861. characterfile.newLine();
  862. for (int i = 0; i < plr.bankItems.length; i++) {
  863. if (plr.bankItems[i] > 0) {
  864. characterfile.write("character-bank = ", 0, 17);
  865. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  866. characterfile.write(" ", 0, 1);
  867. characterfile.write(Integer.toString(plr.bankItems[i]), 0, Integer.toString(plr.bankItems[i]).length());
  868. characterfile.write(" ", 0, 1);
  869. characterfile.write(Integer.toString(plr.bankItemsN[i]), 0, Integer.toString(plr.bankItemsN[i]).length());
  870. characterfile.newLine();
  871. }
  872. }
  873. characterfile.newLine();
  874. characterfile.write("[FRIENDS]", 0, 9);
  875. characterfile.newLine();
  876. for (int i = 0; i < plr.friends.length; i++) {
  877. if (plr.friends[i] > 0) {
  878. characterfile.write("character-friend = ", 0, 19);
  879. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  880. characterfile.write(" ", 0, 1);
  881. characterfile.write(Long.toString(plr.friends[i]), 0, Long.toString(plr.friends[i]).length());
  882. characterfile.newLine();
  883. }
  884. }
  885. characterfile.newLine();
  886. characterfile.write("[IGNORES]", 0, 9);
  887. characterfile.newLine();
  888. for (int i = 0; i < plr.ignores.length; i++) {
  889. if (plr.ignores[i] > 0) {
  890. characterfile.write("character-ignore = ", 0, 19);
  891. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  892. characterfile.write(" ", 0, 1);
  893. characterfile.write(Long.toString(plr.ignores[i]), 0, Long.toString(plr.ignores[i]).length());
  894. characterfile.newLine();
  895. }
  896. }
  897. characterfile.newLine();
  898. characterfile.write("[LOOK]", 0, 6);
  899. characterfile.newLine();
  900. for (int i = 0; i < plr.playerLook.length; i++) {
  901. characterfile.write("character-look = ", 0, 17);
  902. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  903. characterfile.write(" ", 0, 1);
  904. characterfile.write(Integer.toString(plr.playerLook[i]), 0, Integer.toString(plr.playerLook[i]).length());
  905. characterfile.newLine();
  906. }
  907. characterfile.write("character-head = ", 0, 17);
  908. characterfile.write(Integer.toString(plr.pHead), 0, Integer.toString(plr.pHead).length());
  909. characterfile.newLine();
  910. characterfile.write("character-torso = ", 0, 18);
  911. characterfile.write(Integer.toString(plr.pTorso), 0, Integer.toString(plr.pTorso).length());
  912. characterfile.newLine();
  913. characterfile.write("character-arms = ", 0, 17);
  914. characterfile.write(Integer.toString(plr.pArms), 0, Integer.toString(plr.pArms).length());
  915. characterfile.newLine();
  916. characterfile.write("character-hands = ", 0, 18);
  917. characterfile.write(Integer.toString(plr.pHands), 0, Integer.toString(plr.pHands).length());
  918. characterfile.newLine();
  919. characterfile.write("character-legs = ", 0, 17);
  920. characterfile.write(Integer.toString(plr.pLegs), 0, Integer.toString(plr.pLegs).length());
  921. characterfile.newLine();
  922. characterfile.write("character-feet = ", 0, 17);
  923. characterfile.write(Integer.toString(plr.pFeet), 0, Integer.toString(plr.pFeet).length());
  924. characterfile.newLine();
  925. characterfile.write("character-beard = ", 0, 18);
  926. characterfile.write(Integer.toString(plr.pBeard), 0, Integer.toString(plr.pBeard).length());
  927. characterfile.newLine();
  928. characterfile.newLine();
  929. characterfile.write("[EOF]", 0, 5);
  930. characterfile.newLine();
  931. characterfile.newLine();
  932. characterfile.flush();
  933. characterfile.close();
  934. } catch(IOException ioexception) {
  935. misc.println(plr.playerName+": error writing file.");
  936. return false;
  937. }
  938. return true;
  939. }
  940.  
  941. public static final int maxPlayers = 600;
  942. //public static List<Player> players = new ArrayList<Player>();
  943. public static Player players[] = new Player[maxPlayers];
  944. public static client clients[] = new client[maxPlayers];
  945. public String messageToAll = "";
  946. public int playerCount = 0;
  947. public String playersCurrentlyOn[] = new String[maxPlayers];
  948. public boolean serverUpdater = false;
  949. public int playerRedSkull = 0;
  950. public int rockFallDelay = 24;
  951. public int maxClans = 1000;
  952. public int maxClanSlots = 99;
  953. public int[] clanIds = new int[maxClans];
  954. public String[] clanName = new String[maxClans];
  955. public String[][] clanPlayerName = new String[maxClans][maxClanSlots];
  956. public int[][] clanPlayerRights = new int[maxClans][maxClanSlots];
  957. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement