public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (GroupInviteRequest)requestData; var response = new GroupInviteResponse() { ResponseId = request.RequestId, FriendHandle = request.FriendHandle }; connection.SendMessage(response); LobbyServerConnection user = LobbyServer.GetPlayerByHandle(request.FriendHandle); await user.SendMessage(new GroupConfirmationRequest() { //LeaderFullHandle = connection.PlayerInfo.GetHandle(), //LeaderName = connection.PlayerInfo.GetHandle(), ConfirmationNumber = 1234, ExpirationTime = TimeSpan.FromMinutes(1), GroupId = 508, // TODO //JoinerAccountId = connection.PlayerInfo.GetAccountId(), //JoinerName = connection.PlayerInfo.GetHandle(), RequestId = 0, ResponseId = 0, Type = GroupConfirmationRequest.JoinType.Unicode000E }); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (PurchaseBannerBackgroundRequest)requestData; var response = new PurchaseBannerBackgroundResponse() { CurrencyType = request.CurrencyType, BannerBackgroundId = request.BannerBackgroundId, Result = PurchaseResult.Success, ResponseId = request.RequestId }; await connection.SendMessage(response); var update = new InventoryComponentUpdateNotification() { InventoryComponent = new InventoryComponent() { Items = new List <InventoryItem>() { new InventoryItem(request.BannerBackgroundId), new InventoryItem(515, 3) } }, RequestId = 0, }; await connection.SendMessage(update); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { RegisterGameClientRequest request = (RegisterGameClientRequest)requestData; PlayerData.Player p = PlayerData.GetPlayer(request.SessionInfo.Handle); connection.SessionToken = request.SessionInfo.SessionToken; //connection.PlayerInfo = SessionManager.Get(connection.SessionToken); //connection.PlayerInfo.SetHandle(p.UserName); //connection.PlayerInfo.SetAccountId(p.AccountId); //connection.PlayerInfo.SetBannerID(p.SelectedBackgroundBannerID); //connection.PlayerInfo.SetEmblemID(p.SelectedForegroundBannerID); //connection.PlayerInfo.SetRibbonID(p.SelectedRibbonID); //connection.PlayerInfo.SetTitleID(p.SelectedTitleID); //connection.PlayerInfo.SetCharacterType(p.LastSelectedCharacter); // Send RegisterGameClientResponse await Send_RegisterGameClientResponse(connection, request); // Sent LobbyServerReadyNotification await Send_LobbyServerReadyNotification(connection); // Send "{username} has connected" to global chat await Send_ChatConnectedNotification(connection); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { ChatNotification notification = (ChatNotification)requestData; //notification.SenderAccountId = connection.PlayerInfo.GetAccountId(); //notification.SenderHandle = connection.PlayerInfo.GetHandle(); await LobbyServer.sendChatAsync(notification, connection); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { CrashReportArchiveNameResponse response = new CrashReportArchiveNameResponse() { ArchiveName = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".txt", ResponseId = ((CrashReportArchiveNameRequest)requestData).RequestId }; await connection.SendMessage(response); }
public async static Task AddFriend(LobbyServerConnection connection, FriendUpdateRequest request) { LobbyServerConnection friend = LobbyServer.GetPlayerByHandle(request.FriendHandle); var friendRequest = new FriendUpdateRequest() { //FriendHandle = connection.PlayerInfo.GetHandle(), //FriendAccountId = connection.PlayerInfo.GetAccountId(), FriendOperation = FriendOperation.Add, RequestId = 0, ResponseId = 0 }; await friend.SendMessage(friendRequest); // Send a "RequestSent" status to the person that wants to add a new friend await connection.SendMessage(new FriendStatusNotification() { FriendList = new Framework.Network.Static.FriendList() { Friends = new Dictionary <long, Framework.Network.Static.FriendInfo>() { { 0, new Framework.Network.Static.FriendInfo() { FriendHandle = request.FriendHandle, FriendAccountId = request.FriendAccountId, FriendStatus = Framework.Constants.Enums.FriendStatus.RequestSent, } } }, IsDelta = true// set this to true to the request to tell the client to not overwrite current friend list } }); // Send a "RequestReceived" status to the person await connection.SendMessage(new FriendStatusNotification() { FriendList = new Framework.Network.Static.FriendList() { Friends = new Dictionary <long, Framework.Network.Static.FriendInfo>() { { 0, new Framework.Network.Static.FriendInfo() { //FriendHandle = connection.PlayerInfo.GetHandle(), //FriendAccountId = connection.PlayerInfo.GetAccountId(), FriendStatus = Framework.Constants.Enums.FriendStatus.RequestReceived, } } }, IsDelta = true // set that this request doesnt have to overwrite friendlist } }); // TODO: SEND FRIENDSTATUSNOTIFICATION WITH STATUS REQUESTSENT }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var response = new PlayerMatchDataResponse() { MatchData = new List <PersistedCharacterMatchData>(), ResponseId = ((PlayerMatchDataRequest)requestData).RequestId }; await connection.SendMessage(response); }
public void Notify(LobbyServerConnection client) { MatchmakingQueueStatusNotification notification = new MatchmakingQueueStatusNotification() { MatchmakingQueueInfo = QueueInfo }; _ = client.SendMessage(notification); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var response = new PurchaseLoadoutSlotResponse() { Character = ((PurchaseLoadoutSlotRequest)requestData).Character, ResponseId = ((PurchaseLoadoutSlotRequest)requestData).RequestId }; /*I think there are more things to do here*/ await connection.SendMessage(response); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (JoinMatchmakingQueueRequest)requestData; await connection.SendMessage(new JoinMatchmakingQueueResponse() { ResponseId = request.RequestId }); LobbyQueueManager.AddPlayerToQueue(connection); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (LeaveMatchmakingQueueRequest)requestData; LobbyQueueManager.RemovePlayerFromQueue(connection); await connection.SendMessage(new LeaveMatchmakingQueueResponse() { ResponseId = request.RequestId }); }
public Task OnMessage(LobbyServerConnection connection, object requestData) { /* * ClientFeedbackReport feedback = (ClientFeedbackReport)requestData; * if (feedback.Reason == ClientFeedbackReport.FeedbackReason.Suggestion) * Log.Print(LogType.Lobby, $"{connection.PlayerInfo.GetHandle()} sent a suggestion: {feedback.Message}"); * else if (feedback.Reason == ClientFeedbackReport.FeedbackReason.Bug) * Log.Print(LogType.Lobby, $"{connection.PlayerInfo.GetHandle()} sent a bug report: {feedback.Message}"); */ return(Task.CompletedTask); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { SetGameSubTypeRequest request = (SetGameSubTypeRequest)requestData; //connection.PlayerInfo.SetGameType(request.gameType); //connection.PlayerInfo.SetSubTypeMask(request.SubTypeMask); await connection.SendMessage(new SetGameSubTypeResponse() { ResponseId = request.RequestId }); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (PurchaseBannerForegroundRequest)requestData; var response = new PurchaseBannerForegroundResponse() { CurrencyType = request.CurrencyType, BannerForegroundId = request.BannerForegroundId, Result = PurchaseResult.Success, ResponseId = request.RequestId }; await connection.SendMessage(response); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (PurchaseChatEmojiRequest)requestData; var response = new PurchaseChatEmojiResponse() { Result = PurchaseResult.Success, CurrencyType = request.CurrencyType, EmojiID = request.EmojiID, ResponseId = request.RequestId }; await connection.SendMessage(response); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (PurchaseTauntRequest)requestData; var response = new PurchaseTauntResponse() { Result = PurchaseResult.Success, CurrencyType = request.CurrencyType, CharacterType = request.CharacterType, TauntId = request.TauntId, ResponseId = request.RequestId }; await connection.SendMessage(response); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { PlayerUpdateStatusRequest request = (PlayerUpdateStatusRequest)requestData; connection.StatusString = request.StatusString; var response = new PlayerUpdateStatusResponse() { AccountId = request.AccountId, StatusString = request.StatusString, ResponseId = request.RequestId }; await connection.SendMessage(response); }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { var request = (FriendUpdateRequest)requestData; switch (request.FriendOperation) { case FriendOperation.Accept: FriendListUtils.AcceptFriend(connection, request); break; case FriendOperation.Add: await FriendListUtils.AddFriend(connection, request); break; case FriendOperation.Block: FriendListUtils.BlockFriend(connection, request); break; case FriendOperation.Note: FriendListUtils.NoteFriend(connection, request); break; case FriendOperation.Reject: FriendListUtils.RejectFriend(connection, request); break; case FriendOperation.Remove: FriendListUtils.RemoveFriend(connection, request); break; case FriendOperation.Unblock: FriendListUtils.UnblockFriend(connection, request); break; case FriendOperation.Unknown: break; } var response = new FriendUpdateResponse() { FriendAccountId = request.FriendAccountId, FriendHandle = request.FriendHandle, FriendOperation = request.FriendOperation, ResponseId = request.RequestId }; await connection.SendMessage(response); }
public static AccountComponent GetAccountComponent(LobbyServerConnection connection) { //TODO this looks awful AccountComponent accountComponent = new AccountComponent() { //LastCharacter = connection.PlayerInfo.GetCharacterType(), LastRemoteCharacters = new List <CharacterType>(), UIStates = new Dictionary <AccountComponent.UIStateIdentifier, int> { { AccountComponent.UIStateIdentifier.HasViewedFluxHighlight, 1 }, { AccountComponent.UIStateIdentifier.HasViewedGGHighlight, 1 } }, //UnlockedTitleIDs = GetUnlockedTitleIDs(connection.PlayerInfo.GetAccountId()), //UnlockedBannerIDs = GetUnlockedTitleIDs(connection.PlayerInfo.GetAccountId()), //UnlockedEmojiIDs = GetUnlockedTitleIDs(connection.PlayerInfo.GetAccountId()), //UnlockedOverconIDs = GetUnlockedTitleIDs(connection.PlayerInfo.GetAccountId()), }; return(accountComponent); }
public void AddPlayer(LobbyServerConnection client) { //Log.Print(LogType.Lobby, $"Player {client.PlayerInfo.GetHandle()} joined {GameType.ToString()} Queue"); Players.Add(client); QueueInfo.QueuedPlayers++; LobbyMatchmakingQueueInfo info = QueueInfo.Clone(); info.QueueStatus = Framework.Constants.Enums.QueueStatus.Success; MatchmakingQueueAssignmentNotification assignmentNotification = new MatchmakingQueueAssignmentNotification() { Reason = "", MatchmakingQueueInfo = info }; _ = client.SendMessage(assignmentNotification); Update(); }
public static PersistedAccountData GetAccountData(LobbyServerConnection connection) { PersistedAccountData accountData = new PersistedAccountData() { //AccountId = connection.PlayerInfo.GetAccountId(), AccountComponent = GetAccountComponent(connection), //BankComponent = GetBankData(connection.PlayerInfo.GetAccountId()), CharacterData = GetCharacterData(), CreateDate = DateTime.Now.AddHours(-1), //Handle = connection.PlayerInfo.GetHandle(), QuestComponent = new QuestComponent() { ActiveSeason = 9 }, // Provide a SeasonExperience to set Season Level on client SchemaVersion = new SchemaVersion <AccountSchemaChange>(0x1FFFF), UpdateDate = DateTime.Now, //UserName = connection.PlayerInfo.GetHandle(), InventoryComponent = new InventoryComponent(true) }; return(accountData); }
private LobbyServerReadyNotification LobbyServerReady(LobbyServerConnection connection) { // search here return(new LobbyServerReadyNotification { AccountData = PlayerUtils.GetAccountData(connection), AlertMissionData = new LobbyAlertMissionDataNotification(), CharacterDataList = DummyLobbyData.CreateCharacterDataList(), CommerceURL = "http://127.0.0.1/AtlasCommerce", EnvironmentType = EnvironmentType.External, FactionCompetitionStatus = new FactionCompetitionNotification(), FriendStatus = null,//new FriendStatusNotification {FriendList = FriendData.GetFriendList(connection.AccountId)}, GroupInfo = new LobbyPlayerGroupInfo { SelectedQueueType = GameType.PvP, //MemberDisplayName = connection.PlayerInfo.GetHandle(), //ChararacterInfo = DummyLobbyData.CreateLobbyCharacterInfo(CharacterType.Archer), Members = new List <UpdateGroupMemberData>() }, SeasonChapterQuests = new LobbySeasonQuestDataNotification { SeasonChapterQuests = new Dictionary <int, SeasonChapterQuests>() }, ServerQueueConfiguration = DummyLobbyData.CreateServerQueueConfiguration(), Status = new LobbyStatusNotification { AllowRelogin = false, ServerLockState = ServerLockState.Unlocked, ServerMessageOverrides = null,//new ServerMessageOverrides(), ClientAccessLevel = ClientAccessLevel.Full, HasPurchasedGame = true, GameplayOverrides = DummyLobbyData.CreateLobbyGameplayOverrides(), UtcNow = DateTime.UtcNow, PacificNow = DateTime.Now, // TODO: Should be pacific time ErrorReportRate = TimeSpan.FromMinutes(3) } }); }
public QueueSlot() { Empty = true; IsBot = false; Client = null; }
public Task OnMessage(LobbyServerConnection connection, object requestData) { return(Task.CompletedTask); }
private async Task Send_LobbyServerReadyNotification(LobbyServerConnection connection) { LobbyServerReadyNotification lobbyServerReady = LobbyServerReady(connection); await connection.SendMessage(lobbyServerReady); }
public static void RejectFriend(LobbyServerConnection connection, FriendUpdateRequest request) { }
public async Task OnMessage(LobbyServerConnection connection, object requestData) { PlayerInfoUpdateRequest request = (PlayerInfoUpdateRequest)requestData; //if (request.GameType != null) // connection.PlayerInfo.SetGameType(request.GameType.Value); // Change ReadyState if (request.PlayerInfoUpdate.ContextualReadyState != null) { if (request.PlayerInfoUpdate.ContextualReadyState.Value.ReadyState == ReadyState.Ready) { //LobbyQueueManager.HandleReady(connection); Log.Print(LogType.Debug, "HANDLE CHANGE READYSTATE"); LobbyQueueManager.AddPlayerToQueue(connection); } else { Log.Print(LogType.Warning, "Contextual Ready state unhandled (PlayerInfoUpdateRequestHandler)"); } } // Change Selected Freelancer else if (request.PlayerInfoUpdate.CharacterType != null) { //connection.PlayerInfo.SetCharacterType(request.PlayerInfoUpdate.CharacterType.Value); //PlayerData.SaveSelectedCharacter(connection.PlayerInfo.GetAccountId(), (int)connection.PlayerInfo.GetCharacterType()); var accountDataUpdate = new PlayerAccountDataUpdateNotification { AccountData = PlayerUtils.GetAccountData(connection) }; await connection.SendMessage(accountDataUpdate); var response = new PlayerInfoUpdateResponse { //CharacterInfo = connection.PlayerInfo.GetLobbyPlayerInfo().CharacterInfo, OriginalPlayerInfoUpdate = request.PlayerInfoUpdate, ResponseId = request.RequestId }; await connection.SendMessage(response); return; } //Change Skin else if (request.PlayerInfoUpdate.CharacterSkin != null) { //connection.PlayerInfo.SetSkin(request.PlayerInfoUpdate.CharacterSkin.Value); } //Chnage Catalyst else if (request.PlayerInfoUpdate.CharacterCards != null) { //connection.PlayerInfo.SetCards(request.PlayerInfoUpdate.CharacterCards.Value); } // Chnage Mods else if (request.PlayerInfoUpdate.CharacterMods != null) { //connection.PlayerInfo.SetMods(request.PlayerInfoUpdate.CharacterMods.Value); } // Change Vfx else if (request.PlayerInfoUpdate.CharacterAbilityVfxSwaps != null) { //connection.PlayerInfo.SetAbilityVfxSwaps(request.PlayerInfoUpdate.CharacterAbilityVfxSwaps.Value); } // Chnage Loadout else if (request.PlayerInfoUpdate.CharacterLoadoutChanges != null) { Log.Print(LogType.Warning, "Changes in loadout not implemented yet(PlayerInfoUpdateRequestHandler.cs)"); } }
public void RemovePlayer(LobbyServerConnection client) { Log.Print(LogType.Debug, $"Removing player {client} from {GameType.ToString()} Queue"); Players.Remove(client); QueueInfo.QueuedPlayers--; }
private async Task Send_ChatConnectedNotification(LobbyServerConnection connection) { //ChatNotification connectedMessage = new ChatNotification() { Text = $"{connection.PlayerInfo.GetHandle()} has connected", ConsoleMessageType = ConsoleMessageType.SystemMessage }; //await LobbyServer.sendChatToAll(connectedMessage); }
private async Task Send_RegisterGameClientResponse(LobbyServerConnection connection, RegisterGameClientRequest request) { Log.Print(LogType.Debug, "Sending Send_RegisterGameClientResponse"); var response = RegisterGameClient(request); await connection.SendMessage(response); }