private void AvatarGroupsHandler(Packet packet, Simulator simulator) { if (OnAvatarGroups != null) { AvatarGroupsReplyPacket groups = (AvatarGroupsReplyPacket)packet; List <AvatarGroup> avatarGroups = new List <AvatarGroup>(groups.GroupData.Length); for (int i = 0; i < groups.GroupData.Length; i++) { AvatarGroup avatarGroup = new AvatarGroup(); avatarGroup.AcceptNotices = groups.GroupData[i].AcceptNotices; avatarGroup.GroupID = groups.GroupData[i].GroupID; avatarGroup.GroupInsigniaID = groups.GroupData[i].GroupInsigniaID; avatarGroup.GroupName = Helpers.FieldToUTF8String(groups.GroupData[i].GroupName); avatarGroup.GroupPowers = (GroupPowers)groups.GroupData[i].GroupPowers; avatarGroup.GroupTitle = Helpers.FieldToUTF8String(groups.GroupData[i].GroupTitle); avatarGroup.ListInProfile = groups.NewGroupData.ListInProfile; avatarGroups.Add(avatarGroup); } try { OnAvatarGroups(groups.AgentData.AvatarID, avatarGroups); } catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); } } }
private void AvatarGroupsHandler(Packet packet, Simulator simulator) { if (OnAvatarGroups != null) { AvatarGroupsReplyPacket groups = (AvatarGroupsReplyPacket)packet; // FIXME: Build a little struct to represent the groups.GroupData blocks so we keep // libsecondlife.Packets abstracted away OnAvatarGroups(groups.AgentData.AvatarID, groups.GroupData); } }
void Avatars_OnAvatarGroups(LLUUID avatarID, AvatarGroupsReplyPacket.GroupDataBlock[] groups) { lock (ReceivedProfileEvent) { foreach (AvatarGroupsReplyPacket.GroupDataBlock block in groups) { Groups.Add(block.GroupID); } ReceivedGroups = true; if (ReceivedInterests && ReceivedProperties && ReceivedGroups) ReceivedProfileEvent.Set(); } }
void Avatars_OnAvatarGroups(LLUUID avatarID, AvatarGroupsReplyPacket.GroupDataBlock[] groups) { List<LLUUID> groupList = new List<LLUUID>(); foreach (AvatarGroupsReplyPacket.GroupDataBlock block in groups) { // TODO: We just toss away all the other information here, seems like a waste... groupList.Add(block.GroupID); } lock (avatars) { if (!avatars.ContainsKey(avatarID)) avatars[avatarID] = new Avatar(); avatars[avatarID].Groups = groupList; } if (GroupsLookupEvents.ContainsKey(avatarID)) GroupsLookupEvents[avatarID].Set(); }