void LoginRequest_Process_Handler(Task t) { LoginRequestPacket lrp = (LoginRequestPacket)t.Args; if (t.Query.Rows.Count > 0) { // 0: account_id // 1: user_name // 2: password object[] row = t.Query.Rows[0]; int account_id = (int)row[0]; string pass = (string)row[1]; if (pass != lrp.Password) { t.Client.SendPacket(new LoginErrorPacket(LoginErrorPacket.ErrorCodes.PasswordDoesntMatch, "wrong password")); } else { // Login ok - TODO: Implement other server support string authKey = _server.ExpectConnection(account_id); t.Client.SendPacket(new ServerListPacket(_server.PlayServers, authKey)); } } else { // Account not found t.Client.SendPacket(new LoginErrorPacket(LoginErrorPacket.ErrorCodes.AccountDoesntExist, "makeanaccount.com")); } }
void LoginRequest_Fetch_Handler(Task t) { LoginRequestPacket lrp = (LoginRequestPacket)t.Args; string sql = string.Format("SELECT * FROM accounts WHERE user_name=\"{0}\";", lrp.UserName); t.Type = Task.TaskType.LoginRequest_Process; AddDBQuery(sql, t); }
public static LoginRequestPacket Read(PacketHeader header, BinaryReader br) { LoginRequestPacket lrp = new LoginRequestPacket(); lrp.Header = header; lrp.UserName = Utils.ReadByteString(br, 65); lrp.Password = Utils.ReadByteString(br, 65); return(lrp); }
private void Client_OnLoginRequest(object sender, LoginRequestPacket e) { TaskProcessor.AddTask(new Task(Task.TaskType.LoginRequest_Fetch, (Connection)sender, e)); }
public static LoginRequestPacket Read(PacketHeader header, BinaryReader br) { LoginRequestPacket lrp = new LoginRequestPacket(); lrp.Header = header; lrp.UserName = Utils.ReadByteString(br, 65); lrp.Password = Utils.ReadByteString(br, 65); return lrp; }
void LoginRequest_Handler(PacketHeader header, BinaryReader br) { LoginRequestPacket lrp = LoginRequestPacket.Read(header, br); OnLoginRequest(this, lrp); }