private void OnDenyFriendRequest(IClientAPI client, UUID agentID, UUID friendID, List <UUID> callingCardFolders) { MainConsole.Instance.DebugFormat("[FRIENDS]: {0} denied friendship to {1}", agentID, friendID); FriendInfo[] friends = FriendsService.GetFriendsRequest(agentID).ToArray(); foreach (FriendInfo fi in friends) { if (fi.MyFlags == 0) { UUID fromAgentID; if (!UUID.TryParse(fi.Friend, out fromAgentID)) { continue; } if (fromAgentID == friendID) //Get those pesky HG travelers as well { FriendsService.Delete(agentID, fi.Friend); } } } FriendsService.Delete(friendID, agentID.ToString()); // // Notify the friend // // Try local if (LocalFriendshipDenied(agentID, client.Name, friendID)) { return; } SyncMessagePosterService.PostToServer(SyncMessageHelper.FriendshipDenied( agentID, client.Name, friendID, m_scene.RegionInfo.RegionID)); }
public void OfflineFriendRequest(IClientAPI client) { // Barrowed a few lines from SendFriendsOnlineIfNeeded() above. UUID agentID = client.AgentId; FriendInfo[] friends = FriendsService.GetFriendsRequest(agentID).ToArray(); GridInstantMessage im = new GridInstantMessage(client.Scene, UUID.Zero, String.Empty, agentID, (byte)InstantMessageDialog.FriendshipOffered, "Will you be my friend?", true, Vector3.Zero); foreach (FriendInfo fi in friends) { if (fi.MyFlags == 0) { UUID fromAgentID; if (!UUID.TryParse(fi.Friend, out fromAgentID)) { continue; } UserAccount account = m_scene.UserAccountService.GetUserAccount( client.Scene.RegionInfo.AllScopeIDs, fromAgentID); im.fromAgentID = fromAgentID; if (account != null) { im.fromAgentName = account.Name; } im.offline = 1; im.imSessionID = im.fromAgentID; LocalFriendshipOffered(agentID, im); } } }
public void OfflineFriendRequest(IClientAPI client) { UUID agentID = client.AgentId; var friendRequests = FriendsService.GetFriendsRequest(agentID); if (friendRequests == null) { return; } FriendInfo [] friends = friendRequests.ToArray(); GridInstantMessage im = new GridInstantMessage() { ToAgentID = agentID, Dialog = (byte)InstantMessageDialog.FriendshipOffered, Message = "Will you be my friend?", Offline = 1, RegionID = client.Scene.RegionInfo.RegionID }; foreach (FriendInfo fi in friends) { if (fi.MyFlags == 0) { UUID fromAgentID; if (!UUID.TryParse(fi.Friend, out fromAgentID)) { continue; } UserAccount account = m_scene.UserAccountService.GetUserAccount( client.Scene.RegionInfo.AllScopeIDs, fromAgentID); im.FromAgentID = fromAgentID; if (account != null) { im.FromAgentName = account.Name; } im.Offline = 1; im.SessionID = im.FromAgentID; LocalFriendshipOffered(agentID, im); } } }