public void Init(IIncomingFriendInvitation invitation)
 {
     this.invitation        = invitation;
     invitation.OnAccepted += onFriendAccepted;
     invitation.OnRejected += onFriendRejected;
     if (this.OnInitialized != null)
     {
         this.OnInitialized(this);
     }
 }
예제 #2
0
 private DataEntityHandle addIncomingInvitation(DataEntityHandle handle, IIncomingFriendInvitation invitation)
 {
     if (!handle.IsNull)
     {
         IncomingFriendInvitationData incomingFriendInvitationData = dataEntityCollection.AddComponent <IncomingFriendInvitationData>(handle);
         incomingFriendInvitationData.Init(invitation);
         incomingFriendInvitationData.OnAccepted += onIncomingFriendInvitationAccepted;
         incomingFriendInvitationData.OnRejected += onIncomingFriendInvitationRejected;
     }
     return(handle);
 }
예제 #3
0
        public void OnReceivedIncomingFriendInvitation(IIncomingFriendInvitation incomingFriendInvitation)
        {
            string text = incomingFriendInvitation.Inviter.DisplayName.Text;

            if (!dataEntityCollection.TryFindEntity <DisplayNameData, string>(text, out var dataEntityHandle))
            {
                dataEntityHandle = PlayerDataEntityFactory.CreateRemotePlayerEntity(dataEntityCollection, text);
            }
            addIncomingInvitation(dataEntityHandle, incomingFriendInvitation);
            onIncomingInvitationsListUpdated();
        }
예제 #4
0
 public void RejectFriendInvitation(IIncomingFriendInvitation incomingFriendInvitation, ILocalUser localUser)
 {
     if (incomingFriendInvitation == null)
     {
         throw new ArgumentNullException("incomingFriendInvitation");
     }
     localUser.RejectFriendInvitation(incomingFriendInvitation, delegate(IRejectFriendInvitationResult result)
     {
         onRejectFriendInvitationSent(result, incomingFriendInvitation.Inviter.DisplayName.Text);
     });
 }
예제 #5
0
        public void AcceptFriendInvitation(IIncomingFriendInvitation invitation, bool acceptTrust, Action <IAcceptFriendInvitationResult> callback)
        {
            IInternalIncomingFriendInvitation internalIncomingFriendInvitation = incomingFriendInvitations.FirstOrDefault((IInternalIncomingFriendInvitation i) => i.Id == invitation.Id);

            if (internalIncomingFriendInvitation == null)
            {
                logger.Critical("Friend invitation to accept not found");
                callback(new AcceptFriendInvitationResult(success: false, null));
                return;
            }
            FriendInvitationAccepter.Accept(logger, notificationQueue, mixWebCallFactory, internalIncomingFriendInvitation.InvitationId, acceptTrust, delegate(AddFriendshipNotification notification)
            {
                IInternalFriend friend = friends.FirstOrDefault((IInternalFriend f) => f.Swid == notification.Friend.UserId);
                callback(new AcceptFriendInvitationResult(success: true, friend));
            }, delegate
            {
                callback(new AcceptFriendInvitationResult(success: false, null));
            });
        }
예제 #6
0
        public void RejectFriendInvitation(IIncomingFriendInvitation invitation, Action <IRejectFriendInvitationResult> callback)
        {
            IInternalIncomingFriendInvitation internalInvitation = incomingFriendInvitations.FirstOrDefault((IInternalIncomingFriendInvitation i) => i.Id == invitation.Id);

            if (internalInvitation == null)
            {
                logger.Critical("Friend invitation to reject not found");
                callback(new RejectFriendInvitationResult(success: false));
                return;
            }
            FriendInvitationRejecter.Reject(logger, notificationQueue, mixWebCallFactory, internalInvitation.InvitationId, delegate
            {
                RemoveIncomingFriendInvitation(internalInvitation.InvitationId);
                internalInvitation.Rejected();
                callback(new RejectFriendInvitationResult(success: true));
            }, delegate
            {
                callback(new RejectFriendInvitationResult(success: false));
            });
        }
예제 #7
0
 public ReceivedIncomingFriendInvitationEventArgs(IIncomingFriendInvitation invitation)
 {
     base.Invitation = invitation;
 }
예제 #8
0
 public void AcceptFriendInvitation(IIncomingFriendInvitation invitation, bool acceptTrust, Action <IAcceptFriendInvitationResult> callback)
 {
     CoroutineRunner.StartPersistent(delayAcceptFriendInvitation(callback), this, "AcceptFriendInvitation");
 }
예제 #9
0
 public void RejectFriendInvitation(IIncomingFriendInvitation invitation, Action <IRejectFriendInvitationResult> callback)
 {
     CoroutineRunner.StartPersistent(delayRejectFriendInvitation(callback), this, "RejectFriendInvitation");
 }
예제 #10
0
 public IncomingFriendInvitation(IIncomingFriendInvitation incomingFriendInvitation)
 {
     MixIncomingFriendInvitation          = incomingFriendInvitation;
     incomingFriendInvitation.OnAccepted += onFriendAccepted;
     incomingFriendInvitation.OnRejected += onFriendRejected;
 }