OpenMetaverse.GroupManager.GroupDataHandler C# (CSharp) Method

GroupDataHandler() private method

private GroupDataHandler ( Packet packet, Simulator simulator ) : void
packet OpenMetaverse.Packets.Packet
simulator Simulator
return void
        private void GroupDataHandler(Packet packet, Simulator simulator)
        {
            if (OnCurrentGroups != null)
            {
                AgentGroupDataUpdatePacket update = (AgentGroupDataUpdatePacket)packet;

                Dictionary<UUID, Group> currentGroups = new Dictionary<UUID, Group>();

                foreach (AgentGroupDataUpdatePacket.GroupDataBlock block in update.GroupData)
                {
                    Group group = new Group();

                    group.ID = block.GroupID;
                    group.InsigniaID = block.GroupInsigniaID;
                    group.Name = Utils.BytesToString(block.GroupName);
                    group.Powers = (GroupPowers)block.GroupPowers;
                    group.Contribution = block.Contribution;
                    group.AcceptNotices = block.AcceptNotices;

                    currentGroups[block.GroupID] = group;

                    if (!GroupName2KeyCache.ContainsKey(block.GroupID))
                        GroupName2KeyCache.SafeAdd(block.GroupID, Utils.BytesToString(block.GroupName));
                }

                try { OnCurrentGroups(currentGroups); }
                catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
            }
        }