diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs index 36adfad..79d7477 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs | |||
@@ -1277,10 +1277,23 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
1277 | // to the core Groups Stub | 1277 | // to the core Groups Stub |
1278 | remoteClient.SendGroupMembership(new GroupMembershipData[0]); | 1278 | remoteClient.SendGroupMembership(new GroupMembershipData[0]); |
1279 | 1279 | ||
1280 | GroupMembershipData[] membershipData = m_groupData.GetAgentGroupMemberships(GetClientGroupRequestID(remoteClient), dataForAgentID).ToArray(); | 1280 | List<GroupMembershipData> membershipData = m_groupData.GetAgentGroupMemberships(GetClientGroupRequestID(remoteClient), dataForAgentID); |
1281 | GroupMembershipData[] membershipArray; | ||
1281 | 1282 | ||
1282 | SendGroupMembershipInfoViaCaps(remoteClient, dataForAgentID, membershipData); | 1283 | if (remoteClient.AgentId != dataForAgentID) |
1283 | remoteClient.SendAvatarGroupsReply(dataForAgentID, membershipData); | 1284 | { |
1285 | Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership) | ||
1286 | { | ||
1287 | return membership.ListInProfile; | ||
1288 | }; | ||
1289 | |||
1290 | membershipArray = membershipData.FindAll(showInProfile).ToArray(); | ||
1291 | } else { | ||
1292 | membershipArray = membershipData.ToArray(); | ||
1293 | } | ||
1294 | |||
1295 | SendGroupMembershipInfoViaCaps(remoteClient, dataForAgentID, membershipArray); | ||
1296 | remoteClient.SendAvatarGroupsReply(dataForAgentID, membershipArray); | ||
1284 | 1297 | ||
1285 | } | 1298 | } |
1286 | 1299 | ||