Advertisement
Guest User

Untitled

a guest
Jun 11th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.63 KB | None | 0 0
  1. using Bunny.Core;
  2. using Bunny.Enums;
  3. using Bunny.Packet.Assembled;
  4.  
  5. namespace Bunny.Packet.Disassemble
  6. {
  7.     class Login
  8.     {
  9.         [PacketHandler(Operation.MatchLoginNHN, PacketFlags.None)]
  10.         public static void ProcessLgoinRequest(Client client, PacketReader packetReader)
  11.         {
  12.             var user = packetReader.ReadString();
  13.             var pass = packetReader.ReadString();
  14.             var version = packetReader.ReadInt32();
  15.             var checksum = packetReader.ReadInt32();
  16.             var totalSize = packetReader.ReadInt32();
  17.             var blobSize = packetReader.ReadInt32();
  18.             var blobCount = packetReader.ReadInt32();
  19.             var md5 = new byte[blobSize*blobCount];
  20.            
  21.             packetReader.Read(md5, 0, blobSize);
  22.  
  23.             if (blobSize > 32)
  24.             {
  25.                 client.Disconnect();
  26.                 return;
  27.             }
  28.  
  29.             if (!Globals.AcceptedString.IsMatch(user) || !Globals.AcceptedString.IsMatch(pass))
  30.             {
  31.                 Match.ResponseLogin(client, Results.LoginAuthenticationFailed, user, UGradeId.Guest, PGradeId.Free, new Muid(0,0));
  32.                 return;
  33.             }
  34.  
  35.             Database.GetAccount(user, pass, ref client.ClientPlayer.PlayerAccount);
  36.  
  37.             if (client.ClientPlayer.PlayerAccount.AccountId == 0)
  38.             {
  39.                 Match.ResponseLogin(client, Results.LoginIncorrectPassword, user, UGradeId.Guest, PGradeId.Free, new Muid(0, 0));
  40.                 return;
  41.             }
  42.            
  43.             if (client.ClientPlayer.PlayerAccount.Access == UGradeId.Banned || client.ClientPlayer.PlayerAccount.Access == UGradeId.Criminal)
  44.             {
  45.                 Match.ResponseLogin(client, Results.LoginBannedId, user, UGradeId.Guest, PGradeId.Free, new Muid(0, 0));
  46.                 return;
  47.             }
  48.            
  49.             if (version != Globals.Config.Client.Version)
  50.             {
  51.                 Match.ResponseLogin(client, Results.LoginInvalidVersion, user, UGradeId.Guest, PGradeId.Free, new Muid(0, 0));
  52.                 return;
  53.             }
  54.  
  55.             if (Globals.Config.Client.UseCrc)
  56.             {
  57.                 if ((checksum^0) != Globals.Config.Client.FileList)
  58.                 {
  59.                     Match.ResponseLogin(client, Results.LoginInvalidVersion, user, UGradeId.Guest, PGradeId.Free, new Muid(0, 0));
  60.                     return;
  61.                 }
  62.             }
  63.  
  64.             client.ClientFlags = PacketFlags.Login;
  65.             Match.ResponseLogin(client, Results.Accepted, user, UGradeId.Guest, PGradeId.Free, client.ClientPlayer.PlayerId);
  66.         }
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement