diff options
author | Diva Canto | 2010-02-28 12:07:38 -0800 |
---|---|---|
committer | Diva Canto | 2010-02-28 12:07:38 -0800 |
commit | 5c5966545d14de43500b95109e8ce81058ebe2c3 (patch) | |
tree | 732f9f47668141b177a8f6e9e6e6d64aa0ee722d /OpenSim | |
parent | Friends connectors finished. Status notification working across the board. On... (diff) | |
download | opensim-SC-5c5966545d14de43500b95109e8ce81058ebe2c3.zip opensim-SC-5c5966545d14de43500b95109e8ce81058ebe2c3.tar.gz opensim-SC-5c5966545d14de43500b95109e8ce81058ebe2c3.tar.bz2 opensim-SC-5c5966545d14de43500b95109e8ce81058ebe2c3.tar.xz |
Initial Online friends notification seems to be working reliably now. All this needs more testing, but everything is there.
Diffstat (limited to 'OpenSim')
14 files changed, 94 insertions, 36 deletions
diff --git a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs index fcd16b8..167a40c 100644 --- a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs +++ b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs | |||
@@ -597,7 +597,7 @@ namespace OpenSim.Client.MXP.ClientStack | |||
597 | public event DeRezObject OnDeRezObject; | 597 | public event DeRezObject OnDeRezObject; |
598 | public event Action<IClientAPI> OnRegionHandShakeReply; | 598 | public event Action<IClientAPI> OnRegionHandShakeReply; |
599 | public event GenericCall2 OnRequestWearables; | 599 | public event GenericCall2 OnRequestWearables; |
600 | public event GenericCall2 OnCompleteMovementToRegion; | 600 | public event GenericCall1 OnCompleteMovementToRegion; |
601 | public event UpdateAgent OnAgentUpdate; | 601 | public event UpdateAgent OnAgentUpdate; |
602 | public event AgentRequestSit OnAgentRequestSit; | 602 | public event AgentRequestSit OnAgentRequestSit; |
603 | public event AgentSit OnAgentSit; | 603 | public event AgentSit OnAgentSit; |
@@ -906,7 +906,7 @@ namespace OpenSim.Client.MXP.ClientStack | |||
906 | 906 | ||
907 | if (OnCompleteMovementToRegion != null) | 907 | if (OnCompleteMovementToRegion != null) |
908 | { | 908 | { |
909 | OnCompleteMovementToRegion(); | 909 | OnCompleteMovementToRegion(this); |
910 | } | 910 | } |
911 | 911 | ||
912 | // Need to translate to MXP somehow | 912 | // Need to translate to MXP somehow |
diff --git a/OpenSim/Client/Sirikata/ClientStack/SirikataClientView.cs b/OpenSim/Client/Sirikata/ClientStack/SirikataClientView.cs index 208065c..6185164 100644 --- a/OpenSim/Client/Sirikata/ClientStack/SirikataClientView.cs +++ b/OpenSim/Client/Sirikata/ClientStack/SirikataClientView.cs | |||
@@ -243,7 +243,7 @@ namespace OpenSim.Client.Sirikata.ClientStack | |||
243 | public event DeRezObject OnDeRezObject; | 243 | public event DeRezObject OnDeRezObject; |
244 | public event Action<IClientAPI> OnRegionHandShakeReply; | 244 | public event Action<IClientAPI> OnRegionHandShakeReply; |
245 | public event GenericCall2 OnRequestWearables; | 245 | public event GenericCall2 OnRequestWearables; |
246 | public event GenericCall2 OnCompleteMovementToRegion; | 246 | public event GenericCall1 OnCompleteMovementToRegion; |
247 | public event UpdateAgent OnAgentUpdate; | 247 | public event UpdateAgent OnAgentUpdate; |
248 | public event AgentRequestSit OnAgentRequestSit; | 248 | public event AgentRequestSit OnAgentRequestSit; |
249 | public event AgentSit OnAgentSit; | 249 | public event AgentSit OnAgentSit; |
diff --git a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs index 2b1b11f..7a32e7f 100644 --- a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs +++ b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs | |||
@@ -246,7 +246,7 @@ namespace OpenSim.Client.VWoHTTP.ClientStack | |||
246 | public event DeRezObject OnDeRezObject = delegate { }; | 246 | public event DeRezObject OnDeRezObject = delegate { }; |
247 | public event Action<IClientAPI> OnRegionHandShakeReply = delegate { }; | 247 | public event Action<IClientAPI> OnRegionHandShakeReply = delegate { }; |
248 | public event GenericCall2 OnRequestWearables = delegate { }; | 248 | public event GenericCall2 OnRequestWearables = delegate { }; |
249 | public event GenericCall2 OnCompleteMovementToRegion = delegate { }; | 249 | public event GenericCall1 OnCompleteMovementToRegion = delegate { }; |
250 | public event UpdateAgent OnAgentUpdate = delegate { }; | 250 | public event UpdateAgent OnAgentUpdate = delegate { }; |
251 | public event AgentRequestSit OnAgentRequestSit = delegate { }; | 251 | public event AgentRequestSit OnAgentRequestSit = delegate { }; |
252 | public event AgentSit OnAgentSit = delegate { }; | 252 | public event AgentSit OnAgentSit = delegate { }; |
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 10a091a..4003b7e 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -93,6 +93,8 @@ namespace OpenSim.Framework | |||
93 | 93 | ||
94 | public delegate void SetAlwaysRun(IClientAPI remoteClient, bool SetAlwaysRun); | 94 | public delegate void SetAlwaysRun(IClientAPI remoteClient, bool SetAlwaysRun); |
95 | 95 | ||
96 | public delegate void GenericCall1(IClientAPI remoteClient); | ||
97 | |||
96 | public delegate void GenericCall2(); | 98 | public delegate void GenericCall2(); |
97 | 99 | ||
98 | // really don't want to be passing packets in these events, so this is very temporary. | 100 | // really don't want to be passing packets in these events, so this is very temporary. |
@@ -878,7 +880,7 @@ namespace OpenSim.Framework | |||
878 | event DeRezObject OnDeRezObject; | 880 | event DeRezObject OnDeRezObject; |
879 | event Action<IClientAPI> OnRegionHandShakeReply; | 881 | event Action<IClientAPI> OnRegionHandShakeReply; |
880 | event GenericCall2 OnRequestWearables; | 882 | event GenericCall2 OnRequestWearables; |
881 | event GenericCall2 OnCompleteMovementToRegion; | 883 | event GenericCall1 OnCompleteMovementToRegion; |
882 | event UpdateAgent OnAgentUpdate; | 884 | event UpdateAgent OnAgentUpdate; |
883 | event AgentRequestSit OnAgentRequestSit; | 885 | event AgentRequestSit OnAgentRequestSit; |
884 | event AgentSit OnAgentSit; | 886 | event AgentSit OnAgentSit; |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index afc5270..c185640 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -121,7 +121,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
121 | public event ObjectAttach OnObjectAttach; | 121 | public event ObjectAttach OnObjectAttach; |
122 | public event ObjectDeselect OnObjectDetach; | 122 | public event ObjectDeselect OnObjectDetach; |
123 | public event ObjectDrop OnObjectDrop; | 123 | public event ObjectDrop OnObjectDrop; |
124 | public event GenericCall2 OnCompleteMovementToRegion; | 124 | public event GenericCall1 OnCompleteMovementToRegion; |
125 | public event UpdateAgent OnAgentUpdate; | 125 | public event UpdateAgent OnAgentUpdate; |
126 | public event AgentRequestSit OnAgentRequestSit; | 126 | public event AgentRequestSit OnAgentRequestSit; |
127 | public event AgentSit OnAgentSit; | 127 | public event AgentSit OnAgentSit; |
@@ -5737,10 +5737,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5737 | 5737 | ||
5738 | private bool HandleCompleteAgentMovement(IClientAPI sender, Packet Pack) | 5738 | private bool HandleCompleteAgentMovement(IClientAPI sender, Packet Pack) |
5739 | { | 5739 | { |
5740 | GenericCall2 handlerCompleteMovementToRegion = OnCompleteMovementToRegion; | 5740 | GenericCall1 handlerCompleteMovementToRegion = OnCompleteMovementToRegion; |
5741 | if (handlerCompleteMovementToRegion != null) | 5741 | if (handlerCompleteMovementToRegion != null) |
5742 | { | 5742 | { |
5743 | handlerCompleteMovementToRegion(); | 5743 | handlerCompleteMovementToRegion(sender); |
5744 | } | 5744 | } |
5745 | handlerCompleteMovementToRegion = null; | 5745 | handlerCompleteMovementToRegion = null; |
5746 | 5746 | ||
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index cc3a3ee..8aa5b91 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | |||
@@ -79,6 +79,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
79 | protected Dictionary<UUID, UserFriendData> m_Friends = | 79 | protected Dictionary<UUID, UserFriendData> m_Friends = |
80 | new Dictionary<UUID, UserFriendData>(); | 80 | new Dictionary<UUID, UserFriendData>(); |
81 | 81 | ||
82 | protected List<UUID> m_NeedsListOfFriends = new List<UUID>(); | ||
83 | |||
82 | protected IPresenceService PresenceService | 84 | protected IPresenceService PresenceService |
83 | { | 85 | { |
84 | get | 86 | get |
@@ -170,6 +172,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
170 | scene.EventManager.OnClientClosed += OnClientClosed; | 172 | scene.EventManager.OnClientClosed += OnClientClosed; |
171 | scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; | 173 | scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; |
172 | scene.EventManager.OnMakeChildAgent += OnMakeChildAgent; | 174 | scene.EventManager.OnMakeChildAgent += OnMakeChildAgent; |
175 | scene.EventManager.OnClientLogin += OnClientLogin; | ||
173 | } | 176 | } |
174 | 177 | ||
175 | public void RegionLoaded(Scene scene) | 178 | public void RegionLoaded(Scene scene) |
@@ -220,7 +223,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
220 | client.OnGrantUserRights += OnGrantUserRights; | 223 | client.OnGrantUserRights += OnGrantUserRights; |
221 | 224 | ||
222 | client.OnLogout += OnLogout; | 225 | client.OnLogout += OnLogout; |
223 | client.OnEconomyDataRequest += SendPresence; | ||
224 | 226 | ||
225 | if (m_Friends.ContainsKey(client.AgentId)) | 227 | if (m_Friends.ContainsKey(client.AgentId)) |
226 | { | 228 | { |
@@ -285,30 +287,50 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
285 | } | 287 | } |
286 | } | 288 | } |
287 | 289 | ||
288 | private void SendPresence(UUID agentID) | 290 | private void OnClientLogin(IClientAPI client) |
289 | { | 291 | { |
292 | UUID agentID = client.AgentId; | ||
293 | |||
290 | // Inform the friends that this user is online | 294 | // Inform the friends that this user is online |
291 | StatusChange(agentID, true); | 295 | StatusChange(agentID, true); |
292 | 296 | ||
293 | // Now send the list of online friends to this user | 297 | // Register that we need to send the list of online friends to this user |
294 | if (!m_Friends.ContainsKey(agentID)) | 298 | lock (m_NeedsListOfFriends) |
295 | { | 299 | if (!m_NeedsListOfFriends.Contains(agentID)) |
296 | m_log.DebugFormat("[FRIENDS MODULE]: agent {0} not found in local cache", agentID); | 300 | { |
297 | return; | 301 | m_NeedsListOfFriends.Add(agentID); |
298 | } | 302 | } |
303 | } | ||
299 | 304 | ||
300 | IClientAPI client = LocateClientObject(agentID); | 305 | public void SendFriendsOnlineIfNeeded(IClientAPI client) |
301 | if (client == null) | 306 | { |
307 | UUID agentID = client.AgentId; | ||
308 | if (m_NeedsListOfFriends.Contains(agentID)) | ||
302 | { | 309 | { |
303 | m_log.DebugFormat("[FRIENDS MODULE]: agent's client {0} not found in local scene", agentID); | 310 | if (!m_Friends.ContainsKey(agentID)) |
304 | return; | 311 | { |
305 | } | 312 | m_log.DebugFormat("[FRIENDS MODULE]: agent {0} not found in local cache", agentID); |
313 | return; | ||
314 | } | ||
315 | |||
316 | client = LocateClientObject(agentID); | ||
317 | if (client == null) | ||
318 | { | ||
319 | m_log.DebugFormat("[FRIENDS MODULE]: agent's client {0} not found in local scene", agentID); | ||
320 | return; | ||
321 | } | ||
306 | 322 | ||
307 | List<UUID> online = GetOnlineFriends(agentID); | 323 | List<UUID> online = GetOnlineFriends(agentID); |
308 | 324 | ||
309 | m_log.DebugFormat("[FRIENDS]: User {0} in region {1} has {2} friends online", client.AgentId, client.Scene.RegionInfo.RegionName, online.Count); | 325 | if (online.Count > 0) |
310 | client.SendAgentOnline(online.ToArray()); | 326 | { |
327 | m_log.DebugFormat("[FRIENDS MODULE]: User {0} in region {1} has {2} friends online", client.AgentId, client.Scene.RegionInfo.RegionName, online.Count); | ||
328 | client.SendAgentOnline(online.ToArray()); | ||
329 | } | ||
311 | 330 | ||
331 | lock (m_NeedsListOfFriends) | ||
332 | m_NeedsListOfFriends.Remove(agentID); | ||
333 | } | ||
312 | } | 334 | } |
313 | 335 | ||
314 | List<UUID> GetOnlineFriends(UUID userID) | 336 | List<UUID> GetOnlineFriends(UUID userID) |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 2c5c6e9..bb0d43b 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -83,7 +83,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
83 | public event DeRezObject OnDeRezObject; | 83 | public event DeRezObject OnDeRezObject; |
84 | public event Action<IClientAPI> OnRegionHandShakeReply; | 84 | public event Action<IClientAPI> OnRegionHandShakeReply; |
85 | public event GenericCall2 OnRequestWearables; | 85 | public event GenericCall2 OnRequestWearables; |
86 | public event GenericCall2 OnCompleteMovementToRegion; | 86 | public event GenericCall1 OnCompleteMovementToRegion; |
87 | public event UpdateAgent OnAgentUpdate; | 87 | public event UpdateAgent OnAgentUpdate; |
88 | public event AgentRequestSit OnAgentRequestSit; | 88 | public event AgentRequestSit OnAgentRequestSit; |
89 | public event AgentSit OnAgentSit; | 89 | public event AgentSit OnAgentSit; |
@@ -659,7 +659,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
659 | 659 | ||
660 | if (OnCompleteMovementToRegion != null) | 660 | if (OnCompleteMovementToRegion != null) |
661 | { | 661 | { |
662 | OnCompleteMovementToRegion(); | 662 | OnCompleteMovementToRegion(this); |
663 | } | 663 | } |
664 | } | 664 | } |
665 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) | 665 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) |
diff --git a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs index 239a2ba..a0a1e3a 100644 --- a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs | |||
@@ -47,5 +47,6 @@ namespace OpenSim.Region.Framework.Interfaces | |||
47 | /// <param name="offerMessage"></param> | 47 | /// <param name="offerMessage"></param> |
48 | void OfferFriendship(UUID fromUserId, IClientAPI toUserClient, string offerMessage); | 48 | void OfferFriendship(UUID fromUserId, IClientAPI toUserClient, string offerMessage); |
49 | uint GetFriendPerms(UUID PrincipalID, UUID FriendID); | 49 | uint GetFriendPerms(UUID PrincipalID, UUID FriendID); |
50 | void SendFriendsOnlineIfNeeded(IClientAPI client); | ||
50 | } | 51 | } |
51 | } | 52 | } |
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 57e1c37..ac04462 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -66,13 +66,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
66 | public event OnClientConnectCoreDelegate OnClientConnect; | 66 | public event OnClientConnectCoreDelegate OnClientConnect; |
67 | 67 | ||
68 | public delegate void OnNewClientDelegate(IClientAPI client); | 68 | public delegate void OnNewClientDelegate(IClientAPI client); |
69 | 69 | ||
70 | /// <summary> | 70 | /// <summary> |
71 | /// Deprecated in favour of OnClientConnect. | 71 | /// Deprecated in favour of OnClientConnect. |
72 | /// Will be marked Obsolete after IClientCore has 100% of IClientAPI interfaces. | 72 | /// Will be marked Obsolete after IClientCore has 100% of IClientAPI interfaces. |
73 | /// </summary> | 73 | /// </summary> |
74 | public event OnNewClientDelegate OnNewClient; | 74 | public event OnNewClientDelegate OnNewClient; |
75 | 75 | ||
76 | public delegate void OnClientLoginDelegate(IClientAPI client); | ||
77 | public event OnClientLoginDelegate OnClientLogin; | ||
78 | |||
76 | public delegate void OnNewPresenceDelegate(ScenePresence presence); | 79 | public delegate void OnNewPresenceDelegate(ScenePresence presence); |
77 | 80 | ||
78 | public event OnNewPresenceDelegate OnNewPresence; | 81 | public event OnNewPresenceDelegate OnNewPresence; |
@@ -583,6 +586,28 @@ namespace OpenSim.Region.Framework.Scenes | |||
583 | } | 586 | } |
584 | } | 587 | } |
585 | 588 | ||
589 | public void TriggerOnClientLogin(IClientAPI client) | ||
590 | { | ||
591 | OnClientLoginDelegate handlerClientLogin = OnClientLogin; | ||
592 | if (handlerClientLogin != null) | ||
593 | { | ||
594 | foreach (OnClientLoginDelegate d in handlerClientLogin.GetInvocationList()) | ||
595 | { | ||
596 | try | ||
597 | { | ||
598 | d(client); | ||
599 | } | ||
600 | catch (Exception e) | ||
601 | { | ||
602 | m_log.ErrorFormat( | ||
603 | "[EVENT MANAGER]: Delegate for TriggerOnClientLogin failed - continuing. {0} {1}", | ||
604 | e.Message, e.StackTrace); | ||
605 | } | ||
606 | } | ||
607 | } | ||
608 | |||
609 | } | ||
610 | |||
586 | public void TriggerOnNewPresence(ScenePresence presence) | 611 | public void TriggerOnNewPresence(ScenePresence presence) |
587 | { | 612 | { |
588 | OnNewPresenceDelegate handlerNewPresence = OnNewPresence; | 613 | OnNewPresenceDelegate handlerNewPresence = OnNewPresence; |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index b9b16ad..d00c990 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2422,6 +2422,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2422 | /// <param name="client"></param> | 2422 | /// <param name="client"></param> |
2423 | public override void AddNewClient(IClientAPI client) | 2423 | public override void AddNewClient(IClientAPI client) |
2424 | { | 2424 | { |
2425 | bool vialogin = false; | ||
2426 | |||
2425 | m_clientManager.Add(client); | 2427 | m_clientManager.Add(client); |
2426 | 2428 | ||
2427 | CheckHeartbeat(); | 2429 | CheckHeartbeat(); |
@@ -2463,6 +2465,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2463 | if ((aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0) | 2465 | if ((aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0) |
2464 | { | 2466 | { |
2465 | m_log.DebugFormat("[Scene]: Incoming client {0} {1} in region {2} via Login", aCircuit.firstname, aCircuit.lastname, RegionInfo.RegionName); | 2467 | m_log.DebugFormat("[Scene]: Incoming client {0} {1} in region {2} via Login", aCircuit.firstname, aCircuit.lastname, RegionInfo.RegionName); |
2468 | vialogin = true; | ||
2466 | IUserAgentVerificationModule userVerification = RequestModuleInterface<IUserAgentVerificationModule>(); | 2469 | IUserAgentVerificationModule userVerification = RequestModuleInterface<IUserAgentVerificationModule>(); |
2467 | if (userVerification != null) | 2470 | if (userVerification != null) |
2468 | { | 2471 | { |
@@ -2512,7 +2515,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2512 | 2515 | ||
2513 | m_LastLogin = Util.EnvironmentTickCount(); | 2516 | m_LastLogin = Util.EnvironmentTickCount(); |
2514 | EventManager.TriggerOnNewClient(client); | 2517 | EventManager.TriggerOnNewClient(client); |
2515 | 2518 | if (vialogin) | |
2519 | EventManager.TriggerOnClientLogin(client); | ||
2516 | } | 2520 | } |
2517 | 2521 | ||
2518 | 2522 | ||
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index af9afa6..f83a4d2 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1114,7 +1114,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1114 | /// This is called upon a very important packet sent from the client, | 1114 | /// This is called upon a very important packet sent from the client, |
1115 | /// so it's client-controlled. Never call this method directly. | 1115 | /// so it's client-controlled. Never call this method directly. |
1116 | /// </summary> | 1116 | /// </summary> |
1117 | public void CompleteMovement() | 1117 | public void CompleteMovement(IClientAPI client) |
1118 | { | 1118 | { |
1119 | //m_log.Debug("[SCENE PRESENCE]: CompleteMovement"); | 1119 | //m_log.Debug("[SCENE PRESENCE]: CompleteMovement"); |
1120 | 1120 | ||
@@ -1159,6 +1159,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
1159 | m_agentTransfer.EnableChildAgents(this); | 1159 | m_agentTransfer.EnableChildAgents(this); |
1160 | else | 1160 | else |
1161 | m_log.DebugFormat("[SCENE PRESENCE]: Unable to create child agents in neighbours, because AgentTransferModule is not active"); | 1161 | m_log.DebugFormat("[SCENE PRESENCE]: Unable to create child agents in neighbours, because AgentTransferModule is not active"); |
1162 | |||
1163 | IFriendsModule friendsModule = m_scene.RequestModuleInterface<IFriendsModule>(); | ||
1164 | if (friendsModule != null) | ||
1165 | friendsModule.SendFriendsOnlineIfNeeded(ControllingClient); | ||
1162 | } | 1166 | } |
1163 | 1167 | ||
1164 | } | 1168 | } |
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs index f54733d..92e5a13 100644 --- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs +++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs | |||
@@ -679,7 +679,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server | |||
679 | public event DeRezObject OnDeRezObject; | 679 | public event DeRezObject OnDeRezObject; |
680 | public event Action<IClientAPI> OnRegionHandShakeReply; | 680 | public event Action<IClientAPI> OnRegionHandShakeReply; |
681 | public event GenericCall2 OnRequestWearables; | 681 | public event GenericCall2 OnRequestWearables; |
682 | public event GenericCall2 OnCompleteMovementToRegion; | 682 | public event GenericCall1 OnCompleteMovementToRegion; |
683 | public event UpdateAgent OnAgentUpdate; | 683 | public event UpdateAgent OnAgentUpdate; |
684 | public event AgentRequestSit OnAgentRequestSit; | 684 | public event AgentRequestSit OnAgentRequestSit; |
685 | public event AgentSit OnAgentSit; | 685 | public event AgentSit OnAgentSit; |
@@ -913,7 +913,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server | |||
913 | 913 | ||
914 | if (OnCompleteMovementToRegion != null) | 914 | if (OnCompleteMovementToRegion != null) |
915 | { | 915 | { |
916 | OnCompleteMovementToRegion(); | 916 | OnCompleteMovementToRegion(this); |
917 | } | 917 | } |
918 | } | 918 | } |
919 | 919 | ||
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs index ea46945..17453f1 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs | |||
@@ -189,7 +189,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
189 | public event DeRezObject OnDeRezObject; | 189 | public event DeRezObject OnDeRezObject; |
190 | public event Action<IClientAPI> OnRegionHandShakeReply; | 190 | public event Action<IClientAPI> OnRegionHandShakeReply; |
191 | public event GenericCall2 OnRequestWearables; | 191 | public event GenericCall2 OnRequestWearables; |
192 | public event GenericCall2 OnCompleteMovementToRegion; | 192 | public event GenericCall1 OnCompleteMovementToRegion; |
193 | public event UpdateAgent OnAgentUpdate; | 193 | public event UpdateAgent OnAgentUpdate; |
194 | public event AgentRequestSit OnAgentRequestSit; | 194 | public event AgentRequestSit OnAgentRequestSit; |
195 | public event AgentSit OnAgentSit; | 195 | public event AgentSit OnAgentSit; |
@@ -744,7 +744,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC | |||
744 | 744 | ||
745 | if (OnCompleteMovementToRegion != null) | 745 | if (OnCompleteMovementToRegion != null) |
746 | { | 746 | { |
747 | OnCompleteMovementToRegion(); | 747 | OnCompleteMovementToRegion(this); |
748 | } | 748 | } |
749 | } | 749 | } |
750 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) | 750 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) |
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs index 873b3ac..803b352 100644 --- a/OpenSim/Tests/Common/Mock/TestClient.cs +++ b/OpenSim/Tests/Common/Mock/TestClient.cs | |||
@@ -95,7 +95,7 @@ namespace OpenSim.Tests.Common.Mock | |||
95 | public event DeRezObject OnDeRezObject; | 95 | public event DeRezObject OnDeRezObject; |
96 | public event Action<IClientAPI> OnRegionHandShakeReply; | 96 | public event Action<IClientAPI> OnRegionHandShakeReply; |
97 | public event GenericCall2 OnRequestWearables; | 97 | public event GenericCall2 OnRequestWearables; |
98 | public event GenericCall2 OnCompleteMovementToRegion; | 98 | public event GenericCall1 OnCompleteMovementToRegion; |
99 | public event UpdateAgent OnAgentUpdate; | 99 | public event UpdateAgent OnAgentUpdate; |
100 | public event AgentRequestSit OnAgentRequestSit; | 100 | public event AgentRequestSit OnAgentRequestSit; |
101 | public event AgentSit OnAgentSit; | 101 | public event AgentSit OnAgentSit; |
@@ -453,7 +453,7 @@ namespace OpenSim.Tests.Common.Mock | |||
453 | 453 | ||
454 | public void CompleteMovement() | 454 | public void CompleteMovement() |
455 | { | 455 | { |
456 | OnCompleteMovementToRegion(); | 456 | OnCompleteMovementToRegion(this); |
457 | } | 457 | } |
458 | 458 | ||
459 | public virtual void ActivateGesture(UUID assetId, UUID gestureId) | 459 | public virtual void ActivateGesture(UUID assetId, UUID gestureId) |
@@ -752,7 +752,7 @@ namespace OpenSim.Tests.Common.Mock | |||
752 | 752 | ||
753 | if (OnCompleteMovementToRegion != null) | 753 | if (OnCompleteMovementToRegion != null) |
754 | { | 754 | { |
755 | OnCompleteMovementToRegion(); | 755 | OnCompleteMovementToRegion(this); |
756 | } | 756 | } |
757 | } | 757 | } |
758 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) | 758 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) |