public async Task ChooseCharacterOnLogon(S_LOGIN_ACCOUNT_INFO packet) { await Client.Send(new C_GET_USER_LIST()); var userListPacket = await Dispatcher.Next <S_GET_USER_LIST>(); var charName = Configuration.CharacterName; var chosenUser = userListPacket.Users.SingleOrDefault(user => user.Name == charName); if (chosenUser == null) { throw new MyTeraException($"There is no character named {charName}."); } await Client.Send(new C_SELECT_USER { UserId = chosenUser.Id }); }
public static void AuthorizeLogin(Connection connection, string accountName, string ticket, int language) { Account account = DAOManager.AccountDao.LoadAccount(accountName, ticket); if (account != null) { connection.Account = account; } S_LOADING_SCREEN_CONTROL_INFO sLoadingScreenControlInfo = new S_LOADING_SCREEN_CONTROL_INFO(); sLoadingScreenControlInfo.Send(connection); S_REMAIN_PLAY_TIME sRemainPlayTime = new S_REMAIN_PLAY_TIME(); sRemainPlayTime.Send(connection); S_LOGIN_ARBITER s_login_arbiter = new S_LOGIN_ARBITER(language, ((account != null) ? true: false)); s_login_arbiter.Send(connection); S_LOGIN_ACCOUNT_INFO s_login_account_info = new S_LOGIN_ACCOUNT_INFO(); s_login_account_info.Send(connection); }