SHARE
TWEET

Untitled

a guest May 22nd, 2017 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top