diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs index d6bf552..62f863b 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs | |||
@@ -271,8 +271,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
271 | // There might be some problem with the thread we're generating this on but not | 271 | // There might be some problem with the thread we're generating this on but not |
272 | // doing the update at this time causes problems (Mantis #7920 and #7915) | 272 | // doing the update at this time causes problems (Mantis #7920 and #7915) |
273 | // TODO: move sending this update to a later time in the rootification of the client. | 273 | // TODO: move sending this update to a later time in the rootification of the client. |
274 | if(!sp.isNPC) | 274 | SendAgentGroupDataUpdate(sp.ControllingClient, false); |
275 | SendAgentGroupDataUpdate(sp.ControllingClient, false); | ||
276 | } | 275 | } |
277 | 276 | ||
278 | private void OnMakeChild(ScenePresence sp) | 277 | private void OnMakeChild(ScenePresence sp) |
@@ -1388,6 +1387,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
1388 | { | 1387 | { |
1389 | if (m_debugEnabled) m_log.InfoFormat("[GROUPS]: {0} called for {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, remoteClient.Name); | 1388 | if (m_debugEnabled) m_log.InfoFormat("[GROUPS]: {0} called for {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, remoteClient.Name); |
1390 | 1389 | ||
1390 | // NPCs currently don't have a CAPs structure or event queues. There is a strong argument for conveying this information | ||
1391 | // to them anyway since it makes writing server-side bots a lot easier, but for now we don't do anything. | ||
1392 | if (remoteClient.SceneAgent.PresenceType == PresenceType.Npc) | ||
1393 | return; | ||
1394 | |||
1391 | // TODO: All the client update functions need to be reexamined because most do too much and send too much stuff | 1395 | // TODO: All the client update functions need to be reexamined because most do too much and send too much stuff |
1392 | 1396 | ||
1393 | UUID agentID = GetRequestingAgentID(remoteClient); | 1397 | UUID agentID = GetRequestingAgentID(remoteClient); |
@@ -1396,7 +1400,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
1396 | 1400 | ||
1397 | GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); | 1401 | GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); |
1398 | IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>(); | 1402 | IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>(); |
1399 | eq.GroupMembershipData(GetRequestingAgentID(remoteClient), dataForClientID, membershipArray); | 1403 | if (eq != null) |
1404 | eq.GroupMembershipData(GetRequestingAgentID(remoteClient), dataForClientID, membershipArray); | ||
1405 | else | ||
1406 | remoteClient.SendGroupMembership(membershipArray); | ||
1400 | 1407 | ||
1401 | remoteClient.RefreshGroupMembership(); | 1408 | remoteClient.RefreshGroupMembership(); |
1402 | } | 1409 | } |