public async UniTaskVoid HandleRequestRemoveFriend(RequestHandlerData requestHandler, RequestRemoveFriendMessage request, RequestProceedResultDelegate <ResponseRemoveFriendMessage> result) { #if UNITY_STANDALONE && !CLIENT_BUILD IPlayerCharacterData playerCharacter; if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter)) { result.Invoke(AckResponseCode.Error, new ResponseRemoveFriendMessage() { message = UITextKeys.UI_ERROR_NOT_LOGGED_IN, }); return; } ReadFriendsResp resp = await DbServiceClient.DeleteFriendAsync(new DeleteFriendReq() { Character1Id = playerCharacter.Id, Character2Id = request.friendId }); GameInstance.ServerGameMessageHandlers.SendSetFriends(requestHandler.ConnectionId, resp.List.MakeArrayFromRepeatedByteString <SocialCharacterData>()); result.Invoke(AckResponseCode.Success, new ResponseRemoveFriendMessage() { message = UITextKeys.UI_FRIEND_REMOVED, }); #endif }
public async UniTaskVoid HandleRequestRemoveFriend(RequestHandlerData requestHandler, RequestRemoveFriendMessage request, RequestProceedResultDelegate <ResponseRemoveFriendMessage> result) { #if UNITY_STANDALONE && !CLIENT_BUILD IPlayerCharacterData playerCharacter; if (!GameInstance.ServerUserHandlers.TryGetPlayerCharacter(requestHandler.ConnectionId, out playerCharacter)) { result.InvokeError(new ResponseRemoveFriendMessage() { message = UITextKeys.UI_ERROR_NOT_LOGGED_IN, }); return; } AsyncResponseData <EmptyMessage> resp = await DbServiceClient.DeleteFriendAsync(new DeleteFriendReq() { Character1Id = playerCharacter.Id, Character2Id = request.friendId, }); if (!resp.IsSuccess) { result.InvokeError(new ResponseRemoveFriendMessage() { message = UITextKeys.UI_ERROR_INTERNAL_SERVER_ERROR, }); return; } result.InvokeSuccess(new ResponseRemoveFriendMessage() { message = UITextKeys.UI_FRIEND_REMOVED, }); #endif }