コード例 #1
0
 private void FireChangeEvent(BnetFriendChangelist changelist)
 {
     foreach (ChangeListener listener in this.m_changeListeners.ToArray())
     {
         listener.Fire(changelist);
     }
 }
コード例 #2
0
    private void OnFriendsChanged(BnetFriendChangelist changelist, object userData)
    {
        List <BnetPlayer> removedFriends = changelist.GetRemovedFriends();

        if ((removedFriends != null) && removedFriends.Contains(this.m_selectedFriend))
        {
            this.m_selectedFriend = null;
        }
    }
コード例 #3
0
    private void FirePendingFriendsChangedEvent()
    {
        BnetFriendChangelist changelist = this.m_pendingChangelist.CreateChangelist();

        if (this.m_pendingChangelist.GetCount() == 0)
        {
            BnetPresenceMgr.Get().RemovePlayersChangedListener(new BnetPresenceMgr.PlayersChangedCallback(this.OnPendingPlayersChanged));
        }
        this.FireChangeEvent(changelist);
    }
コード例 #4
0
    public BnetFriendChangelist CreateChangelist()
    {
        BnetFriendChangelist changelist = new BnetFriendChangelist();

        for (int i = this.m_friends.Count - 1; i >= 0; i--)
        {
            BnetPlayer friend = this.m_friends[i];
            if (friend.IsDisplayable())
            {
                changelist.AddAddedFriend(friend);
                this.m_friends.RemoveAt(i);
            }
        }
        return(changelist);
    }
コード例 #5
0
 private void OnFriendsChanged(BnetFriendChangelist changelist, object userData)
 {
     if (this.HasChallenge())
     {
         List <BnetPlayer> removedFriends = changelist.GetRemovedFriends();
         if (removedFriends != null)
         {
             BnetPlayer opponent = this.GetOpponent(BnetPresenceMgr.Get().GetMyPlayer());
             if (opponent != null)
             {
                 foreach (BnetPlayer player2 in removedFriends)
                 {
                     if (player2 == opponent)
                     {
                         this.RevertTavernBrawlStatus();
                         this.CleanUpChallengeData(true);
                         this.FireChangedEvent(FriendChallengeEvent.OPPONENT_REMOVED_FROM_FRIENDS, opponent);
                         break;
                     }
                 }
             }
         }
     }
 }
コード例 #6
0
 private void OnFriendsChanged(BnetFriendChangelist changelist, object userData)
 {
     this.UpdateOnlineCount();
 }
コード例 #7
0
 public void Fire(BnetFriendChangelist changelist)
 {
     base.m_callback(changelist, base.m_userData);
 }
コード例 #8
0
    private void OnFriendsUpdate(BattleNet.FriendsUpdate[] updates)
    {
        BnetFriendChangelist changelist = new BnetFriendChangelist();

        foreach (BattleNet.FriendsUpdate update in updates)
        {
            switch (((BattleNet.FriendsUpdate.Action)update.action))
            {
            case BattleNet.FriendsUpdate.Action.FRIEND_REMOVED:
            {
                BnetAccountId id2  = BnetAccountId.CreateFromBnetEntityId(update.entity1);
                BnetPlayer    item = BnetPresenceMgr.Get().GetPlayer(id2);
                this.m_friends.Remove(item);
                changelist.AddRemovedFriend(item);
                this.RemovePendingFriend(item);
                break;
            }

            case BattleNet.FriendsUpdate.Action.FRIEND_INVITE:
            {
                BnetInvitation invitation = BnetInvitation.CreateFromFriendsUpdate(update);
                this.m_receivedInvites.Add(invitation);
                changelist.AddAddedReceivedInvite(invitation);
                break;
            }

            case BattleNet.FriendsUpdate.Action.FRIEND_INVITE_REMOVED:
            {
                BnetInvitation invitation2 = BnetInvitation.CreateFromFriendsUpdate(update);
                this.m_receivedInvites.Remove(invitation2);
                changelist.AddRemovedReceivedInvite(invitation2);
                break;
            }

            case BattleNet.FriendsUpdate.Action.FRIEND_SENT_INVITE:
            {
                BnetInvitation invitation3 = BnetInvitation.CreateFromFriendsUpdate(update);
                this.m_sentInvites.Add(invitation3);
                changelist.AddAddedSentInvite(invitation3);
                break;
            }

            case BattleNet.FriendsUpdate.Action.FRIEND_SENT_INVITE_REMOVED:
            {
                BnetInvitation invitation4 = BnetInvitation.CreateFromFriendsUpdate(update);
                this.m_sentInvites.Remove(invitation4);
                changelist.AddRemovedSentInvite(invitation4);
                break;
            }

            case BattleNet.FriendsUpdate.Action.FRIEND_ADDED:
            {
                BnetAccountId id     = BnetAccountId.CreateFromBnetEntityId(update.entity1);
                BnetPlayer    player = BnetPresenceMgr.Get().RegisterPlayer(id);
                if (player.IsDisplayable())
                {
                    this.m_friends.Add(player);
                    changelist.AddAddedFriend(player);
                }
                else
                {
                    this.AddPendingFriend(player);
                }
                break;
            }
            }
        }
        if (!changelist.IsEmpty())
        {
            this.FireChangeEvent(changelist);
        }
    }