private void AddInvitationInternal(FriendsUpdate.Action action, Invitation invitation, int reason)
        {
            if (invitation == null)
            {
                return;
            }
            FriendsUpdate friendsUpdate = default(FriendsUpdate);

            friendsUpdate.action  = (int)action;
            friendsUpdate.long1   = invitation.Id;
            friendsUpdate.entity1 = this.GetBnetEntityIdFromIdentity(invitation.InviterIdentity);
            if (invitation.HasInviterName)
            {
                friendsUpdate.string1 = invitation.InviterName;
            }
            friendsUpdate.entity2 = this.GetBnetEntityIdFromIdentity(invitation.InviteeIdentity);
            if (invitation.HasInviteeName)
            {
                friendsUpdate.string2 = invitation.InviteeName;
            }
            if (invitation.HasInvitationMessage)
            {
                friendsUpdate.string3 = invitation.InvitationMessage;
            }
            friendsUpdate.bool1 = false;
            if (invitation.HasCreationTime)
            {
                friendsUpdate.long2 = invitation.CreationTime;
            }
            if (invitation.HasExpirationTime)
            {
                friendsUpdate.long3 = invitation.ExpirationTime;
            }
            this.m_updateList.Add(friendsUpdate);
        }
Ejemplo n.º 2
0
        public static FriendsUpdate read(BinaryReader binaryReader)
        {
            FriendsUpdate newObj = new FriendsUpdate();

            newObj.friendDataList = PList <FriendData> .read(binaryReader);

            newObj.updateType = (FriendsUpdateType)binaryReader.ReadUInt32();
            return(newObj);
        }
        private void AddFriendInternal(BnetEntityId entityId)
        {
            if (entityId == null)
            {
                return;
            }
            FriendsUpdate friendsUpdate = default(FriendsUpdate);

            friendsUpdate.action  = 1;
            friendsUpdate.entity1 = entityId;
            this.m_updateList.Add(friendsUpdate);
            this.m_battleNet.Presence.PresenceSubscribe(BnetEntityId.CreateForProtocol(entityId));
            this.m_friendEntityId.Add(entityId, new Map <ulong, bnet.protocol.EntityId>());
            this.m_friendsCount = (uint)this.m_friendEntityId.Count;
        }
        private void RemoveFriendInternal(BnetEntityId entityId)
        {
            if (entityId == null)
            {
                return;
            }
            FriendsUpdate friendsUpdate = default(FriendsUpdate);

            friendsUpdate.action  = 2;
            friendsUpdate.entity1 = entityId;
            this.m_updateList.Add(friendsUpdate);
            this.m_battleNet.Presence.PresenceUnsubscribe(BnetEntityId.CreateForProtocol(entityId));
            if (this.m_friendEntityId.ContainsKey(entityId))
            {
                foreach (bnet.protocol.EntityId current in this.m_friendEntityId[entityId].Values)
                {
                    this.m_battleNet.Presence.PresenceUnsubscribe(current);
                }
                this.m_friendEntityId.Remove(entityId);
            }
            this.m_friendsCount = (uint)this.m_friendEntityId.Count;
        }
Ejemplo n.º 5
0
    public override bool acceptMessageData(BinaryReader messageDataReader, TreeView outputTreeView)
    {
        bool handled = true;

        PacketOpcode opcode = Util.readOpcode(messageDataReader);

        switch (opcode)
        {
        case PacketOpcode.Evt_Social__ClearFriends_ID: {
            EmptyMessage message = new EmptyMessage(opcode);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__RemoveFriend_ID: {
            RemoveFriend message = RemoveFriend.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__AddFriend_ID: {
            AddFriend message = AddFriend.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__FriendsUpdate_ID: {
            FriendsUpdate message = FriendsUpdate.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        // TODO: AddCharacterTitle
        case PacketOpcode.Evt_Social__CharacterTitleTable_ID: {
            CharacterTitleTable message = CharacterTitleTable.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__AddOrSetCharacterTitle_ID: {
            AddOrSetCharacterTitle message = AddOrSetCharacterTitle.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__SetDisplayCharacterTitle_ID: {
            SetDisplayCharacterTitle message = SetDisplayCharacterTitle.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__SendClientContractTrackerTable_ID: {
            SendClientContractTrackerTable message = SendClientContractTrackerTable.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__SendClientContractTracker_ID: {
            SendClientContractTracker message = SendClientContractTracker.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__AbandonContract_ID: {
            AbandonContract message = AbandonContract.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        default: {
            handled = false;
            break;
        }
        }

        return(handled);
    }