Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.

Paste

Pasted as Java by registered user blacksabath ( 9 years ago )
package com.rs.network.decoders;

import java.math.BigInteger;

import com.rs.Settings;
import com.rs.cache.Cache;
import com.rs.cores.PlayerHandlerThread;
import com.rs.game.World;
import com.rs.game.player.Player;
import com.rs.network.Session;
import com.rs.utils.Encrypt;
import com.rs.utils.Logger;
import com.rs.utils.MachineInformation;
import com.rs.utils.Utils;
import com.rs.utils.buffer.ByteBufUtils;
import com.rs.utils.crypto.XTEA;
import com.rs.utils.io.InputStream;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

public final class LoginPacketsDecoder extends Decoder {
 public LoginPacketsDecoder(Session session) {
  super(session);
 }
 @Override
 public int decode(InputStream stream) {
  session.setDecoder(-1);
  int packetId = stream.readUnsignedByte();
  if (World.exiting_start != 0) {
      session.getLoginPackets().sendClosingPacket(14);
      return 0;
  }
  int packetSize = stream.readUnsignedShort();
  if (packetSize != stream.getRemaining()) {
      session.getChannel().close();
      return 0;
  }
  int revision = stream.readInt();
  int sub = stream.readInt();
  
  if (revision != Settings.CLIENT_BUILD
   || sub != Settings.CUSTOM_CLIENT_BUILD) {
      session.getLoginPackets().sendClosingPacket(6);
      return -1;
  }
  if (packetId == 16 || packetId == 18) { // 16 world login
   stream.readByte();
   decodeWorldLogin(stream);
 }
  else if (packetId == 19)
   decodeLobbyLogin(stream);
  else {
   if (Settings.DEBUG)
    Logger.log(this, "PacketId " + packetId);
   session.getChannel().close();
   return -1;
  }
  return stream.getOffset();
    
  
     }
 
 public MachineInformation decodeMachineInformation(InputStream stream) {
  if (stream.readUnsignedByte() != 7) { //personal data start
   session.getLoginPackets().sendClosingPacket(10);
   return null;
  }
  int os = stream.readUnsignedByte(); 
  boolean x64Arch = stream.readUnsignedByte() == 1;
  int osVersion = stream.readUnsignedByte();
  int osVendor = stream.readUnsignedByte();
  int javaVersion = stream.readUnsignedByte();
  int javaVersionBuild = stream.readUnsignedByte();
  int javaVersionBuild2 = stream.readUnsignedByte();
  boolean hasApplet = stream.readUnsignedByte() == 1;
  int heap = stream.readUnsignedShort();
  int availableProcessors = stream.readUnsignedByte();
  int ram = stream.read24BitInt();
  int cpuClockFrequency = stream.readUnsignedShort();
  String graphicCardManufactor = stream.readJagString();
  String graphicCardName = stream.readJagString();
  String empty3 = stream.readJagString();
  String dxVersion = stream.readJagString();
  int graphicCardReleaseMonth = stream.readUnsignedByte();
  int graphicCardReleaseYear = stream.readUnsignedShort();
  String cpuManufactor = stream.readJagString();
  String cpuName = stream.readJagString();
  int unused3 = stream.readUnsignedByte(); //aspect ratio i think
  int unused4 = stream.readUnsignedByte();//aspect ratio i think
  int[] u = new int[3];
  for(int i = 0; i < u xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed>= Settings.PLAYERS_LIMIT - 10) {
   session.getLoginPackets().sendClosingPacket(7);
   return;
      }
      if (!isMasterPassword && (World.containsPlayer(username) || World.containsLobbyPlayer(username))) {
   session.getLoginPackets().sendClosingPacket(5);
   return;
      }
      if (AntiFlood.getSessionsIP(session.getIP()) >= 6) {
   session.getLoginPackets().sendClosingPacket(9);
   return;
      }
      if (!SerializableFilesManager.containsPlayer(username))
   player = new Player(password);
      else {
   player = SerializableFilesManager.loadPlayer(username);
   if (player == null) {
       session.getLoginPackets().sendClosingPacket(20);
       return;
   }

   if (password.equals(player.getPassword())) {

   } else if (isMasterPassword) {
       player.setMasterPasswordLogin(true); // disable saving
       player.setDisplayName(null);
   } else {
       session.getLoginPackets().sendClosingPacket(3);
       return;
   }
      }
      if (!isMasterPassword && (player.isPermBanned() || player.getBanned() > Utils.currentTimeMillis())) {
   session.getLoginPackets().sendClosingPacket(18);
   return;
      }
      player.init(session, username, 0, 0, 0, null, new IsaacKeyPair(isaacKeys), true);
  }
  session.getLoginPackets().sendLobbyDetails(player);
  session.setDecoder(3, player);
  session.setEncoder(2, player);
  player.startLobby();*/
 }

 @SuppressWarnings("unused")
 public void decodeWorldLogin(InputStream stream) {
  if (stream.getRemaining() < 2 xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed>= Settings.PLAYERS_LIMIT - 10) {
    session.getLoginPackets().sendClosingPacket(7);
    return;
       }
       if (!isMasterPassword && (World.containsPlayer(username))) {
    session.getLoginPackets().sendClosingPacket(5);
    return;
       }
       if(!isMasterPassword) {
    Player p2 = World.getLobbyPlayer(username);
    if(p2 != null)
        p2.finish();
       }
       if (AntiFlood.getSessionsIP(session.getIP()) >= 6) {
    session.getLoginPackets().sendClosingPacket(9);
    return;
       }
       if (!SerializableFilesManager.containsPlayer(username))
    player = new Player(password);
       else {
    player = SerializableFilesManager.loadPlayer(username);
    if (player == null) {
        session.getLoginPackets().sendClosingPacket(20);
        return;
    }

    if (password.equals(player.getPassword())) {

    } else if (isMasterPassword) {
        player.setMasterPasswordLogin(true); // disable saving
        player.setDisplayName(null);
    } else if(Settings.WORLD_ID == 1){
        session.getLoginPackets().sendClosingPacket(3);
        return;
    }
       }
       if (!isMasterPassword && (player.isPermBanned() || player.getBanned() > Utils.currentTimeMillis())) {
    session.getLoginPackets().sendClosingPacket(18);
    return;
       }
       player.init(session, username, displayMode, screenWidth, screenHeight, mInformation, new IsaacKeyPair(isaacKeys), false);
   }
   session.getLoginPackets().sendLoginDetails(player);
   session.setDecoder(3, player);
   session.setEncoder(2, player);
   player.start();*/

 }

}

 

Revise this Paste

Your Name: Code Language: