public static void HandleInvitation(MooNetClient client, bnet.protocol.invitation.Invitation invitation) { var invitee = AccountManager.GetAccountByPersistentID(invitation.InviteeIdentity.AccountId.Low); //var invitee = Instance.Subscribers.FirstOrDefault(subscriber => subscriber.Account.BnetEntityId.Low == invitation.InviteeIdentity.AccountId.Low); if (invitee == null) { return; // if we can't find invite just return - though we should actually check for it until expiration time and store this in database. } //Check for duplicate invites foreach (var oldInvite in OnGoingInvitations.Values) { if ((oldInvite.InviteeIdentity.AccountId == invitation.InviteeIdentity.AccountId) && (oldInvite.InviterIdentity.AccountId == invitation.InviterIdentity.AccountId)) { return; } } OnGoingInvitations.Add(invitation.Id, invitation); // track ongoing invitations so we can tranport it forth and back. if (invitee.IsOnline) { var inviter = AccountManager.GetAccountByPersistentID(invitation.InviterIdentity.AccountId.Low); var notification = bnet.protocol.friends.InvitationNotification.CreateBuilder().SetInvitation(invitation).SetGameAccountId(inviter.CurrentGameAccount.BnetEntityId); invitee.CurrentGameAccount.LoggedInClient.MakeTargetedRPC(FriendManager.Instance, () => bnet.protocol.friends.FriendsNotify.CreateStub(invitee.CurrentGameAccount.LoggedInClient).NotifyReceivedInvitationAdded(null, notification.Build(), callback => { })); } }
public void RemoveInvitation(bnet.protocol.invitation.Invitation invitation) { if (this.Invitations.ContainsKey(invitation.Id)) { this.Invitations.Remove(invitation.Id); } else { Logger.Warn("Tried to removed unmapped invitation {0} from channel {1}.", invitation.Id, this); } }
public static void HandleInvitation(MooNetClient client, bnet.protocol.invitation.Invitation invitation) { var invitee = Instance.Subscribers.FirstOrDefault(subscriber => subscriber.Account.BnetAccountID.Low == invitation.InviteeIdentity.AccountId.Low); if (invitee == null) { return; // if we can't find invite just return - though we should actually check for it until expiration time and store this in database. } OnGoingInvitations.Add(invitation.Id, invitation); // track ongoing invitations so we can tranport it forth and back. var notification = bnet.protocol.friends.InvitationAddedNotification.CreateBuilder().SetInvitation(invitation); invitee.MakeTargetedRPC(FriendManager.Instance, () => bnet.protocol.friends.FriendsNotify.CreateStub(invitee).NotifyReceivedInvitationAdded(null, notification.Build(), callback => { })); }
public void HandleInvitation(MooNetClient client, bnet.protocol.invitation.Invitation invitation) { var invitee = this.Subscribers.FirstOrDefault(subscriber => subscriber.CurrentToon.BnetEntityID.Low == invitation.InviteeIdentity.ToonId.Low); if (invitee == null) { return; // if we can't find invite just return - though we should actually check for it until expiration time. } this._onGoingInvitations.Add(invitation.Id, invitation); // track ongoing invitations so we can tranport it forth and back. var notification = bnet.protocol.channel_invitation.InvitationAddedNotification.CreateBuilder().SetInvitation(invitation); invitee.MakeTargetedRPC(this, () => bnet.protocol.channel_invitation.ChannelInvitationNotify.CreateStub(invitee).NotifyReceivedInvitationAdded(null, notification.Build(), callback => { })); }
public void SetInvitation(bnet.protocol.invitation.Invitation val) { this.Invitation = val; }
public void AddInvitation(bnet.protocol.invitation.Invitation invitation) { this.Invitations.Add(invitation.Id, invitation); }