diff --git a/GenOnlineService/Controllers/Friends/SocialController.cs b/GenOnlineService/Controllers/Friends/SocialController.cs index b7edf12..0859d9e 100644 --- a/GenOnlineService/Controllers/Friends/SocialController.cs +++ b/GenOnlineService/Controllers/Friends/SocialController.cs @@ -83,6 +83,13 @@ private async Task HelperFunction_AcceptFriendRequest(Int64 source_user_id, Int6 UserSession? targetData = WebSocketManager.GetDataFromUser(target_user_id); // remove the request from requestor (online version) + // If source user is not online, we cannot proceed + if (sourceData == null) + { + return; + } + + #pragma warning disable CS8602 // Dereference of a possibly null reference. sourceData.GetSocialContainer().PendingRequests.Remove(target_user_id); #pragma warning restore CS8602 // Dereference of a possibly null reference. @@ -147,7 +154,7 @@ public async Task AcceptPendingRequest(Int64 target_user_id) return; } - HelperFunction_AcceptFriendRequest(source_user_id, target_user_id); + await HelperFunction_AcceptFriendRequest(source_user_id, target_user_id); UserSession? sourceSession = WebSocketManager.GetDataFromUser(source_user_id); if (sourceSession != null) @@ -319,7 +326,7 @@ public async Task AddFriend(Int64 target_user_id) if (userData.GetSocialContainer().PendingRequests.Contains(target_user_id)) { // accept their request - HelperFunction_AcceptFriendRequest(requester_user_id, target_user_id); + await HelperFunction_AcceptFriendRequest(requester_user_id, target_user_id); } else { @@ -628,4 +635,4 @@ public async Task Remove_Block(Int64 target_user_id) } } } -} +}