示例#1
0
        /// <summary>
        /// Accept a friendship request
        /// </summary>
        /// <param name="fromAgentID">agentID of avatatar to form friendship with</param>
        /// <param name="imSessionID">imSessionID of the friendship request message</param>
        public void AcceptFriendship(UUID fromAgentID, UUID imSessionID)
        {
            UUID callingCardFolder = Client.Inventory.FindFolderForType(AssetType.CallingCard);

            AcceptFriendshipPacket request = new AcceptFriendshipPacket();

            request.AgentData.AgentID              = Client.Self.AgentID;
            request.AgentData.SessionID            = Client.Self.SessionID;
            request.TransactionBlock.TransactionID = imSessionID;
            request.FolderData             = new AcceptFriendshipPacket.FolderDataBlock[1];
            request.FolderData[0]          = new AcceptFriendshipPacket.FolderDataBlock();
            request.FolderData[0].FolderID = callingCardFolder;

            Client.Network.SendPacket(request);

            FriendInfo friend = new FriendInfo(fromAgentID, FriendRights.CanSeeOnline,
                                               FriendRights.CanSeeOnline);

            if (!FriendList.ContainsKey(fromAgentID))
            {
                FriendList.Add(friend.UUID, friend);
            }

            if (FriendRequests.ContainsKey(fromAgentID))
            {
                FriendRequests.Remove(fromAgentID);
            }

            Client.Avatars.RequestAvatarName(fromAgentID);
        }
示例#2
0
        /// <summary>
        /// Terminate a friendship with an avatar
        /// </summary>
        /// <param name="agentID">System ID of the avatar you are terminating the friendship with</param>
        public void TerminateFriendship(UUID agentID)
        {
            if (FriendList.ContainsKey(agentID))
            {
                TerminateFriendshipPacket request = new TerminateFriendshipPacket();
                request.AgentData.AgentID   = Client.Self.AgentID;
                request.AgentData.SessionID = Client.Self.SessionID;
                request.ExBlock.OtherID     = agentID;

                Client.Network.SendPacket(request);

                if (FriendList.ContainsKey(agentID))
                {
                    FriendList.Remove(agentID);
                }
            }
        }