Restore SendAgentGroupDataUpdate() call in GroupsModule.cs.

Restore linkage to OnAgentClosed since the merge solved the reference
   problem by looking up the agent.
This should address Mantis 7915 and 7920.
LSLKeyTest
Robert Adams 2016-06-11 12:42:42 -07:00
parent 53d8b8a83f
commit 9ebdae8676
1 changed files with 13 additions and 7 deletions

View File

@ -179,9 +179,7 @@ namespace OpenSim.Groups
scene.EventManager.OnMakeRootAgent += OnMakeRoot; scene.EventManager.OnMakeRootAgent += OnMakeRoot;
scene.EventManager.OnMakeChildAgent += OnMakeChild; scene.EventManager.OnMakeChildAgent += OnMakeChild;
scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage; scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage;
// The InstantMessageModule itself doesn't do this, scene.EventManager.OnClientClosed += OnClientClosed;
// so lets see if things explode if we don't do it
// scene.EventManager.OnClientClosed += OnClientClosed;
} }
@ -246,9 +244,11 @@ namespace OpenSim.Groups
// Used for Notices and Group Invites/Accept/Reject // Used for Notices and Group Invites/Accept/Reject
sp.ControllingClient.OnInstantMessage += OnInstantMessage; sp.ControllingClient.OnInstantMessage += OnInstantMessage;
// we should send a DataUpdate here for compatibility, // Send out group data update for compatibility.
// but this is a bad place and a bad thread to do it // There might be some problem with the thread we're generating this on but not
// also current viewers do ignore it and ask later on a much nicer thread // doing the update at this time causes problems (Mantis #7920 and #7915)
// TODO: move sending this update to a later time in the rootification of the client.
SendAgentGroupDataUpdate(sp.ControllingClient, false);
} }
private void OnMakeChild(ScenePresence sp) private void OnMakeChild(ScenePresence sp)
@ -315,6 +315,8 @@ namespace OpenSim.Groups
return; return;
SendAgentGroupDataUpdate(remoteClient, false); SendAgentGroupDataUpdate(remoteClient, false);
// also current viewers do ignore it and ask later on a much nicer thread
// its a info request not a change, so nothing is sent to others // its a info request not a change, so nothing is sent to others
// they do get the group title with the avatar object update on arrivel to a region // they do get the group title with the avatar object update on arrivel to a region
} }
@ -578,6 +580,10 @@ namespace OpenSim.Groups
m_groupData.SetAgentActiveGroup(GetRequestingAgentIDStr(remoteClient), GetRequestingAgentIDStr(remoteClient), groupID); m_groupData.SetAgentActiveGroup(GetRequestingAgentIDStr(remoteClient), GetRequestingAgentIDStr(remoteClient), groupID);
// Changing active group changes title, active powers, all kinds of things
// anyone who is in any region that can see this client, should probably be
// updated with new group info. At a minimum, they should get ScenePresence
// updated with new title.
SendAgentGroupDataUpdate(remoteClient, true); SendAgentGroupDataUpdate(remoteClient, true);
} }
@ -1240,7 +1246,7 @@ namespace OpenSim.Groups
GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID);
remoteClient.SendAgentGroupDataUpdate(agentID, membershipArray); remoteClient.SendAgentGroupDataUpdate(agentID, membershipArray);
remoteClient.RefreshGroupMembership(); remoteClient.RefreshGroupMembership();
} }
/// <summary> /// <summary>