Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- else if (p.loginStage == 1) {
- try {
- if (!fillStream(p, 3))
- return;
- } catch (Exception e) {
- return;
- }
- int loginType = p.stream.readUnsignedByte();
- if (loginType != 16 && loginType != 18 && loginType != 14) {
- p.loginStage = -1;
- return;
- }
- p.loginStage++;
- } else if (p.loginStage == 2) {
- int loginPacketSize = p.stream.readUnsignedWord();
- int loginEncryptPacketSize = loginPacketSize - (36 + 1 + 1 + 2);
- if (loginEncryptPacketSize <= 0) {
- p.loginStage = -1;
- return;
- }
- try {
- if (!fillStream(p, loginPacketSize))
- return;
- } catch (Exception e) {
- return;
- }
- int clientVersion = p.stream.readDWord();
- if (clientVersion != 508) {
- p.loginStage = -1;
- return;
- }
- p.stream.readUnsignedByte();
- p.stream.readUnsignedWord();
- p.stream.readUnsignedWord();
- for (int i = 0; i < 24; i++) {
- int cacheIDX = p.stream.readUnsignedByte();
- if(cacheIDX == 0) {
- p.loginStage = -1;
- return;
- }
- }
- String junk = p.stream.readString();
- for (int i = 0; i < 29; i++) {
- int junk2 = p.stream.readDWord();
- }
- loginEncryptPacketSize--;
- int junk29 = p.stream.readUnsignedByte();
- int encryption = junk29;
- if(!(encryption == 10 || encryption == 64)) {
- encryption = p.stream.readUnsignedByte();
- }
- if (encryption != 10 && encryption != 64) {
- p.loginStage = -1;
- return;
- }
- clientSessionKey = p.stream.readQWord();
- serverSessionKey = p.stream.readQWord();
- String user = Misc.longToString(p.stream.readQWord()).toLowerCase();
- user = user.replaceAll("_", " ");
- user = user.replaceAll("<", "");
- user = user.replaceAll(">", "");
- p.username = user.trim();
- if (p.username == null) {
- p.loginStage = -1;
- p.username = "";
- return;
- }
- for (int i = 0; i < p.username.length(); i++) {
- Character c = new Character(p.username.charAt(i));
- if (!Character.isLetterOrDigit(c) && !Character.isSpaceChar(c)) {
- p.loginStage = -1;
- p.username = "";
- return;
- }
- }
- if (playerOnline(p.username, p)) {
- returnCode = 5;
- }
- Server.loadBannedUsers();
- if (checkBannedUsers(p.username)) {
- returnCode = 4;
- }
- String password = p.stream.readString();
- if (password == null) {
- p.loginStage = -1;
- return;
- }
- for (int i = 0; i < password.length(); i++) {
- Character c = new Character(password.charAt(i));
- if (!Character.isLetterOrDigit(c) && !Character.isSpaceChar(c)) {
- p.loginStage = -1;
- return;
- }
- }
- FloodDetect.checkClient(p);
- Engine.fileManager.loadCharacter(p);
- Engine.fileManager.loadFList(p);
- if (password != null && p.password != null && p.password != "" && !p.password.equals(password)) {
- returnCode = 3;
- } else {
- p.password = password;
- }
- FloodDetect.checkClient(p);
- p.stream.writeByte(returnCode);
- p.stream.writeByte(p.rights);
- p.stream.writeByte(0);
- p.stream.writeByte(0);
- p.stream.writeByte(0);
- p.stream.writeByte(1);
- p.stream.writeByte(0);
- p.stream.writeByte(p.playerId);
- p.stream.writeByte(0);
- directFlushStream(p);
- if (p.teleportToX == -1 && p.teleportToY == -1)
- p.setCoords(3087, 3491, 0);
- Engine.playerMovement.getNextPlayerMovement(p);
- if (p.inJadCave()) {
- if (p.heightLevel > 0)
- p.heightLevel = 0;
- }
- p.getActionSender().setMapRegion(p);
- if (p.inJadCave())
- p.setCoords(3087, 3491, 0);
- p.getActionSender().setWindowPane(p, 548);
- if (p.clanWarsFightArea())
- p.setCoords(3267 + Misc.random(2), 3684 + Misc.random(2), 0);
- if(p.godWarsDung())
- p.setCoords(3087, 3491, 0);
- if(p.bountyArea())
- p.setCoords(3165, 3680, 4);
- directFlushStream(p);
- if(p.bountySafe())
- p.heightLevel = 4;
- directFlushStream(p);
- if (returnCode != 2) {
- Engine.fileManager.appendData("characters/ips/" + p.username + ".txt", "[" + Server.socketListener.getAddress(p.socket.socket) + "]: failed login.");
- return;
- }
- Server.engine.fileManager.appendData("characters/ips/" + p.username + ".txt", "[" + Server.socketListener.getAddress(p.socket.socket) + "]: successful login.");
- p.getActionSender().setInterfaces(p);
- for (int i = 0; i < p.skillLvl.length; i++) {
- p.getActionSender().setSkillLvl(p, i);
- }
- p.thievingArray[0] = p.thievingArray[1] = -1;
- p.getWorldLoader().addPlayerFeatures();
- /*if (p.wildernessZone(p.absX, p.absY)) {
- p.getActionSender().setString(p, "Level: " + p.getWildernessLevel(), 380, 1);
- p.getActionSender().setOverlay(p, 380);
- }*/
- p.runEnergyUpdateReq = true;
- FloodDetect.checkClient(p);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement