Revert " don't try to send initial AgentGroupDataUpdate to NPCs" this was

already done

This reverts commit 84a6a6e008.
LSLKeyTest
UbitUmarov 2016-06-28 23:57:14 +01:00
parent 84a6a6e008
commit 158e0ae402
2 changed files with 20 additions and 6 deletions

View File

@ -249,8 +249,7 @@ namespace OpenSim.Groups
// There might be some problem with the thread we're generating this on but not // There might be some problem with the thread we're generating this on but not
// doing the update at this time causes problems (Mantis #7920 and #7915) // 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. // TODO: move sending this update to a later time in the rootification of the client.
if(!sp.isNPC) SendAgentGroupDataUpdate(sp.ControllingClient, false);
SendAgentGroupDataUpdate(sp.ControllingClient, false);
} }
private void OnMakeChild(ScenePresence sp) private void OnMakeChild(ScenePresence sp)
@ -1266,6 +1265,11 @@ namespace OpenSim.Groups
{ {
if (m_debugEnabled) m_log.InfoFormat("[Groups]: {0} called for {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, remoteClient.Name); if (m_debugEnabled) m_log.InfoFormat("[Groups]: {0} called for {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, remoteClient.Name);
// NPCs currently don't have a CAPs structure or event queues. There is a strong argument for conveying this information
// to them anyway since it makes writing server-side bots a lot easier, but for now we don't do anything.
if (remoteClient.SceneAgent.PresenceType == PresenceType.Npc)
return;
// TODO: All the client update functions need to be reexamined because most do too much and send too much stuff // TODO: All the client update functions need to be reexamined because most do too much and send too much stuff
UUID agentID = GetRequestingAgentID(remoteClient); UUID agentID = GetRequestingAgentID(remoteClient);
@ -1274,7 +1278,10 @@ namespace OpenSim.Groups
GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID);
IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>(); IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>();
eq.GroupMembershipData(GetRequestingAgentID(remoteClient), dataForClientID, membershipArray); if (eq != null)
eq.GroupMembershipData(GetRequestingAgentID(remoteClient), dataForClientID, membershipArray);
else
remoteClient.SendGroupMembership(membershipArray);
remoteClient.RefreshGroupMembership(); remoteClient.RefreshGroupMembership();
} }

View File

@ -271,8 +271,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
// There might be some problem with the thread we're generating this on but not // There might be some problem with the thread we're generating this on but not
// doing the update at this time causes problems (Mantis #7920 and #7915) // 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. // TODO: move sending this update to a later time in the rootification of the client.
if(!sp.isNPC) SendAgentGroupDataUpdate(sp.ControllingClient, false);
SendAgentGroupDataUpdate(sp.ControllingClient, false);
} }
private void OnMakeChild(ScenePresence sp) private void OnMakeChild(ScenePresence sp)
@ -1388,6 +1387,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
{ {
if (m_debugEnabled) m_log.InfoFormat("[GROUPS]: {0} called for {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, remoteClient.Name); if (m_debugEnabled) m_log.InfoFormat("[GROUPS]: {0} called for {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, remoteClient.Name);
// NPCs currently don't have a CAPs structure or event queues. There is a strong argument for conveying this information
// to them anyway since it makes writing server-side bots a lot easier, but for now we don't do anything.
if (remoteClient.SceneAgent.PresenceType == PresenceType.Npc)
return;
// TODO: All the client update functions need to be reexamined because most do too much and send too much stuff // TODO: All the client update functions need to be reexamined because most do too much and send too much stuff
UUID agentID = GetRequestingAgentID(remoteClient); UUID agentID = GetRequestingAgentID(remoteClient);
@ -1396,7 +1400,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID);
IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>(); IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>();
eq.GroupMembershipData(GetRequestingAgentID(remoteClient), dataForClientID, membershipArray); if (eq != null)
eq.GroupMembershipData(GetRequestingAgentID(remoteClient), dataForClientID, membershipArray);
else
remoteClient.SendGroupMembership(membershipArray);
remoteClient.RefreshGroupMembership(); remoteClient.RefreshGroupMembership();
} }