using System; using Ion.Core; namespace Ion.HabboHotel.Client { public partial class ClientMessageHandler { #region The Register Part private void TwoOhTwo() // "CN" { Response.Initialize(ResponseOpcodes.InitCrypto2); // "DU" Response.AppendInt32(1); Response.AppendInt32(0); SendResponse(); } private void InitCrypto() // "CJ" { SendContent("DARAHIIIKHJIPAIQAdd-MM-yyyy" + Convert.ToChar(2) + Convert.ToChar(1)); Response.Initialize(ResponseOpcodes.GetCreditsInfoComposer); // "@H" Response.Append("[100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,176,177,178,180,185,190,195,200,205,206,207,210,215,220,225,230,235,240,245,250,255,260,265,266,267,270,275,280,281,285,290,295,300,305,500,505,510,515,520,525,530,535,540,545,550,555,565,570,575,580,585,590,595,596,600,605,610,615,620,625,626,627,630,635,640,645,650,655,660,665,667,669,670,675,680,685,690,695,696,700,705,710,715,720,725,730,735,740]"); SendResponse(); } private void SendDate() // "@q" { SendContent("Bc" + DateTime.Today + Convert.ToChar(1)); } private void CheckName() // "@j" { string name = Request.PopFixedString(); using (Ion.Storage.DatabaseClient dbClient = IonEnvironment.GetDatabase().GetClient()) { Response.Initialize(36); // "@d" if (dbClient.ReadBoolean("SELECT * FROM users WHERE username = '" + name + "'") == true) { Response.AppendInt32(4); } else if (name.Contains("MOD-") || name.Contains("Mod-") || name.Contains("mod-")) { Response.AppendInt32(3); } else { Response.AppendInt32(0); } SendResponse(); } } #region Nothing Packets private void Handler203() // "CK" { SendContent("DZH" + Convert.ToChar(1)); } private void Handler197() // "CE" { SendContent("DO" + Convert.ToChar(1)); } private void Handler46() // "@n" { SendContent("DO" + Convert.ToChar(1)); } private void Handler146() // "BR" { SendContent("CY1" + Convert.ToChar(1)); } #endregion private void Handler43() // "@k" { Response.Initialize(ResponseOpcodes.HotelAlert); Response.Append("We are sorry, but register doesn't currently work."); SendResponse(); //uint clientID = mSession.GetConnection().ID; //IonEnvironment.GetTcpConnections().DropConnection(clientID); } #endregion private void Handler4() //@D { string Name = Request.PopFixedString(); string Password = Request.PopFixedString(); using (Ion.Storage.DatabaseClient dbClient = IonEnvironment.GetDatabase().GetClient()) { string cU = dbClient.ReadString("SELECT username FROM users WHERE username = '" + Name + "'"); string cP = dbClient.ReadString("SELECT password FROM users WHERE password = '" + Password + "'"); if (Name != cU) { SendContent("@alogin incorrect: Wrong password"); } else if (Password != cP) { SendContent("@alogin incorrect: Wrong username"); } else if (Name == cU && Password == cP) { string SSO = dbClient.ReadString("SELECT ssoticket FROM users WHERE password = '" + Password + "'"); mSession.Login(SSO); } else { SendContent("@Bfuse_quack"); SendContent("@C"); } } } //private void SSOTicket() //{ // // Process ticket login // string sTicket = Request.PopFixedString(); // mSession.Login(sTicket); //} public void RegisterLogin() { //REGISTER mRequestHandlers[206] = new RequestHandler(TwoOhTwo); mRequestHandlers[202] = new RequestHandler(InitCrypto); mRequestHandlers[49] = new RequestHandler(SendDate); mRequestHandlers[42] = new RequestHandler(CheckName); mRequestHandlers[203] = new RequestHandler(Handler203); mRequestHandlers[197] = new RequestHandler(Handler197); mRequestHandlers[46] = new RequestHandler(Handler46); mRequestHandlers[146] = new RequestHandler(Handler146); mRequestHandlers[43] = new RequestHandler(Handler43); //LOGIN mRequestHandlers[4] = new RequestHandler(Handler4); } } }