/// <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); }
/// <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); } } }