Beispiel #1
0
        public static Message Decode(UDPPacket p)
        {
            var m = new AgentGroupDataUpdate
            {
                AgentID = p.ReadUUID()
            };
            uint n = p.ReadUInt8();

            for (uint i = 0; i < n; ++i)
            {
                m.GroupData.Add(new GroupDataEntry
                {
                    GroupID         = p.ReadUUID(),
                    GroupPowers     = (GroupPowers)p.ReadUInt64(),
                    AcceptNotices   = p.ReadBoolean(),
                    GroupInsigniaID = p.ReadUUID(),
                    Contribution    = p.ReadInt32(),
                    GroupName       = p.ReadStringLen8()
                });
            }
            return(m);
        }
Beispiel #2
0
        public static Message DeserializeEQG(IValue value)
        {
            var m = (MapType)value;
            var groupDataArray    = (AnArray)m["GroupData"];
            var newGroupDataArray = (AnArray)m["NewGroupData"];
            var agentData         = (MapType)((AnArray)m["AgentData"])[0];
            var res = new AgentGroupDataUpdate
            {
                AgentID = agentData["AgentID"].AsUUID
            };

            int n = Math.Min(groupDataArray.Count, newGroupDataArray.Count);

            for (int i = 0; i < n; ++i)
            {
                var    groupData    = (MapType)groupDataArray[i];
                var    newGroupData = (MapType)newGroupDataArray[i];
                byte[] grouppowers  = (BinaryData)groupData["GroupPowers"];
                if (BitConverter.IsLittleEndian)
                {
                    Array.Reverse(grouppowers);
                }

                res.GroupData.Add(new GroupDataEntry
                {
                    GroupID         = groupData["GroupID"].AsUUID,
                    GroupInsigniaID = groupData["GroupInsigniaID"].AsUUID,
                    Contribution    = groupData["Contribution"].AsInt,
                    GroupPowers     = (GroupPowers)BitConverter.ToUInt64(grouppowers, 0),
                    GroupName       = groupData["GroupName"].ToString(),
                    AcceptNotices   = groupData["AcceptNotices"].AsBoolean,
                    ListInProfile   = groupData["ListInProfile"].AsBoolean
                });
            }

            return(res);
        }