Guest User

Untitled

a guest
Jul 30th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. protected final void login(String user, String pass, boolean reconnecting, String [] userz) {
  2. if (this.socketTimeout > 0) {
  3. loginScreenPrint("Please wait...", "Connecting to server");
  4. try {
  5. Thread.sleep(2000L);
  6. } catch (Exception _ex) {
  7. }
  8. loginScreenPrint("Sorry! The server is currently full.", "Please try again later");
  9.  
  10. return;
  11. }
  12. try {
  13. this.username = user;
  14. user = DataOperations.addCharacters(user, 20);
  15. this.password = pass;
  16. pass = DataOperations.addCharacters(pass, 20);
  17. if (user.trim().length() == 0) {
  18. loginScreenPrint("You must enter both a username", "and a password - Please try again");
  19.  
  20. return;
  21. }
  22. if (reconnecting) {
  23. gameBoxPrint("Connection lost! Please wait...", "Attempting to re-establish");
  24. }
  25. else {
  26. loginScreenPrint("Please wait...", "Connecting to server");
  27. }
  28. this.streamClass = new StreamClass(makeSocket("rscreloaded.net", 43594), this);
  29. this.streamClass.maxPacketReadCount = maxPacketReadCount;
  30. long l = DataOperations.stringLength12ToLong(user);
  31. this.streamClass.createPacket(32);
  32. this.streamClass.addByte((int)(l >> 16 & 0x1F));
  33.  
  34. this.streamClass.addString("ORG.RSCANGEL.CLIENT.MUDCLIENT-W3B5");
  35.  
  36. this.streamClass.finalisePacket();
  37. long sessionID = this.streamClass.read8ByteLong();
  38. if (sessionID == 0L) {
  39. loginScreenPrint("Login server offline.", "Please try again in a few mins");
  40.  
  41. return;
  42. }
  43. System.out.print("Session ID: " + sessionID);
  44. int[] sessionRotationKeys = new int[4];
  45. sessionRotationKeys[0] = (int)(Math.random() * 99999999.0D);
  46. sessionRotationKeys[1] = (int)(Math.random() * 99999999.0D);
  47. sessionRotationKeys[2] = (int)(sessionID >> 32);
  48. sessionRotationKeys[3] = (int)sessionID;
  49. DataEncryption dataEncryption = new DataEncryption(new byte[117]);
  50. if (reconnecting)
  51. dataEncryption.addByte(1);
  52. else
  53. dataEncryption.addByte(0);
  54. dataEncryption.add4ByteInt(43);
  55. dataEncryption.add4ByteInt(sessionRotationKeys[0]);
  56. dataEncryption.add4ByteInt(sessionRotationKeys[1]);
  57. dataEncryption.add4ByteInt(sessionRotationKeys[2]);
  58. dataEncryption.add4ByteInt(sessionRotationKeys[3]);
  59. dataEncryption.addString(user);
  60. dataEncryption.addString(pass);
  61. byte[] data = DataEncryption.encrypt(dataEncryption.packet);
  62. this.streamClass.createPacket(77);
  63. this.streamClass.addBytes(data, 0, data.length);
  64. this.streamClass.finalisePacket();
  65. int loginResponse = this.streamClass.readInputStream();
  66. System.out.println(" - Login Response:" + loginResponse);
Add Comment
Please, Sign In to add comment