Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.54 KB | None | 0 0
  1. public void load(String username, String password, int uid, boolean reconnecting) {
  2.         try {
  3.             setID(uid);
  4.             this.password = password;
  5.             this.reconnecting = reconnecting;
  6.             usernameHash = DataConversions.usernameToHash(username);
  7.             this.username = DataConversions.hashToUsername(usernameHash);
  8.             //TODO
  9.             //world.getServer().getLoginConnector().getActionSender().playerLogin(this);
  10.  
  11.             world.getDelayedEventHandler().add(new DelayedEvent(this, 60000) {
  12.                 public void run() {
  13.                     for(int statIndex = 0;statIndex < 18;statIndex++) {
  14.                         if(statIndex == 5) {
  15.                             continue;
  16.                         }
  17.                         int curStat = getCurStat(statIndex);
  18.                         int maxStat = getMaxStat(statIndex);
  19.                         if(curStat > maxStat) {
  20.                             setCurStat(statIndex, curStat - 1);
  21.                             getActionSender().sendStat(statIndex);
  22.                             checkStat(statIndex);
  23.                         }
  24.                         else if(curStat < maxStat) {
  25.                             setCurStat(statIndex, curStat + 1);
  26.                             getActionSender().sendStat(statIndex);
  27.                             checkStat(statIndex);
  28.                         }
  29.                     }
  30.                 }
  31.  
  32.  
  33.                 private void checkStat(int statIndex) {
  34.                     if(statIndex != 3 && owner.getCurStat(statIndex) == owner.getMaxStat(statIndex)) {
  35.                         owner.getActionSender().sendMessage("Your " + Formulae.statArray[statIndex] + " ability has returned to normal.");
  36.                     }
  37.                 }          
  38.             });
  39.             drainer = new DelayedEvent(this, Integer.MAX_VALUE) {
  40.                 public void run() {
  41.                     int curPrayer = getCurStat(5);
  42.                     if(getDrainRate() > 0 && curPrayer > 0) {
  43.                         incCurStat(5, -1);
  44.                         getActionSender().sendStat(5);
  45.                         if(curPrayer <= 1) {
  46.                             for(int prayerID = 0;prayerID < 14;prayerID++) { //Prayer was < 14
  47.                                 setPrayer(prayerID, false);
  48.                             }
  49.                             setDrainRate(0);
  50.                             setDelay(Integer.MAX_VALUE);
  51.                             getActionSender().sendMessage("You have run out of prayer points. Return to a church to recharge");
  52.                             getActionSender().sendPrayers();
  53.                         }
  54.                     }
  55.                     if (drainRate != 0) {
  56.                         setDelay((int) (240000 / drainRate));
  57.                     }
  58.  
  59.                 }
  60.             };
  61.             world.getDelayedEventHandler().add(drainer);
  62.             //setOwner(p.readInt()); SQL/PunBB Integration "Owner ID" Which i won't be needing.
  63.             //player.setGroupID(p.readInt()); <-- Same.
  64.             if (GameVars.usesql) {
  65.                 String wheresql = "WHERE `user` LIKE '" + this.getUsername() + "'";
  66.                 ResultSet result;
  67.                 //  result = Server.db.updateQuery("UPDATE `rscd_curstats` SET attack=" + player.getExp(0) + ", defense=" + player.getExp(1) + ", overall=" + player.getSkillTotal() + ", strength=" + player.getExp(2) + ", hits=" + player.getMaxStat(3) + ", ranged=" + player.getExp(4) + ", prayer=" + player.getExp(5) + ", magic=" + player.getExp(6) + ", cooking=" + player.getExp(7) + ", woodcut=" + player.getExp(8) + ", fletching=" + player.getExp(9) + ", fishing=" + player.getExp(10) + ", firemaking=" + player.getExp(11) + ", crafting=" + player.getExp(12) + ", smithing=" + player.getExp(13) + ", mining=" + player.getExp(14) + ", herblaw=" + player.getExp(15) + ", agility=" + player.getExp(16) + ", thieving='" + player.getExp(17) + "' WHERE user='" + player.getUsername().toLowerCase() + "'"); 
  68.  
  69.                 result = Server.db.getQuery("SELECT * FROM `rscd_user_info` " + wheresql);
  70.                 result.next();
  71.                 setSubscriptionExpires(0); // No sub atm.
  72.                
  73.                 setLogin(result.getLong("last_logged"), DataConversions.IPToLong(result.getString("log_ip")));
  74.                 //setLoggedIn(result.getInt("loggedin") == 0);
  75.  
  76.                 rank = result.getInt("rank");
  77.                 if(this.isAdmin())
  78.                     GameVars.adminsOnline++;
  79.                 else if(this.rank == 3 || this.rank == 2)
  80.                     GameVars.modsOnline++;
  81.                 setLocation(Point.location(result.getInt("cur_x"), result.getInt("cur_y")), true);
  82.                 setFatigue(result.getInt("fatigue"));
  83.                 setCombatStyle(result.getInt("combat_style"));
  84.                                    
  85.                 PlayerAppearance appearance = new PlayerAppearance(
  86.                     result.getInt("haircolour"),
  87.                     result.getInt("topcolour"),
  88.                     result.getInt("trousercolour"),
  89.                     result.getInt("skincolour"),
  90.                     result.getInt("headsprite"),
  91.                     result.getInt("bodysprite"));
  92.                
  93.                 if(!appearance.isValid()) {
  94.                     destroy(true);
  95.                     getSession().close();
  96.                 }
  97.                 setAppearance(appearance);
  98.                 setWornItems(getPlayerAppearance().getSprites());  
  99.                 setMale(result.getInt("is_male") == 1);
  100.                 long skull = result.getLong("is_skulled");
  101.                     if(skull > 0) {
  102.                         addSkull(skull);
  103.                     }
  104.                 result = Server.db.getQuery("SELECT * FROM `rscd_user_settings` " + wheresql);
  105.                 result.next();
  106.                 setPrivacySetting(0, result.getInt("block_chat") == 1);
  107.                 setPrivacySetting(1, result.getInt("block_private") == 1);
  108.                 setPrivacySetting(2, result.getInt("block_trade") == 1);
  109.                 setPrivacySetting(3, result.getInt("block_duel") == 1);
  110.                
  111.                 setGameSetting(0, result.getInt("cameraauto") == 1);
  112.                 setGameSetting(2, result.getInt("onemouse") == 1);
  113.                 setGameSetting(3, result.getInt("soundoff") == 1);
  114.                 setGameSetting(4, result.getInt("showroof") == 1);
  115.                 setGameSetting(5, result.getInt("autoscreenshot") == 1);
  116.                 setGameSetting(6, result.getInt("combatwindow") == 1);
  117.        
  118.                 result = Server.db.getQuery("SELECT * FROM `rscd_curstats` " + wheresql);
  119.                 result.next();
  120.                 for(int i = 0;i < 18;i++) {
  121.                     int exp = result.getInt(statArray[i]);             
  122.                     setExp(i, exp);
  123.                     setMaxStat(i, Formulae.experienceToLevel(exp));
  124.                 }
  125.                 setCombatLevel(Formulae.getCombatlevel(getMaxStats()));
  126.                 result = Server.db.getQuery("SELECT * FROM `rscd_curlevel` " + wheresql);
  127.                 result.next();
  128.                 for(int i = 0;i < 18;i++) {        
  129.                     setCurStat(i, result.getInt(statArray[i]));
  130.                 }
  131.                 result = Server.db.getQuery("SELECT * FROM `rscd_user_friends` " + wheresql);
  132.                 result.next();         
  133.                 while(result.next()) {
  134.                     this.getFriendList().add(result.getString("friend_count"));
  135.                 }
  136.                 /// Inventory
  137.                 result = Server.db.getQuery("SELECT * FROM `rscd_user_inv` " + wheresql + " ORDER BY `slot` ASC");
  138.                 Inventory inventory = new Inventory(this);
  139.                 while (result.next()) {
  140.                     int id = result.getInt("id");
  141.                     int amount = result.getInt("amount");
  142.                     int wear = result.getInt("wielded");
  143.                     if(id != 7000) {
  144.                         InvItem item = new InvItem(id, amount);
  145.                         if(wear == 1 && item.isWieldable()) {
  146.                             item.setWield(true);
  147.                             updateWornItems(item.getWieldableDef().getWieldPos(), item.getWieldableDef().getSprite());
  148.                         }
  149.                         inventory.add(item);
  150.  
  151.                     }
  152.                 }
  153.                 setInventory(inventory);
  154.                 ///bank
  155.                 result = Server.db.getQuery("SELECT * FROM `rscd_user_bank` " + wheresql + " ORDER BY `slot` ASC");
  156.                 //result.next();
  157.                 Bank bank = new Bank();
  158.                 while (result.next()) {
  159.                     int id = result.getInt("id");
  160.                     int amount = result.getInt("amount");
  161.                     //System.out.println(id +"," +amount);
  162.                     if(id != 7000)
  163.                         bank.add(new InvItem(id, amount));
  164.                 }
  165.                 setBank(bank);
  166.            
  167.                 //Friend       
  168.                 result = Server.db.getQuery("SELECT * FROM `rscd_user_friends` " + wheresql);
  169.                 while(result.next()) {
  170.                     this.getFriendList().add(result.getString("friend_count"));
  171.                 }
  172.                 result = Server.db.getQuery("SELECT * FROM `rscd_quests` WHERE `user`='" + this.getUsername() + "'");
  173.                 while (result.next()) {
  174.                     this.setQuestStage(result.getInt("id"), result.getInt("stage"));
  175.                 }
  176.  
  177.                 if(!this.bad_login) {
  178.                     Server.db.updateQuery("UPDATE `rscd_user_info` SET online=" +1+ ", log_ip='" +this.getLastIP()+"' WHERE user='" + this.getUsername() + "'");
  179.                 }
  180.                
  181.                 world.registerPlayer(this);
  182.  
  183.                 updateViewedPlayers();
  184.                 updateViewedObjects();
  185.  
  186.                 org.rscdaemon.server.packetbuilder.client.MiscPacketBuilder sender = getActionSender();
  187.                 sender.sendServerInfo();
  188.                 sender.sendFatigue();
  189.                 sender.sendWorldInfo();
  190.                 sender.sendInventory();
  191.                 sender.sendEquipmentStats();
  192.                 sender.sendStats();
  193.                 sender.sendPrivacySettings();
  194.                 sender.sendGameSettings();
  195.                 sender.sendFriendList();
  196.                 sender.sendIgnoreList();
  197.                 sender.sendCombatStyle();
  198.                 sender.sendQuestInfo();
  199.  
  200.                 for(Player p : world.getPlayers()) {
  201.                     if(p.isFriendsWith(this.getUsername())) {
  202.                         p.getActionSender().sendFriendUpdate(this.getUsernameHash(), org.rscdaemon.server.util.Config.SERVER_NUM);
  203.                     }
  204.                 }
  205.                 for(String player : getFriendList()) {
  206.                     Player p = world.getPlayer(DataConversions.usernameToHash(player));
  207.                     if(p != null) {
  208.                         sender.sendFriendUpdate(p.getUsernameHash(), Config.SERVER_NUM);
  209.                     } else {
  210.                         sender.sendFriendUpdate(DataConversions.usernameToHash(player), 0);
  211.                     }
  212.                 }
  213.  
  214.                 sender.sendMessage("    "); // ROFL at this, its to stop the stupid friends list saying xx logged out when someone logs in, ill fix it up later
  215.                 sender.sendMessage("    ");
  216.                 sender.sendMessage("@yel@There are currently: @whi@" + (GameVars.usersOnline + 1) + " @yel@playing Elite Source !" + " Peak is: @whi@" + (GameVars.userPeak + 1));
  217.                 sender.sendMessage("    ");
  218.                 int timeTillShutdown = world.getServer().timeTillShutdown();
  219.                 if(timeTillShutdown > -1) {
  220.                     sender.startShutdown((int)(timeTillShutdown / 1000));
  221.                 }
  222.  
  223.                 if(getLastLogin() == 0) {
  224.                     setChangingAppearance(true);
  225.                     sender.sendAppearanceScreen();
  226.                     Server.db.updateQuery("UPDATE `rscd_user_info` SET `reg_ip`='" + this.getCurrentIP() + "' WHERE `user`='" + this.getUsername() + "'");
  227.                 }
  228.                 setLastLogin(System.currentTimeMillis());
  229.                 sender.sendLoginBox();
  230.  
  231.                 setLoggedIn(true);
  232.                 setBusy(false);
  233.                 RSCPacketBuilder pb = new RSCPacketBuilder();
  234.                 pb.setBare(true);
  235.                 pb.addByte((byte)0);
  236.                 getSession().write(pb.toPacket());
  237.             }
  238.         }
  239.         catch (Exception e) {
  240.             e.printStackTrace();
  241.             Logger.print(e.toString(), 1);
  242.         }
  243.  
  244.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement