Advertisement
Guest User

Untitled

a guest
May 21st, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 41.98 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.             try {
  437.                 if (c == null || !c.isActive) {
  438.                     continue;
  439.                 }
  440.                 if (!c.initialized) {
  441.                     c.initialize();
  442.                     c.initialized = true;
  443.                 } else {
  444.                     c.UpdateAll();
  445.                 }
  446.             } catch (Exception e) {
  447.                 System.out.println("Major server exception, mad turnip");
  448.                 e.printStackTrace();
  449.             }
  450.         }
  451.         for (client c : clients) {
  452.             try {
  453.                 if (c == null) {
  454.                     continue;
  455.                 }
  456.                 if (c.isActive && !c.disconnected) {
  457.                     c.clearUpdateFlags();
  458.                 }
  459.             } catch (Exception e) {
  460.                 System.out.println("Major server exception, mad turnip");
  461.                 e.printStackTrace();
  462.             }
  463.         }
  464.         for (client c : clients) {
  465.             try {
  466.                 if (c == null || !c.disconnected) {
  467.                     continue;
  468.                 }
  469.                 for (int p = 1; p < Server.s.npcHandler.maxNPCs; p++) {
  470.                     if (Server.s.npcHandler.npcs[p] != null) {
  471.                         if (Server.s.npcHandler.npcs[p].SpawnedFor == c.playerId) {
  472.                             Server.s.npcHandler.npcs[p].absX = 0;
  473.                             Server.s.npcHandler.npcs[p].absY = 0;
  474.                             Server.s.npcHandler.npcs[p].CurrentHp = 0;
  475.                             Server.s.npcHandler.npcs[p] = null;
  476.                         }
  477.                     }
  478.                 }
  479.                 if (c.savefile && c.isActive) {
  480.                     SaveChar(c);
  481.                     SaveMoreInfo(c);
  482.                     c.savefile = false;
  483.                 }
  484.                 removePlayer(c.playerId);
  485.             } catch (Exception e) {
  486.                 System.out.println("Major server exception, mad turnip");
  487.                 e.printStackTrace();
  488.             }
  489.             continue;
  490.         }
  491.         updatePlayerNames();
  492.         if (rockFallDelay == 0) {
  493.             rockFallDelay = 24;
  494.         }
  495.     }
  496.  
  497.     public void updateNPC(Player plr, stream str) {
  498.         if (plr != null && str != null) {
  499.             updateBlock.currentOffset = 0;
  500.             str.createFrameVarSizeWord(65);
  501.             str.initBitAccess();
  502.             str.writeBits(8, plr.npcList.size());
  503.             ListIterator<NPC> npcArray = plr.npcList.listIterator();
  504.             while (npcArray.hasNext()) {
  505.                 NPC n = npcArray.next();
  506.                 if (n == null || !plr.withinDistance(n) || plr.RebuildNPCList) {
  507.                     npcArray.remove();
  508.                     str.writeBits(1, 1);
  509.                     str.writeBits(2, 3);
  510.                 } else {
  511.                     n.updateNPCMovement(str);
  512.                     n.appendNPCUpdateBlock(updateBlock);
  513.                 }
  514.             }
  515.             for (NPC n : Server.s.npcHandler.npcs) {
  516.                 if (n == null || plr.npcList.contains(n)  || !plr.withinDistance(n)) {
  517.                     continue;
  518.                 }
  519.                 plr.addNewNPC(n, str, updateBlock);
  520.             }
  521.             plr.RebuildNPCList = false;
  522.             if (updateBlock.currentOffset > 0) {
  523.                 str.writeBits(14, 16383);
  524.                 str.finishBitAccess();
  525.                 str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0);
  526.             }
  527.             else
  528.                 str.finishBitAccess();
  529.             str.endFrameVarSizeWord();
  530.         }
  531.     }
  532.  
  533.     public stream updateBlock = new stream(new byte[20000]);
  534.  
  535.     public void updatePlayer(Player plr, stream str) {
  536.         if (plr != null && str != null && updateBlock != null) {
  537.             updateBlock.currentOffset = 0;
  538.             plr.updateThisPlayerMovement(str);
  539.             boolean saveChatTextUpdate = plr.chatTextUpdateRequired;
  540.             plr.chatTextUpdateRequired = false;
  541.             plr.appendPlayerUpdateBlock(updateBlock);
  542.             plr.chatTextUpdateRequired = saveChatTextUpdate;
  543.             str.writeBits(8, plr.playerList.size());
  544.             ListIterator<Player> playerArray = plr.playerList.listIterator();
  545.             while (playerArray.hasNext()) {
  546.                 Player p2 = playerArray.next();
  547.                 if (p2 == null || !plr.withinDistance(p2) || p2.didTeleport) {
  548.                     playerArray.remove();
  549.                     str.writeBits(1, 1);
  550.                     str.writeBits(2, 3);
  551.                 } else {
  552.                     p2.updatePlayerMovement(str);
  553.                     p2.appendPlayerUpdateBlock(updateBlock);
  554.                 }
  555.             }
  556.             for (Player p2 : players) {
  557.                 if (p2 == null || !p2.isActive || plr.equals(p2) || !plr.withinDistance(p2) || plr.playerList.contains(p2)) {
  558.                     continue;
  559.                 }
  560.                 plr.addNewPlayer(p2, str, updateBlock);
  561.             }
  562.             if (updateBlock.currentOffset > 0) {
  563.                 str.writeBits(11, 2047);
  564.                 str.finishBitAccess();
  565.                 str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0);
  566.             } else {
  567.                 str.finishBitAccess();
  568.             }
  569.             str.endFrameVarSizeWord();
  570.         }
  571.     }
  572.  
  573.     public int lastchatid = 1;
  574.  
  575.     public void removePlayer(int i) {
  576.         if (clients[i] == null) {
  577.             return;
  578.         }
  579.         if (clients[i].Privatechat != 2) { // PM System
  580.             for (int i2 = 1; i2 < maxPlayers; i2++) {
  581.                 if (clients[i2] == null || players[i2] == null || !players[i2].isActive || players[i2].playerName == null)
  582.                     continue;
  583.                 clients[i2].pmupdate(clients[i].playerId, 0);
  584.             }
  585.         }
  586.         clients[i].isActive = false;
  587.         System.out.println(clients[i].playerName + " has logged out.");
  588.         clients[i].destruct();
  589.         clients[i].playerName = "";
  590.         if (clients[i].TradingWith != 0) {
  591.             clients[i].declineTrade();
  592.         }
  593.         clients[i].declineDuel();
  594.         players[i] = null;
  595.         clients[i] = null;
  596.     }
  597.  
  598.     public boolean SaveMoreInfo(Player plr) {
  599.         BufferedWriter characterfile = null;
  600.         try {
  601.             characterfile = new BufferedWriter(new FileWriter("./Characters/MoreInfo/"+plr.playerName+".txt"));
  602.             characterfile.write("[Player-Clues]", 0, 14);
  603.             characterfile.newLine();
  604.             characterfile.write("Clue-Delay = ", 0, 13);
  605.             characterfile.write(Integer.toString(plr.clueRewardDelay), 0, Integer.toString(plr.clueRewardDelay).length());
  606.             characterfile.newLine();
  607.             characterfile.newLine();
  608.             characterfile.write("[Player-Kills]", 0, 14);
  609.             characterfile.newLine();
  610.             characterfile.write("Fight-Arena-Kills = ", 0, 20);
  611.             characterfile.write(Integer.toString(plr.FightArenaKills), 0, Integer.toString(plr.FightArenaKills).length());
  612.             characterfile.newLine();
  613.             characterfile.write("Mage-Arena-Kills = ", 0, 19);
  614.             characterfile.write(Integer.toString(plr.mageArenaKills), 0, Integer.toString(plr.mageArenaKills).length());
  615.             characterfile.newLine();
  616.             characterfile.newLine();
  617.             characterfile.write("[RecoilRing]", 0, 11);
  618.             characterfile.newLine();
  619.             characterfile.write("Recoil-Ring = ", 0, 14);
  620.             characterfile.write(Integer.toString(plr.RecoilRing), 0, Integer.toString(plr.RecoilRing).length());
  621.             characterfile.newLine();
  622.             characterfile.newLine();
  623.             characterfile.write("[Barrows]", 0, 9);
  624.             characterfile.newLine();
  625.             characterfile.write("dharok-at = ", 0, 12);
  626.             characterfile.write(Integer.toString(plr.dharokSummoned), 0, Integer.toString(plr.dharokSummoned).length());
  627.             characterfile.newLine();
  628.             characterfile.write("ahrim-at = ", 0, 11);
  629.             characterfile.write(Integer.toString(plr.ahrimSummoned), 0, Integer.toString(plr.ahrimSummoned).length());
  630.             characterfile.newLine();
  631.             characterfile.write("guthan-at = ", 0, 12);
  632.             characterfile.write(Integer.toString(plr.guthanSummoned), 0, Integer.toString(plr.guthanSummoned).length());
  633.             characterfile.newLine();
  634.             characterfile.write("karil-at = ", 0, 11);
  635.             characterfile.write(Integer.toString(plr.karilSummoned), 0, Integer.toString(plr.karilSummoned).length());
  636.             characterfile.newLine();
  637.             characterfile.write("torag-at = ", 0, 11);
  638.             characterfile.write(Integer.toString(plr.toragSummoned), 0, Integer.toString(plr.toragSummoned).length());
  639.             characterfile.newLine();
  640.             characterfile.write("verac-at = ", 0, 11);
  641.             characterfile.write(Integer.toString(plr.veracSummoned), 0, Integer.toString(plr.veracSummoned).length());
  642.             characterfile.newLine();
  643.             characterfile.write("hiddenB = ", 0, 10);
  644.             characterfile.write(Integer.toString(plr.hiddenBarrowBro), 0, Integer.toString(plr.hiddenBarrowBro).length());
  645.             characterfile.newLine();
  646.             characterfile.write("barrowkc = ", 0, 11);
  647.             characterfile.write(Integer.toString(plr.barrowkc), 0, Integer.toString(plr.barrowkc).length());
  648.         characterfile.newLine();
  649.             characterfile.write("dharok-killed = ", 0, 16);
  650.             characterfile.write(Integer.toString(plr.dharokkilled), 0, Integer.toString(plr.dharokkilled).length());
  651.             characterfile.newLine();
  652.             characterfile.write("ahrim-killed = ", 0, 15);
  653.             characterfile.write(Integer.toString(plr.ahrimkilled), 0, Integer.toString(plr.ahrimkilled).length());
  654.             characterfile.newLine();
  655.             characterfile.write("guthan-killed = ", 0, 16);
  656.             characterfile.write(Integer.toString(plr.guthankilled), 0, Integer.toString(plr.guthankilled).length());
  657.             characterfile.newLine();
  658.             characterfile.write("karil-killed = ", 0, 15);
  659.             characterfile.write(Integer.toString(plr.karilkilled), 0, Integer.toString(plr.karilkilled).length());
  660.             characterfile.newLine();
  661.             characterfile.write("torag-killed = ", 0, 15);
  662.             characterfile.write(Integer.toString(plr.toragkilled), 0, Integer.toString(plr.toragkilled).length());
  663.             characterfile.newLine();
  664.             characterfile.write("verac-killed = ", 0, 15);
  665.             characterfile.write(Integer.toString(plr.verackilled), 0, Integer.toString(plr.verackilled).length());
  666.             characterfile.newLine();
  667.             characterfile.newLine();
  668.             characterfile.write("[Other]", 0, 7);
  669.             characterfile.newLine();
  670.             characterfile.write("poisonDelay = ", 0, 14);
  671.             characterfile.write(Integer.toString(plr.poisonDelay), 0, Integer.toString(plr.poisonDelay).length());
  672.             characterfile.newLine();
  673.             characterfile.write("poisonDamage = ", 0, 15);
  674.             characterfile.write(Integer.toString(plr.poisonDamage), 0, Integer.toString(plr.poisonDamage).length());
  675.             characterfile.newLine();
  676.             characterfile.write("specialamt = ", 0, 13);
  677.             characterfile.write(Integer.toString(plr.specialAmount), 0, Integer.toString(plr.specialAmount).length());
  678.             characterfile.newLine();
  679.             characterfile.write("spellset = ", 0, 11);
  680.             characterfile.write(Integer.toString(plr.spellSet), 0, Integer.toString(plr.spellSet).length());
  681.             characterfile.newLine();
  682.             //if (plr.vengenceDelay < -60)
  683.         //    plr.vengenceDelay = -60;
  684.             //characterfile.write("vengence = ", 0, 11);
  685.             //characterfile.write(Integer.toString(plr.vengenceDelay), 0, Integer.toString(plr.vengenceDelay).length());
  686.             //characterfile.newLine();
  687.             characterfile.write("muted = ", 0, 8);
  688.             characterfile.write(Integer.toString(plr.muted), 0, Integer.toString(plr.muted).length());
  689.             characterfile.newLine();
  690.             characterfile.write("pc = ", 0, 5);
  691.             characterfile.write(Integer.toString(plr.pcPoints), 0, Integer.toString(plr.pcPoints).length());
  692.             characterfile.newLine();
  693.             characterfile.write("pk = ", 0, 5);
  694.             characterfile.write(Integer.toString(plr.pkPoints), 0, Integer.toString(plr.pkPoints).length());
  695.             characterfile.newLine();
  696.             if (plr.skullTimer < 0)
  697.                 plr.skullTimer = 0;
  698.             characterfile.write("skull = ", 0, 8);
  699.             characterfile.write(Integer.toString(plr.skullTimer), 0, Integer.toString(plr.skullTimer).length());
  700.             characterfile.newLine();
  701.             characterfile.write("tzwave = ", 0, 9);
  702.             characterfile.write(Integer.toString(plr.tzWave), 0, Integer.toString(plr.tzWave).length());
  703.             characterfile.newLine();
  704.             characterfile.write("cbowShots = ", 0, 12);
  705.             characterfile.write(Integer.toString(plr.crystalBowShots), 0, Integer.toString(plr.crystalBowShots).length());
  706.             characterfile.newLine();
  707.             characterfile.write("ancQuest = ", 0, 11);
  708.             characterfile.write(Integer.toString(plr.ancQuest), 0, Integer.toString(plr.ancQuest).length());
  709.             characterfile.newLine();
  710.             characterfile.write("legendQuest = ", 0, 14);
  711.             characterfile.write(Integer.toString(plr.legendQuest), 0, Integer.toString(plr.legendQuest).length());
  712.             characterfile.newLine();
  713.             characterfile.write("mageZQuest = ", 0, 13);
  714.             characterfile.write(Integer.toString(plr.mageZQuest), 0, Integer.toString(plr.mageZQuest).length());
  715.             characterfile.newLine();
  716.             characterfile.write("slayerId = ", 0, 11);
  717.             characterfile.write(Integer.toString(plr.slayerId), 0, Integer.toString(plr.slayerId).length());
  718.             characterfile.newLine();
  719.             characterfile.write("slayerAmt = ", 0, 12);
  720.             characterfile.write(Integer.toString(plr.slayerAmt), 0, Integer.toString(plr.slayerAmt).length());
  721.             characterfile.newLine();
  722.             characterfile.write("runeMysteriesQuest = ", 0, 21);
  723.             characterfile.write(Integer.toString(plr.runeMysteriesQuest), 0, Integer.toString(plr.runeMysteriesQuest).length());
  724.             characterfile.newLine();
  725.             characterfile.write("mageArenaQuest = ", 0, 17);
  726.             characterfile.write(Integer.toString(plr.mageArenaQuest), 0, Integer.toString(plr.mageArenaQuest).length());
  727.             characterfile.newLine();
  728.             characterfile.write("lunarQuest = ", 0, 13);
  729.             characterfile.write(Integer.toString(plr.lunarQuest), 0, Integer.toString(plr.lunarQuest).length());
  730.             characterfile.newLine();
  731.             characterfile.write("knightWavesQuest = ", 0, 19);
  732.             characterfile.write(Integer.toString(plr.knightWavesQuest), 0, Integer.toString(plr.knightWavesQuest).length());
  733.             characterfile.newLine();
  734.             characterfile.write("skillId = ", 0, 10);
  735.             characterfile.write(Integer.toString(plr.skillId), 0, Integer.toString(plr.skillId).length());
  736.             characterfile.newLine();
  737.             characterfile.write("lostCityQuest = ", 0, 16);
  738.             characterfile.write(Integer.toString(plr.lostCityQuest), 0, Integer.toString(plr.lostCityQuest).length());
  739.             characterfile.newLine();
  740.             characterfile.write("forgeRing = ", 0, 12);
  741.             characterfile.write(Integer.toString(plr.forgeRing), 0, Integer.toString(plr.forgeRing).length());
  742.             characterfile.newLine();
  743.             characterfile.write("monkeyMadnessQuest = ", 0, 21);
  744.             characterfile.write(Integer.toString(plr.monkeyMadnessQuest), 0, Integer.toString(plr.monkeyMadnessQuest).length());
  745.             characterfile.newLine();
  746.             characterfile.write("undergroundPassQuest = ", 0, 23);
  747.             characterfile.write(Integer.toString(plr.undergroundPassQuest), 0, Integer.toString(plr.undergroundPassQuest).length());
  748.             characterfile.newLine();
  749.             characterfile.write("bankPin = ", 0, 10);
  750.             characterfile.write(Integer.toString(plr.bankPin), 0, Integer.toString(plr.bankPin).length());
  751.             characterfile.newLine();
  752.             characterfile.write("pure = ", 0, 7);
  753.             characterfile.write(Integer.toString(plr.pure), 0, Integer.toString(plr.pure).length());
  754.             characterfile.newLine();
  755.             characterfile.write("tradeWait = ", 0, 12);
  756.             characterfile.write(Integer.toString(plr.tradeWait), 0, Integer.toString(plr.tradeWait).length());
  757.             characterfile.newLine();
  758.             characterfile.newLine();
  759.             characterfile.write("[Quests]", 0, 8);
  760.             characterfile.newLine();
  761.             characterfile.write("dtquest = ", 0, 9);
  762.             characterfile.write(Integer.toString(plr.dtquest), 0, Integer.toString(plr.dtquest).length());
  763.             characterfile.newLine();
  764.             characterfile.write("lunarquest = ", 0, 13);
  765.             characterfile.write(Integer.toString(plr.lunarquest), 0, Integer.toString(plr.lunarquest).length());
  766.             characterfile.newLine();
  767.             characterfile.write("mmquest = ", 0, 9);
  768.             characterfile.write(Integer.toString(plr.mmquest), 0, Integer.toString(plr.mmquest).length());
  769.             characterfile.newLine();
  770.             characterfile.write("[EOF]", 0, 5);
  771.             characterfile.newLine();
  772.             characterfile.newLine();
  773.             characterfile.flush();
  774.             characterfile.close();
  775.         } catch(IOException ioexception) {
  776.             misc.println(plr.playerName+": error writing more info file.");
  777.             return false;
  778.         }
  779.         return true;
  780.     }
  781.  
  782.     public boolean SaveChar(Player plr) {
  783.         BufferedWriter characterfile = null;
  784.         try {
  785.             if (plr.disconnected) {
  786.                 if (plr.duelStatus > 0) {
  787.                     if (Server.s.playerHandler.players[plr.duelWith] != null) {
  788.                         client P = (client) Server.s.playerHandler.players[plr.duelWith];
  789.                         if (P.duelStatus == 3) {
  790.                             P.DuelVictory();
  791.                         } else {
  792.                             client p = (client) plr;
  793.                             p.declineDuel();
  794.                         }
  795.                     }
  796.                 }
  797.                 if (plr.meleeFightStatus == 1) {
  798.                     if (Server.s.playerHandler.players[plr.meleeFightWith] != null) {
  799.                         client P = (client) Server.s.playerHandler.players[plr.meleeFightWith];
  800.                         if (P.meleeFightStatus == 1) {
  801.                             P.meleeFightVictory();
  802.                         } else {
  803.                             P.RemoveAllWindows();
  804.                         }
  805.                     }
  806.                 }
  807.             }
  808.             characterfile = new BufferedWriter(new FileWriter("./Characters/"+plr.playerName+".txt"));
  809.             characterfile.write("[ACCOUNT]", 0, 9);
  810.             characterfile.newLine();
  811.             characterfile.write("character-username = ", 0, 21);
  812.             characterfile.write(plr.playerName, 0, plr.playerName.length());
  813.             characterfile.newLine();
  814.             characterfile.write("character-password = ", 0, 21);
  815.             characterfile.write(plr.playerPass, 0, plr.playerPass.length());
  816.             characterfile.newLine();
  817.             characterfile.newLine();
  818.             characterfile.write("[CHARACTER]", 0, 11);
  819.             characterfile.newLine();
  820.             characterfile.write("character-height = ", 0, 19);
  821.             characterfile.write(Integer.toString(plr.heightLevel), 0, Integer.toString(plr.heightLevel).length());
  822.             characterfile.newLine();
  823.             characterfile.write("character-posx = ", 0, 17);
  824.             characterfile.write(Integer.toString(plr.absX), 0, Integer.toString(plr.absX).length());
  825.             characterfile.newLine();
  826.             characterfile.write("character-posy = ", 0, 17);
  827.             characterfile.write(Integer.toString(plr.absY), 0, Integer.toString(plr.absY).length());
  828.             characterfile.newLine();
  829.             characterfile.write("character-rights = ", 0, 19);
  830.             characterfile.write(Integer.toString(plr.playerRights), 0, Integer.toString(plr.playerRights).length());
  831.             characterfile.newLine();
  832.             characterfile.write("character-splitchat = ", 0, 21);
  833.             characterfile.write(Integer.toString(plr.splitchat), 0, Integer.toString(plr.playerRights).length());
  834.             characterfile.newLine();
  835.             characterfile.newLine();
  836.             characterfile.write("[EQUIPMENT]", 0, 11);
  837.             characterfile.newLine();
  838.             for (int i = 0; i < plr.playerEquipment.length; i++) {
  839.                 characterfile.write("character-equip = ", 0, 18);
  840.                 characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  841.                 characterfile.write("    ", 0, 1);
  842.                 characterfile.write(Integer.toString(plr.playerEquipment[i]), 0, Integer.toString(plr.playerEquipment[i]).length());
  843.                 characterfile.write("    ", 0, 1);
  844.                 characterfile.write(Integer.toString(plr.playerEquipmentN[i]), 0, Integer.toString(plr.playerEquipmentN[i]).length());
  845.                 characterfile.write("    ", 0, 1);
  846.                 characterfile.newLine();
  847.             }
  848.             characterfile.newLine();
  849.             characterfile.write("[SKILLS]", 0, 8);
  850.             characterfile.newLine();
  851.             for (int i = 0; i < plr.playerLevel.length; i++) {
  852.                 characterfile.write("character-skill = ", 0, 18);
  853.                 characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  854.                 characterfile.write("    ", 0, 1);
  855.                 characterfile.write(Integer.toString(plr.playerLevel[i]), 0, Integer.toString(plr.playerLevel[i]).length());
  856.                 characterfile.write("    ", 0, 1);
  857.                 characterfile.write(Integer.toString(plr.playerXP[i]), 0, Integer.toString(plr.playerXP[i]).length());
  858.                 characterfile.newLine();
  859.             }
  860.             characterfile.newLine();
  861.             characterfile.write("[ITEMS]", 0, 7);
  862.             characterfile.newLine();
  863.             for (int i = 0; i < plr.playerItems.length; i++) {
  864.                 if (plr.playerItems[i] > 0) {
  865.                     characterfile.write("character-item = ", 0, 17);
  866.                     characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  867.                     characterfile.write("    ", 0, 1);
  868.                     characterfile.write(Integer.toString(plr.playerItems[i]), 0, Integer.toString(plr.playerItems[i]).length());
  869.                     characterfile.write("    ", 0, 1);
  870.                     characterfile.write(Integer.toString(plr.playerItemsN[i]), 0, Integer.toString(plr.playerItemsN[i]).length());
  871.                     characterfile.newLine();
  872.                 }
  873.             }
  874.             characterfile.newLine();
  875.             characterfile.write("[BANK]", 0, 6);
  876.             characterfile.newLine();
  877.             for (int i = 0; i < plr.bankItems.length; i++) {
  878.                 if (plr.bankItems[i] > 0) {
  879.                     characterfile.write("character-bank = ", 0, 17);
  880.                     characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  881.                     characterfile.write("    ", 0, 1);
  882.                     characterfile.write(Integer.toString(plr.bankItems[i]), 0, Integer.toString(plr.bankItems[i]).length());
  883.                     characterfile.write("    ", 0, 1);
  884.                     characterfile.write(Integer.toString(plr.bankItemsN[i]), 0, Integer.toString(plr.bankItemsN[i]).length());
  885.                     characterfile.newLine();
  886.                 }
  887.             }
  888.             characterfile.newLine();
  889.             characterfile.write("[FRIENDS]", 0, 9);
  890.             characterfile.newLine();
  891.             for (int i = 0; i < plr.friends.length; i++) {
  892.                 if (plr.friends[i] > 0) {
  893.                     characterfile.write("character-friend = ", 0, 19);
  894.                     characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  895.                     characterfile.write("    ", 0, 1);
  896.                     characterfile.write(Long.toString(plr.friends[i]), 0, Long.toString(plr.friends[i]).length());
  897.                     characterfile.newLine();
  898.                 }
  899.             }
  900.             characterfile.newLine();
  901.             characterfile.write("[IGNORES]", 0, 9);
  902.             characterfile.newLine();
  903.             for (int i = 0; i < plr.ignores.length; i++) {
  904.                 if (plr.ignores[i] > 0) {
  905.                     characterfile.write("character-ignore = ", 0, 19);
  906.                     characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  907.                     characterfile.write("    ", 0, 1);
  908.                     characterfile.write(Long.toString(plr.ignores[i]), 0, Long.toString(plr.ignores[i]).length());
  909.                     characterfile.newLine();
  910.                 }
  911.             }
  912.             characterfile.newLine();
  913.             characterfile.write("[LOOK]", 0, 6);
  914.             characterfile.newLine();
  915.             for (int i = 0; i < plr.playerLook.length; i++) {
  916.                 characterfile.write("character-look = ", 0, 17);
  917.                 characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  918.                 characterfile.write("    ", 0, 1);
  919.                 characterfile.write(Integer.toString(plr.playerLook[i]), 0, Integer.toString(plr.playerLook[i]).length());
  920.                 characterfile.newLine();
  921.             }
  922.             characterfile.write("character-head = ", 0, 17);
  923.             characterfile.write(Integer.toString(plr.pHead), 0, Integer.toString(plr.pHead).length());
  924.             characterfile.newLine();
  925.             characterfile.write("character-torso = ", 0, 18);
  926.             characterfile.write(Integer.toString(plr.pTorso), 0, Integer.toString(plr.pTorso).length());
  927.             characterfile.newLine();
  928.             characterfile.write("character-arms = ", 0, 17);
  929.             characterfile.write(Integer.toString(plr.pArms), 0, Integer.toString(plr.pArms).length());
  930.             characterfile.newLine();
  931.             characterfile.write("character-hands = ", 0, 18);
  932.             characterfile.write(Integer.toString(plr.pHands), 0, Integer.toString(plr.pHands).length());
  933.             characterfile.newLine();
  934.             characterfile.write("character-legs = ", 0, 17);
  935.             characterfile.write(Integer.toString(plr.pLegs), 0, Integer.toString(plr.pLegs).length());
  936.             characterfile.newLine();
  937.             characterfile.write("character-feet = ", 0, 17);
  938.             characterfile.write(Integer.toString(plr.pFeet), 0, Integer.toString(plr.pFeet).length());
  939.             characterfile.newLine();
  940.             characterfile.write("character-beard = ", 0, 18);
  941.             characterfile.write(Integer.toString(plr.pBeard), 0, Integer.toString(plr.pBeard).length());
  942.             characterfile.newLine();
  943.             characterfile.newLine();
  944.             characterfile.write("[EOF]", 0, 5);
  945.             characterfile.newLine();
  946.             characterfile.newLine();
  947.             characterfile.flush();
  948.             characterfile.close();
  949.         } catch(IOException ioexception) {
  950.             misc.println(plr.playerName+": error writing file.");
  951.             return false;
  952.         }
  953.         return true;
  954.     }
  955.  
  956.     public static final int maxPlayers = 600;
  957.     //public static List<Player> players = new ArrayList<Player>();
  958.     public static Player players[] = new Player[maxPlayers];
  959.     public static client clients[] = new client[maxPlayers];
  960.     public String messageToAll = "";
  961.     public int playerCount = 0;
  962.     public String playersCurrentlyOn[] = new String[maxPlayers];
  963.     public boolean serverUpdater = false;
  964.     public int playerRedSkull = 0;
  965.     public int rockFallDelay = 24;
  966.     public int maxClans = 1000;
  967.     public int maxClanSlots = 99;
  968.     public int[] clanIds = new int[maxClans];
  969.     public String[] clanName = new String[maxClans];
  970.     public String[][] clanPlayerName = new String[maxClans][maxClanSlots];
  971.     public int[][] clanPlayerRights = new int[maxClans][maxClanSlots];
  972. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement