diff --git a/OpenMetaverse/GroupManager.cs b/OpenMetaverse/GroupManager.cs
index 60bed95c..c3569b80 100644
--- a/OpenMetaverse/GroupManager.cs
+++ b/OpenMetaverse/GroupManager.cs
@@ -451,29 +451,26 @@ namespace OpenMetaverse
///
/// returned by RequestGroupMembers
/// of the group
- /// Total number of members in the group
/// A dictionary containing the members of a group
/// where key is member and value is struct
- public delegate void GroupMembersCallback(UUID requestID, UUID groupID, int memberCount, Dictionary members);
+ public delegate void GroupMembersCallback(UUID requestID, UUID groupID, Dictionary members);
///
/// Callback for retrieving group roles
///
/// of the request returned from RequestGroupRoles
/// of the group
- /// Total number of roles defined in the group
/// A dictionary containing role s as the key
/// and structs as values
- public delegate void GroupRolesCallback(UUID requestID, UUID groupID, int roleCount, Dictionary roles);
+ public delegate void GroupRolesCallback(UUID requestID, UUID groupID, Dictionary roles);
///
/// Callback for a pairing of roles to members
///
/// of the request returned from RequestGroupRolesMembers
/// of the group
- /// Total number of role/member mappings
/// List containing role/member pairs
- public delegate void GroupRolesMembersCallback(UUID requestID, UUID groupID, uint totalPairs, List> rolesMembers);
+ public delegate void GroupRolesMembersCallback(UUID requestID, UUID groupID, List> rolesMembers);
///
/// Callback for the title list of a group
@@ -1274,9 +1271,9 @@ namespace OpenMetaverse
}
}
- if (OnGroupMembers != null && groupMemberCache != null)
+ if (OnGroupMembers != null && groupMemberCache != null && groupMemberCache.Count >= members.GroupData.MemberCount)
{
- try { OnGroupMembers(members.GroupData.RequestID, members.GroupData.GroupID, members.GroupData.MemberCount, groupMemberCache); }
+ try { OnGroupMembers(members.GroupData.RequestID, members.GroupData.GroupID, groupMemberCache); }
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
}
}
@@ -1324,9 +1321,9 @@ namespace OpenMetaverse
}
}
- if (OnGroupRoles != null && groupRoleCache != null)
+ if (OnGroupRoles != null && groupRoleCache != null && groupRoleCache.Count >= roles.GroupData.RoleCount)
{
- try { OnGroupRoles(roles.GroupData.RequestID, roles.GroupData.GroupID, roles.GroupData.RoleCount, groupRoleCache); }
+ try { OnGroupRoles(roles.GroupData.RequestID, roles.GroupData.GroupID, groupRoleCache); }
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
}
}
@@ -1373,9 +1370,9 @@ namespace OpenMetaverse
Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e);
}
- if (OnGroupRolesMembers != null && groupRoleMemberCache != null)
+ if (OnGroupRolesMembers != null && groupRoleMemberCache != null && groupRoleMemberCache.Count >= members.AgentData.TotalPairs)
{
- try { OnGroupRolesMembers(members.AgentData.RequestID, members.AgentData.GroupID, members.AgentData.TotalPairs, groupRoleMemberCache); }
+ try { OnGroupRolesMembers(members.AgentData.RequestID, members.AgentData.GroupID, groupRoleMemberCache); }
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
}
}
diff --git a/Programs/examples/TestClient/TestClient.cs b/Programs/examples/TestClient/TestClient.cs
index 42a45fb5..08d57c3a 100644
--- a/Programs/examples/TestClient/TestClient.cs
+++ b/Programs/examples/TestClient/TestClient.cs
@@ -122,10 +122,9 @@ namespace OpenMetaverse.TestClient
}
}
- private void GroupMembersHandler(UUID requestID, UUID groupID, int memberCount, Dictionary members)
+ private void GroupMembersHandler(UUID requestID, UUID groupID, Dictionary members)
{
- // Check for partial result, or result we didn't request
- if (requestID != GroupMembersRequestID || memberCount > members.Count) return;
+ if (requestID != GroupMembersRequestID) return;
GroupMembers = members;
}
diff --git a/Programs/examples/groupmanager/frmGroupInfo.cs b/Programs/examples/groupmanager/frmGroupInfo.cs
index 396fa16e..638dcb90 100644
--- a/Programs/examples/groupmanager/frmGroupInfo.cs
+++ b/Programs/examples/groupmanager/frmGroupInfo.cs
@@ -212,9 +212,8 @@ namespace groupmanager
}
}
- private void GroupMembersHandler(UUID requestID, UUID groupID, int memberCount, Dictionary members)
+ private void GroupMembersHandler(UUID requestID, UUID groupID, Dictionary members)
{
- if (memberCount > members.Count) return; // Partail result
Members = members;
UpdateMembers();