aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2014-08-15 21:34:58 +0100
committerJustin Clark-Casey (justincc)2014-08-15 21:47:34 +0100
commit91e1aaa5d41c29fa17609c69ca8bc2a8017dc161 (patch)
tree32ff0f7767c9090052261da81b9903063c0d5838 /OpenSim
parentAdded RestrictEmail to make llEmail only send to avatars email address if true. (diff)
downloadopensim-SC_OLD-91e1aaa5d41c29fa17609c69ca8bc2a8017dc161.zip
opensim-SC_OLD-91e1aaa5d41c29fa17609c69ca8bc2a8017dc161.tar.gz
opensim-SC_OLD-91e1aaa5d41c29fa17609c69ca8bc2a8017dc161.tar.bz2
opensim-SC_OLD-91e1aaa5d41c29fa17609c69ca8bc2a8017dc161.tar.xz
On teleport to a region that already has a child agent established (e.g. a neighbour) don't resend all the initial avatar and object data again.
This is unnecessary since it has been received (and data continues to be received) in the existing child connection.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Addons/Groups/GroupsModule.cs2
-rw-r--r--OpenSim/Framework/ISceneAgent.cs2
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs75
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs2
7 files changed, 50 insertions, 39 deletions
diff --git a/OpenSim/Addons/Groups/GroupsModule.cs b/OpenSim/Addons/Groups/GroupsModule.cs
index 2831326..d121d1a 100644
--- a/OpenSim/Addons/Groups/GroupsModule.cs
+++ b/OpenSim/Addons/Groups/GroupsModule.cs
@@ -1296,7 +1296,7 @@ namespace OpenSim.Groups
1296 presence.Grouptitle = Title; 1296 presence.Grouptitle = Title;
1297 1297
1298 if (! presence.IsChildAgent) 1298 if (! presence.IsChildAgent)
1299 presence.SendAvatarDataToAllAgents(); 1299 presence.SendAvatarDataToAllClients();
1300 } 1300 }
1301 } 1301 }
1302 } 1302 }
diff --git a/OpenSim/Framework/ISceneAgent.cs b/OpenSim/Framework/ISceneAgent.cs
index 563d906..1e8f896 100644
--- a/OpenSim/Framework/ISceneAgent.cs
+++ b/OpenSim/Framework/ISceneAgent.cs
@@ -71,7 +71,7 @@ namespace OpenSim.Framework
71 /// <remarks> 71 /// <remarks>
72 /// This includes scene object data and the appearance data of other avatars. 72 /// This includes scene object data and the appearance data of other avatars.
73 /// </remarks> 73 /// </remarks>
74 void SendInitialDataToMe(); 74 void SendInitialDataToClient();
75 75
76 /// <summary> 76 /// <summary>
77 /// Direction in which the scene presence is looking. 77 /// Direction in which the scene presence is looking.
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 5a9646a..0df22bf 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -1741,7 +1741,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1741 bool tp = (aCircuit.teleportFlags > 0); 1741 bool tp = (aCircuit.teleportFlags > 0);
1742 // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from 1742 // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from
1743 if (!tp) 1743 if (!tp)
1744 client.SceneAgent.SendInitialDataToMe(); 1744 client.SceneAgent.SendInitialDataToClient();
1745 } 1745 }
1746 } 1746 }
1747 else 1747 else
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index 9f99143..d8c159f 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -251,7 +251,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
251 private void SendAppearance(ScenePresence sp) 251 private void SendAppearance(ScenePresence sp)
252 { 252 {
253 // Send the appearance to everyone in the scene 253 // Send the appearance to everyone in the scene
254 sp.SendAppearanceToAllOtherAgents(); 254 sp.SendAppearanceToAllOtherClients();
255 255
256 // Send animations back to the avatar as well 256 // Send animations back to the avatar as well
257 sp.Animator.SendAnimPack(); 257 sp.Animator.SendAnimPack();
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 5007995..c43633c 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1786,8 +1786,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1786 m_entityTransferStateMachine.ResetFromTransit(agent.UUID); 1786 m_entityTransferStateMachine.ResetFromTransit(agent.UUID);
1787 1787
1788 // now we have a child agent in this region. Request all interesting data about other (root) agents 1788 // now we have a child agent in this region. Request all interesting data about other (root) agents
1789 agent.SendOtherAgentsAvatarDataToMe(); 1789 agent.SendOtherAgentsAvatarDataToClient();
1790 agent.SendOtherAgentsAppearanceToMe(); 1790 agent.SendOtherAgentsAppearanceToClient();
1791 1791
1792 // Backwards compatibility. Best effort 1792 // Backwards compatibility. Best effort
1793 if (version == "Unknown" || version == string.Empty) 1793 if (version == "Unknown" || version == string.Empty)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 9ea0269..272fa16 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -287,6 +287,11 @@ namespace OpenSim.Region.Framework.Scenes
287 } 287 }
288 288
289 /// <summary> 289 /// <summary>
290 /// Set if initial data about the scene (avatars, objects) has been sent to the ControllingClient.
291 /// </summary>
292 public bool SentInitialDataToClient { get; private set; }
293
294 /// <summary>
290 /// Copy of the script states while the agent is in transit. This state may 295 /// Copy of the script states while the agent is in transit. This state may
291 /// need to be placed back in case of transfer fail. 296 /// need to be placed back in case of transfer fail.
292 /// </summary> 297 /// </summary>
@@ -1256,7 +1261,7 @@ namespace OpenSim.Region.Framework.Scenes
1256 } 1261 }
1257 } 1262 }
1258 1263
1259 SendAvatarDataToAllAgents(); 1264 SendAvatarDataToAllClients();
1260 1265
1261 // send the animations of the other presences to me 1266 // send the animations of the other presences to me
1262 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) 1267 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence)
@@ -1296,7 +1301,7 @@ namespace OpenSim.Region.Framework.Scenes
1296 m_log.DebugFormat("[SCENE PRESENCE]: Forcing viewers to update the avatar name for " + Name); 1301 m_log.DebugFormat("[SCENE PRESENCE]: Forcing viewers to update the avatar name for " + Name);
1297 1302
1298 UseFakeGroupTitle = true; 1303 UseFakeGroupTitle = true;
1299 SendAvatarDataToAllAgents(false); 1304 SendAvatarDataToAllClients(false);
1300 1305
1301 Util.FireAndForget(o => 1306 Util.FireAndForget(o =>
1302 { 1307 {
@@ -1307,7 +1312,7 @@ namespace OpenSim.Region.Framework.Scenes
1307 Thread.Sleep(5000); 1312 Thread.Sleep(5000);
1308 1313
1309 UseFakeGroupTitle = false; 1314 UseFakeGroupTitle = false;
1310 SendAvatarDataToAllAgents(false); 1315 SendAvatarDataToAllClients(false);
1311 }); 1316 });
1312 } 1317 }
1313 1318
@@ -1742,9 +1747,9 @@ namespace OpenSim.Region.Framework.Scenes
1742 // Tell the client that we're totally ready 1747 // Tell the client that we're totally ready
1743 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look); 1748 ControllingClient.MoveAgentIntoRegion(m_scene.RegionInfo, AbsolutePosition, look);
1744 1749
1745 // Remember in HandleUseCircuitCode, we delayed this to here 1750 // Child agents send initial data up in LLUDPServer.HandleUseCircuitCode()
1746 if (m_teleportFlags > 0) 1751 if (!SentInitialDataToClient)
1747 SendInitialDataToMe(); 1752 SendInitialDataToClient();
1748 1753
1749 // m_log.DebugFormat("[SCENE PRESENCE] Completed movement"); 1754 // m_log.DebugFormat("[SCENE PRESENCE] Completed movement");
1750 1755
@@ -2652,7 +2657,7 @@ namespace OpenSim.Region.Framework.Scenes
2652 2657
2653 if (satOnObject) 2658 if (satOnObject)
2654 { 2659 {
2655 SendAvatarDataToAllAgents(); 2660 SendAvatarDataToAllClients();
2656 m_requestedSitTargetID = 0; 2661 m_requestedSitTargetID = 0;
2657 2662
2658 part.RemoveSittingAvatar(this); 2663 part.RemoveSittingAvatar(this);
@@ -2947,7 +2952,7 @@ namespace OpenSim.Region.Framework.Scenes
2947 Animator.TrySetMovementAnimation("SIT_GROUND"); 2952 Animator.TrySetMovementAnimation("SIT_GROUND");
2948 else 2953 else
2949 Animator.TrySetMovementAnimation("SIT"); 2954 Animator.TrySetMovementAnimation("SIT");
2950 SendAvatarDataToAllAgents(); 2955 SendAvatarDataToAllClients();
2951 2956
2952 part.ParentGroup.TriggerScriptChangedEvent(Changed.LINK); 2957 part.ParentGroup.TriggerScriptChangedEvent(Changed.LINK);
2953 } 2958 }
@@ -3062,7 +3067,7 @@ namespace OpenSim.Region.Framework.Scenes
3062 sitAnimation = part.SitAnimation; 3067 sitAnimation = part.SitAnimation;
3063 } 3068 }
3064 Animator.TrySetMovementAnimation(sitAnimation); 3069 Animator.TrySetMovementAnimation(sitAnimation);
3065 SendAvatarDataToAllAgents(); 3070 SendAvatarDataToAllClients();
3066 TriggerScenePresenceUpdated(); 3071 TriggerScenePresenceUpdated();
3067 } 3072 }
3068 } 3073 }
@@ -3185,7 +3190,7 @@ namespace OpenSim.Region.Framework.Scenes
3185 // grab the latest PhysicsActor velocity, whereas m_velocity is often 3190 // grab the latest PhysicsActor velocity, whereas m_velocity is often
3186 // storing a requested force instead of an actual traveling velocity 3191 // storing a requested force instead of an actual traveling velocity
3187 if (Appearance.AvatarSize != m_lastSize && !IsLoggingIn) 3192 if (Appearance.AvatarSize != m_lastSize && !IsLoggingIn)
3188 SendAvatarDataToAllAgents(); 3193 SendAvatarDataToAllClients();
3189 3194
3190 // Allow any updates for sitting avatars to that llSetPrimitiveLinkParams() can work for very 3195 // Allow any updates for sitting avatars to that llSetPrimitiveLinkParams() can work for very
3191 // small increments (e.g. sit position adjusters). An alternative may be to eliminate the tolerance 3196 // small increments (e.g. sit position adjusters). An alternative may be to eliminate the tolerance
@@ -3339,16 +3344,22 @@ namespace OpenSim.Region.Framework.Scenes
3339 ControllingClient.SendCoarseLocationUpdate(avatarUUIDs, coarseLocations); 3344 ControllingClient.SendCoarseLocationUpdate(avatarUUIDs, coarseLocations);
3340 } 3345 }
3341 3346
3342 public void SendInitialDataToMe() 3347 public void SendInitialDataToClient()
3343 { 3348 {
3349 SentInitialDataToClient = true;
3350
3344 // Send all scene object to the new client 3351 // Send all scene object to the new client
3345 Util.RunThreadNoTimeout(delegate 3352 Util.RunThreadNoTimeout(delegate
3346 { 3353 {
3354 m_log.DebugFormat(
3355 "[SCENE PRESENCE]: Sending initial data to {0} agent {1} in {2}, tp flags {3}",
3356 IsChildAgent ? "child" : "root", Name, Scene.Name, m_teleportFlags);
3357
3347 // we created a new ScenePresence (a new child agent) in a fresh region. 3358 // we created a new ScenePresence (a new child agent) in a fresh region.
3348 // Request info about all the (root) agents in this region 3359 // Request info about all the (root) agents in this region
3349 // Note: This won't send data *to* other clients in that region (children don't send) 3360 // Note: This won't send data *to* other clients in that region (children don't send)
3350 SendOtherAgentsAvatarDataToMe(); 3361 SendOtherAgentsAvatarDataToClient();
3351 SendOtherAgentsAppearanceToMe(); 3362 SendOtherAgentsAppearanceToClient();
3352 3363
3353 EntityBase[] entities = Scene.Entities.GetEntities(); 3364 EntityBase[] entities = Scene.Entities.GetEntities();
3354 foreach (EntityBase e in entities) 3365 foreach (EntityBase e in entities)
@@ -3357,7 +3368,7 @@ namespace OpenSim.Region.Framework.Scenes
3357 ((SceneObjectGroup)e).SendFullUpdateToClient(ControllingClient); 3368 ((SceneObjectGroup)e).SendFullUpdateToClient(ControllingClient);
3358 } 3369 }
3359 3370
3360 }, "SendInitialDataToMe", null); 3371 }, "SendInitialDataToClient", null);
3361 } 3372 }
3362 3373
3363 /// <summary> 3374 /// <summary>
@@ -3390,10 +3401,10 @@ namespace OpenSim.Region.Framework.Scenes
3390 // getting other avatars information was initiated elsewhere immediately after the child circuit connected... don't do it 3401 // getting other avatars information was initiated elsewhere immediately after the child circuit connected... don't do it
3391 // again here... this comes after the cached appearance check because the avatars 3402 // again here... this comes after the cached appearance check because the avatars
3392 // appearance goes into the avatar update packet 3403 // appearance goes into the avatar update packet
3393 SendAvatarDataToAllAgents(); 3404 SendAvatarDataToAllClients();
3394 3405
3395 // This invocation always shows up in the viewer logs as an error. Is it needed? 3406 // This invocation always shows up in the viewer logs as an error. Is it needed?
3396 SendAppearanceToAgent(this); 3407 SendAppearanceToClient(this);
3397 3408
3398 // If we are using the the cached appearance then send it out to everyone 3409 // If we are using the the cached appearance then send it out to everyone
3399 if (cachedappearance) 3410 if (cachedappearance)
@@ -3403,20 +3414,20 @@ namespace OpenSim.Region.Framework.Scenes
3403 // If the avatars baked textures are all in the cache, then we have a 3414 // If the avatars baked textures are all in the cache, then we have a
3404 // complete appearance... send it out, if not, then we'll send it when 3415 // complete appearance... send it out, if not, then we'll send it when
3405 // the avatar finishes updating its appearance 3416 // the avatar finishes updating its appearance
3406 SendAppearanceToAllOtherAgents(); 3417 SendAppearanceToAllOtherClients();
3407 } 3418 }
3408 } 3419 }
3409 3420
3410 public void SendAvatarDataToAllAgents() 3421 public void SendAvatarDataToAllClients()
3411 { 3422 {
3412 SendAvatarDataToAllAgents(true); 3423 SendAvatarDataToAllClients(true);
3413 } 3424 }
3414 3425
3415 /// <summary> 3426 /// <summary>
3416 /// Send this agent's avatar data to all other root and child agents in the scene 3427 /// Send this agent's avatar data to all other root and child agents in the scene
3417 /// This agent must be root. This avatar will receive its own update. 3428 /// This agent must be root. This avatar will receive its own update.
3418 /// </summary> 3429 /// </summary>
3419 public void SendAvatarDataToAllAgents(bool full) 3430 public void SendAvatarDataToAllClients(bool full)
3420 { 3431 {
3421 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAllAgents: {0} ({1})", Name, UUID); 3432 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAllAgents: {0} ({1})", Name, UUID);
3422 // only send update from root agents to other clients; children are only "listening posts" 3433 // only send update from root agents to other clients; children are only "listening posts"
@@ -3435,7 +3446,7 @@ namespace OpenSim.Region.Framework.Scenes
3435 m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence) 3446 m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence)
3436 { 3447 {
3437 if (full) 3448 if (full)
3438 SendAvatarDataToAgent(scenePresence); 3449 SendAvatarDataToClient(scenePresence);
3439 else 3450 else
3440 scenePresence.ControllingClient.SendAvatarDataImmediate(this); 3451 scenePresence.ControllingClient.SendAvatarDataImmediate(this);
3441 count++; 3452 count++;
@@ -3448,7 +3459,7 @@ namespace OpenSim.Region.Framework.Scenes
3448 /// Send avatar data for all other root agents to this agent, this agent 3459 /// Send avatar data for all other root agents to this agent, this agent
3449 /// can be either a child or root 3460 /// can be either a child or root
3450 /// </summary> 3461 /// </summary>
3451 public void SendOtherAgentsAvatarDataToMe() 3462 public void SendOtherAgentsAvatarDataToClient()
3452 { 3463 {
3453 int count = 0; 3464 int count = 0;
3454 m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) 3465 m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence)
@@ -3457,7 +3468,7 @@ namespace OpenSim.Region.Framework.Scenes
3457 if (scenePresence.UUID == UUID) 3468 if (scenePresence.UUID == UUID)
3458 return; 3469 return;
3459 3470
3460 scenePresence.SendAvatarDataToAgent(this); 3471 scenePresence.SendAvatarDataToClient(this);
3461 count++; 3472 count++;
3462 }); 3473 });
3463 3474
@@ -3468,9 +3479,9 @@ namespace OpenSim.Region.Framework.Scenes
3468 /// Send avatar data to an agent. 3479 /// Send avatar data to an agent.
3469 /// </summary> 3480 /// </summary>
3470 /// <param name="avatar"></param> 3481 /// <param name="avatar"></param>
3471 public void SendAvatarDataToAgent(ScenePresence avatar) 3482 public void SendAvatarDataToClient(ScenePresence avatar)
3472 { 3483 {
3473 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID); 3484 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToClient from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID);
3474 3485
3475 avatar.ControllingClient.SendAvatarDataImmediate(this); 3486 avatar.ControllingClient.SendAvatarDataImmediate(this);
3476 Animator.SendAnimPackToClient(avatar.ControllingClient); 3487 Animator.SendAnimPackToClient(avatar.ControllingClient);
@@ -3480,9 +3491,9 @@ namespace OpenSim.Region.Framework.Scenes
3480 /// Send this agent's appearance to all other root and child agents in the scene 3491 /// Send this agent's appearance to all other root and child agents in the scene
3481 /// This agent must be root. 3492 /// This agent must be root.
3482 /// </summary> 3493 /// </summary>
3483 public void SendAppearanceToAllOtherAgents() 3494 public void SendAppearanceToAllOtherClients()
3484 { 3495 {
3485// m_log.DebugFormat("[SCENE PRESENCE] SendAppearanceToAllOtherAgents: {0} {1}", Name, UUID); 3496// m_log.DebugFormat("[SCENE PRESENCE] SendAppearanceToAllOtherClients: {0} {1}", Name, UUID);
3486 3497
3487 // only send update from root agents to other clients; children are only "listening posts" 3498 // only send update from root agents to other clients; children are only "listening posts"
3488 if (IsChildAgent) 3499 if (IsChildAgent)
@@ -3501,7 +3512,7 @@ namespace OpenSim.Region.Framework.Scenes
3501 if (scenePresence.UUID == UUID) 3512 if (scenePresence.UUID == UUID)
3502 return; 3513 return;
3503 3514
3504 SendAppearanceToAgent(scenePresence); 3515 SendAppearanceToClient(scenePresence);
3505 count++; 3516 count++;
3506 }); 3517 });
3507 3518
@@ -3512,9 +3523,9 @@ namespace OpenSim.Region.Framework.Scenes
3512 /// Send appearance from all other root agents to this agent. this agent 3523 /// Send appearance from all other root agents to this agent. this agent
3513 /// can be either root or child 3524 /// can be either root or child
3514 /// </summary> 3525 /// </summary>
3515 public void SendOtherAgentsAppearanceToMe() 3526 public void SendOtherAgentsAppearanceToClient()
3516 { 3527 {
3517// m_log.DebugFormat("[SCENE PRESENCE] SendOtherAgentsAppearanceToMe: {0} {1}", Name, UUID); 3528// m_log.DebugFormat("[SCENE PRESENCE] SendOtherAgentsAppearanceToClient {0} {1}", Name, UUID);
3518 3529
3519 int count = 0; 3530 int count = 0;
3520 m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) 3531 m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence)
@@ -3523,7 +3534,7 @@ namespace OpenSim.Region.Framework.Scenes
3523 if (scenePresence.UUID == UUID) 3534 if (scenePresence.UUID == UUID)
3524 return; 3535 return;
3525 3536
3526 scenePresence.SendAppearanceToAgent(this); 3537 scenePresence.SendAppearanceToClient(this);
3527 count++; 3538 count++;
3528 }); 3539 });
3529 3540
@@ -3534,7 +3545,7 @@ namespace OpenSim.Region.Framework.Scenes
3534 /// Send appearance data to an agent. 3545 /// Send appearance data to an agent.
3535 /// </summary> 3546 /// </summary>
3536 /// <param name="avatar"></param> 3547 /// <param name="avatar"></param>
3537 public void SendAppearanceToAgent(ScenePresence avatar) 3548 public void SendAppearanceToClient(ScenePresence avatar)
3538 { 3549 {
3539// m_log.DebugFormat( 3550// m_log.DebugFormat(
3540// "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID); 3551// "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID);
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index 8a9e4d2..dff3f78 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -1381,7 +1381,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
1381 presence.Grouptitle = Title; 1381 presence.Grouptitle = Title;
1382 1382
1383 if (! presence.IsChildAgent) 1383 if (! presence.IsChildAgent)
1384 presence.SendAvatarDataToAllAgents(); 1384 presence.SendAvatarDataToAllClients();
1385 } 1385 }
1386 } 1386 }
1387 } 1387 }