From b4680f653dbc1c6f712898af79c4ea22bca3f678 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Wed, 17 Dec 2008 16:11:03 +0000 Subject: * Implement 'Save Object Back to My Inventory'. On the Linden client this is in the Tools menu available when editing an object * This facility allows you to save changes to an object that you've rezzed into a region back into their original inventory item without having to take a copy of the rezzed object. --- .../Environment/Modules/Avatar/Friends/FriendsModule.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Environment/Modules/Avatar') diff --git a/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs index 5bdf32c..e4ed9fa 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs @@ -124,6 +124,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends if (!m_scenes.ContainsKey(scene.RegionInfo.RegionHandle)) m_scenes[scene.RegionInfo.RegionHandle] = scene; } + scene.EventManager.OnNewClient += OnNewClient; scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage; scene.EventManager.OnAvatarEnteringNewParcel += AvatarEnteringParcel; @@ -157,6 +158,11 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends #endregion + /// + /// Receive presence information changes about clients in other regions. + /// + /// + /// public XmlRpcResponse processPresenceUpdateBulk(XmlRpcRequest req) { Hashtable requestData = (Hashtable)req.Params[0]; @@ -171,6 +177,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends lock (m_rootAgents) { List friendsHere = new List(); + try { UUID agentID = new UUID((string)requestData["agentID"]); @@ -728,6 +735,12 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends if (destAgent != null) destAgent.ControllingClient.SendDeclineCallingCard(transactionID); } + /// + /// Send presence information about a client to other clients in both this region and others. + /// + /// + /// + /// private void SendPresenceState(IClientAPI client, List friendList, bool iAmOnline) { m_log.DebugFormat("[FRIEND]: {0} logged {1}; sending presence updates", client.Name, iAmOnline ? "in" : "out"); @@ -756,8 +769,6 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends } } - - // we now have a list of "interesting" friends (which we have to find out on-/offline state for), // friends we want to send our online state to (if *they* are online, too), and // friends we want to receive online state for (currently unknown whether online or not) @@ -799,8 +810,10 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends friendIDsToReceiveFromOnline.Add(uuid); } } + m_log.DebugFormat("[FRIEND]: Sending {0} offline and {1} online friends to {2}", friendIDsToReceiveFromOffline.Count, friendIDsToReceiveFromOnline.Count, client.Name); + if (friendIDsToReceiveFromOffline.Count > 0) client.SendAgentOffline(friendIDsToReceiveFromOffline.ToArray()); if (friendIDsToReceiveFromOnline.Count > 0) client.SendAgentOnline(friendIDsToReceiveFromOnline.ToArray()); -- cgit v1.1