public int HandlePacket(BaseClient client, PacketIn packet)
{
LobbyClient cclient = client as LobbyClient;
byte[] clientModulus = new byte[64];
for (int i = 0; i < 64; ++i) clientModulus[i] = packet.GetUint8();
cclient.clientModulus = new FrameWork.NetWork.Crypto.BigInteger(1, clientModulus);
UInt16 unk = packet.GetUint16();
byte[] Proof = new byte[20];
for (int i = 0; i < 20; ++i) Proof[i] = packet.GetUint8();
cclient.Proof = Proof;
if (IsBanned(cclient))
{
ANS_LOGIN_FAILED.Send(cclient, (int)ResponseCodes.RC_LOGIN_ACCOUNT_BLOCKED);
cclient.Disconnect();
}
else
{
if (IsValid(cclient))
{
ANS_LOGIN_SUCCES.Send(cclient);
cclient.ECrypt = new TCP.Encryption(cclient.SessionId);
ANS_CHARACTER_INFO.Send(cclient);
}
else
{
ANS_LOGIN_FAILED.Send(cclient, (int)ResponseCodes.RC_LOGIN_INVALID_ACCOUNT);
cclient.Disconnect();
}
}
return 0;
}