Thread: [Rs2006 Source] Logging in & dc

Results 1 to 10 of 10
  1. #1 [Rs2006 Source] Logging in & dc 
    Banned
    Join Date
    Jul 2010
    Age
    30
    Posts
    835
    Thanks given
    127
    Thanks received
    43
    Rep Power
    0
    I can seem to login now but it dc's on login. Heres my login.java code

    Current Testing Client: Moparscape 3.2 Webclient


    Code:
    package com.rs2.net;
    
    import java.math.BigInteger;
    import java.nio.ByteBuffer;
    import java.security.SecureRandom;
    
    import com.rs2.Constants;
    import com.rs2.model.World;
    import com.rs2.model.players.Player;
    import com.rs2.model.players.Player.LoginStages;
    import com.rs2.util.NameUtil;
    import com.rs2.util.PlayerSave;
    
    public class Login {
    	
    	public void handleLogin(Player player, ByteBuffer inData) throws Exception {
    		switch (player.getLoginStage()) {
    		case CONNECTED:
    			if (inData.remaining() < 2) {
    				inData.compact();
    				return;
    			}
    
    			// Validate the request.
    			int request = inData.get() & 0xff;
    			inData.get(); // Name hash.
    			if (request != 14) {
    				System.err.println("Invalid login request: " + request);
    				World.unregister(player);
    				return;
    			}
    
    			// Write the response.
    			StreamBuffer.OutBuffer out = StreamBuffer.newOutBuffer(17);
    			out.writeLong(0); // First 8 bytes are ignored by the client.
    			out.writeByte(0); // The response opcode, 0 for logging in.
    			out.writeLong(new SecureRandom().nextLong()); // SSK.
    			player.send(out.getBuffer());
    
    			player.setLoginStage(LoginStages.LOGGING_IN);
    			break;
    		case LOGGING_IN:
    			if (inData.remaining() < 2) {
    				inData.compact();
    				return;
    			}
    
    			// Validate the login type.
    			int loginType = inData.get();
    			if (loginType != 16 && loginType != 18) {
    				System.err.println("Invalid login type: " + loginType);
    				World.unregister(player);
    				return;
    			}
    
    			// Ensure that we can read all of the login block.
    			int blockLength = inData.get() & 0xff;
    			if (inData.remaining() < blockLength) {
    				inData.flip();
    				inData.compact();
    				return;
    			}
    
    			// Read the login block.
    			StreamBuffer.InBuffer in = StreamBuffer.newInBuffer(inData);
    			in.readByte(); // Skip the magic ID value 255.
    
    			// Validate the client version.
    			int clientVersion = in.readShort();
    			if (clientVersion != 317) {
    				System.err.println("Invalid client version: " + clientVersion);
    				World.unregister(player);
    				return;
    			}
    
    			in.readByte(); // Skip the high/low memory version.
    
    			// Skip the CRC keys.
    			for (int i = 0; i < 9; i++) {
    				in.readInt();
    			}
    
    			in.readByte(); // Skip RSA block length.
    			// If we wanted to, we would decode RSA at this point.
    
    			// Validate that the RSA block was decoded properly.
    			int rsaOpcode = in.readByte();
    			if (rsaOpcode != 10) {
    				System.err.println("Unable to decode RSA block properly!");
    				World.unregister(player);
    				return;
    			}
    
    			// Set up the ISAAC ciphers.
    			long clientHalf = in.readLong();
    			long serverHalf = in.readLong();
    			int[] isaacSeed = { (int) (clientHalf >> 32), (int) clientHalf, (int) (serverHalf >> 32), (int) serverHalf };
    			player.setDecryptor(new ISAACCipher(isaacSeed));
    			for (int i = 0; i < isaacSeed.length; i++) {
    				isaacSeed[i] += 50;
    			}
    			player.setEncryptor(new ISAACCipher(isaacSeed));
    
    			// Read the user authentication.
    			in.readInt(); // Skip the user ID.
    			String username = in.readString();
    			String password = in.readString();
    			player.setUsername(username);
    			PlayerSave.load(player);
    			if (password != null && player.getPassword() != null && player.getPassword() != "" && 
    					!player.getPassword().equals(password)) {
    				player.setReturnCode(Constants.LOGIN_RESPONSE_INVALID_CREDENTIALS);
    			} else {
    				player.setPassword(password);
    			}
    			player.setUsername(NameUtil.uppercaseFirstLetter(player.getUsername()));
    			player.login();
    			player.setLoginStage(LoginStages.LOGGED_IN);
    			break;
    		}
    	}
    
    }
    Heres Method for player.java

    Code:
    	public void login() throws Exception {
    		int response = getReturnCode();
    
    		// Check if the player is already logged in.
    		for (Player player : World.getPlayers()) {
    			if (player == null) {
    				continue;
    			}
    			if (player.getUsername().equals(getUsername())) {
    				response = Constants.LOGIN_RESPONSE_ACCOUNT_ONLINE;
    			}
    		}
    		
    		setLoginStage(LoginStages.LOGGED_IN);
    
    		StreamBuffer.OutBuffer resp = StreamBuffer.newOutBuffer(3);
    		resp.writeByte(response);
    		resp.writeByte(getStaffRights());
    		resp.writeByte(0);
    		send(resp.getBuffer());
    		if (response != 2) {
    			logout();
    			return;
    		}
    		World.register(this);
    		actionSender.sendLogin().sendConfigsOnLogin();
    		sendClientData();
    		refreshOnLogin();
    		getUpdateFlags().setUpdateRequired(true);
    		setAppearanceUpdateRequired(true);
    	}
    Help Plz Rep++
    Reply With Quote  
     

  2. #2  
    Officially Retired

    Huey's Avatar
    Join Date
    Jan 2008
    Age
    22
    Posts
    16,478
    Thanks given
    3,385
    Thanks received
    7,727
    Rep Power
    5000
    >Currently Testing Client Moparscape 3.2 Webclient....


    You new here or something?
    Attached image
    Listen children don't become this guy.
    Quote Originally Posted by Owner Spikey View Post
    Why can I attack lower level npc's in a matter of a mouse hover but for a higher level npc the only choice to attack is by right clicking option attack?

    Reply With Quote  
     

  3. Thankful users:


  4. #3  
    Banned
    Join Date
    Jul 2010
    Age
    30
    Posts
    835
    Thanks given
    127
    Thanks received
    43
    Rep Power
    0
    No, thats only client i dont have to download lol. + It doesnt use rsa.
    Reply With Quote  
     

  5. #4  
    Donator

    Arithium's Avatar
    Join Date
    May 2010
    Age
    31
    Posts
    4,721
    Thanks given
    199
    Thanks received
    1,256
    Rep Power
    1114
    Quote Originally Posted by Wakeke View Post
    I can seem to login now but it dc's on login. Heres my login.java code

    Current Testing Client: Moparscape 3.2 Webclient


    Code:
    package com.rs2.net;
    
    import java.math.BigInteger;
    import java.nio.ByteBuffer;
    import java.security.SecureRandom;
    
    import com.rs2.Constants;
    import com.rs2.model.World;
    import com.rs2.model.players.Player;
    import com.rs2.model.players.Player.LoginStages;
    import com.rs2.util.NameUtil;
    import com.rs2.util.PlayerSave;
    
    public class Login {
    	
    	public void handleLogin(Player player, ByteBuffer inData) throws Exception {
    		switch (player.getLoginStage()) {
    		case CONNECTED:
    			if (inData.remaining() < 2) {
    				inData.compact();
    				return;
    			}
    
    			// Validate the request.
    			int request = inData.get() & 0xff;
    			inData.get(); // Name hash.
    			if (request != 14) {
    				System.err.println("Invalid login request: " + request);
    				World.unregister(player);
    				return;
    			}
    
    			// Write the response.
    			StreamBuffer.OutBuffer out = StreamBuffer.newOutBuffer(17);
    			out.writeLong(0); // First 8 bytes are ignored by the client.
    			out.writeByte(0); // The response opcode, 0 for logging in.
    			out.writeLong(new SecureRandom().nextLong()); // SSK.
    			player.send(out.getBuffer());
    
    			player.setLoginStage(LoginStages.LOGGING_IN);
    			break;
    		case LOGGING_IN:
    			if (inData.remaining() < 2) {
    				inData.compact();
    				return;
    			}
    
    			// Validate the login type.
    			int loginType = inData.get();
    			if (loginType != 16 && loginType != 18) {
    				System.err.println("Invalid login type: " + loginType);
    				World.unregister(player);
    				return;
    			}
    
    			// Ensure that we can read all of the login block.
    			int blockLength = inData.get() & 0xff;
    			if (inData.remaining() < blockLength) {
    				inData.flip();
    				inData.compact();
    				return;
    			}
    
    			// Read the login block.
    			StreamBuffer.InBuffer in = StreamBuffer.newInBuffer(inData);
    			in.readByte(); // Skip the magic ID value 255.
    
    			// Validate the client version.
    			int clientVersion = in.readShort();
    			if (clientVersion != 317) {
    				System.err.println("Invalid client version: " + clientVersion);
    				World.unregister(player);
    				return;
    			}
    
    			in.readByte(); // Skip the high/low memory version.
    
    			// Skip the CRC keys.
    			for (int i = 0; i < 9; i++) {
    				in.readInt();
    			}
    
    			in.readByte(); // Skip RSA block length.
    			// If we wanted to, we would decode RSA at this point.
    
    			// Validate that the RSA block was decoded properly.
    			int rsaOpcode = in.readByte();
    			if (rsaOpcode != 10) {
    				System.err.println("Unable to decode RSA block properly!");
    				World.unregister(player);
    				return;
    			}
    
    			// Set up the ISAAC ciphers.
    			long clientHalf = in.readLong();
    			long serverHalf = in.readLong();
    			int[] isaacSeed = { (int) (clientHalf >> 32), (int) clientHalf, (int) (serverHalf >> 32), (int) serverHalf };
    			player.setDecryptor(new ISAACCipher(isaacSeed));
    			for (int i = 0; i < isaacSeed.length; i++) {
    				isaacSeed[i] += 50;
    			}
    			player.setEncryptor(new ISAACCipher(isaacSeed));
    
    			// Read the user authentication.
    			in.readInt(); // Skip the user ID.
    			String username = in.readString();
    			String password = in.readString();
    			player.setUsername(username);
    			PlayerSave.load(player);
    			if (password != null && player.getPassword() != null && player.getPassword() != "" && 
    					!player.getPassword().equals(password)) {
    				player.setReturnCode(Constants.LOGIN_RESPONSE_INVALID_CREDENTIALS);
    			} else {
    				player.setPassword(password);
    			}
    			player.setUsername(NameUtil.uppercaseFirstLetter(player.getUsername()));
    			player.login();
    			player.setLoginStage(LoginStages.LOGGED_IN);
    			break;
    		}
    	}
    
    }
    Heres Method for player.java

    Code:
    	public void login() throws Exception {
    		int response = getReturnCode();
    
    		// Check if the player is already logged in.
    		for (Player player : World.getPlayers()) {
    			if (player == null) {
    				continue;
    			}
    			if (player.getUsername().equals(getUsername())) {
    				response = Constants.LOGIN_RESPONSE_ACCOUNT_ONLINE;
    			}
    		}
    		
    		setLoginStage(LoginStages.LOGGED_IN);
    
    		StreamBuffer.OutBuffer resp = StreamBuffer.newOutBuffer(3);
    		resp.writeByte(response);
    		resp.writeByte(getStaffRights());
    		resp.writeByte(0);
    		send(resp.getBuffer());
    		if (response != 2) {
    			logout();
    			return;
    		}
    		World.register(this);
    		actionSender.sendLogin().sendConfigsOnLogin();
    		sendClientData();
    		refreshOnLogin();
    		getUpdateFlags().setUpdateRequired(true);
    		setAppearanceUpdateRequired(true);
    	}
    Help Plz Rep++
    Easy fix, playerupdating.java find and replace
    Code:
    block.writeByte(player.getGender()); // Gender
    		block.writeByte(player.getPrayerIcon());
    		//block.writeByte(player.getSkullIcon());
    Reply With Quote  
     

  6. #5  
    Banned
    Join Date
    Jul 2010
    Age
    30
    Posts
    835
    Thanks given
    127
    Thanks received
    43
    Rep Power
    0
    i tryed adding using my rsa login version of this, and it still dced
    Reply With Quote  
     

  7. #6  
    Banned
    Join Date
    Sep 2012
    Posts
    13
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    check pms
    Reply With Quote  
     

  8. #7  
    Banned
    Join Date
    Jul 2010
    Age
    30
    Posts
    835
    Thanks given
    127
    Thanks received
    43
    Rep Power
    0
    *bump
    Reply With Quote  
     

  9. #8  
    Registered Member
    thim slug's Avatar
    Join Date
    Nov 2010
    Age
    28
    Posts
    4,132
    Thanks given
    1,077
    Thanks received
    1,137
    Rep Power
    5000
    You'll obviously need to enable RSA and do you have any errors we can look at?
    Reply With Quote  
     

  10. #9  
    Banned
    Join Date
    Jul 2010
    Age
    30
    Posts
    835
    Thanks given
    127
    Thanks received
    43
    Rep Power
    0
    RSA is enabled, and i tryed rsa disabled, enabled. But both Dc on login. and it shows T1 Error on client...
    Reply With Quote  
     

  11. #10  
    Registered Member
    thim slug's Avatar
    Join Date
    Nov 2010
    Age
    28
    Posts
    4,132
    Thanks given
    1,077
    Thanks received
    1,137
    Rep Power
    5000
    Ok, post the t1.
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 30
    Last Post: 04-01-2012, 01:30 AM
  2. Replies: 103
    Last Post: 02-12-2012, 06:47 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •