示例#1
0
        private void PlacesReplyHandler(Packet packet, Simulator simulator)
        {
            if (OnPlacesReply != null)
            {
                PlacesReplyPacket       placesReply = packet as PlacesReplyPacket;
                List <PlacesSearchData> places      = new List <PlacesSearchData>();

                foreach (PlacesReplyPacket.QueryDataBlock block in placesReply.QueryData)
                {
                    PlacesSearchData place = new PlacesSearchData();
                    place.OwnerID      = block.OwnerID;
                    place.Name         = Helpers.FieldToUTF8String(block.Name);
                    place.Desc         = Helpers.FieldToUTF8String(block.Desc);
                    place.ActualArea   = block.ActualArea;
                    place.BillableArea = block.BillableArea;
                    place.Flags        = block.Flags;
                    place.GlobalX      = block.GlobalX;
                    place.GlobalY      = block.GlobalY;
                    place.GlobalZ      = block.GlobalZ;
                    place.SimName      = Helpers.FieldToUTF8String(block.SimName);
                    place.SnapshotID   = block.SnapshotID;
                    place.Dwell        = block.Dwell;
                    place.Price        = block.Price;

                    places.Add(place);
                }
                try { OnPlacesReply(placesReply.TransactionData.TransactionID, places); }
                catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
            }
        }
        /// <summary>Process an incoming packet and raise the appropriate events</summary>
        /// <param name="sender">The sender</param>
        /// <param name="e">The EventArgs object containing the packet data</param>
        protected void PlacesReplyHandler(object sender, PacketReceivedEventArgs e)
        {
            if (m_Places != null)
            {
                Packet packet = e.Packet;
                PlacesReplyPacket placesReply = packet as PlacesReplyPacket;
                List<PlacesSearchData> places = new List<PlacesSearchData>();

                foreach (PlacesReplyPacket.QueryDataBlock block in placesReply.QueryData)
                {
                    PlacesSearchData place = new PlacesSearchData();
                    place.OwnerID = block.OwnerID;
                    place.Name = Utils.BytesToString(block.Name);
                    place.Desc = Utils.BytesToString(block.Desc);
                    place.ActualArea = block.ActualArea;
                    place.BillableArea = block.BillableArea;
                    place.Flags = (PlacesFlags)block.Flags;
                    place.GlobalX = block.GlobalX;
                    place.GlobalY = block.GlobalY;
                    place.GlobalZ = block.GlobalZ;
                    place.SimName = Utils.BytesToString(block.SimName);
                    place.SnapshotID = block.SnapshotID;
                    place.Dwell = block.Dwell;
                    place.Price = block.Price;

                    places.Add(place);
                }

                OnPlaces(new PlacesReplyEventArgs(placesReply.TransactionData.TransactionID, places));
            }
        }
示例#3
0
        private void PlacesReplyHandler(Packet packet, Simulator simulator)
        {
            if (OnPlacesReply != null)
            {
                PlacesReplyPacket placesReply = packet as PlacesReplyPacket;
                List<PlacesSearchData> places = new List<PlacesSearchData>();

                foreach (PlacesReplyPacket.QueryDataBlock block in placesReply.QueryData)
                {
                    PlacesSearchData place = new PlacesSearchData();
                    place.OwnerID = block.OwnerID;
                    place.Name = Helpers.FieldToUTF8String(block.Name);
                    place.Desc = Helpers.FieldToUTF8String(block.Desc);
                    place.ActualArea = block.ActualArea;
                    place.BillableArea = block.BillableArea;
                    place.Flags = block.Flags;
                    place.GlobalX = block.GlobalX;
                    place.GlobalY = block.GlobalY;
                    place.GlobalZ = block.GlobalZ;
                    place.SimName = Helpers.FieldToUTF8String(block.SimName);
                    place.SnapshotID = block.SnapshotID;
                    place.Dwell = block.Dwell;
                    place.Price = block.Price;
                    
                    places.Add(place);
                }
                try { OnPlacesReply(placesReply.TransactionData.TransactionID, places); }
                catch (Exception e) { Client.Log(e.ToString(), Helpers.LogLevel.Error); }
            }
        }
        /// <summary>Process an incoming <see cref="PlacesReplyMessage"/> event message</summary>
        /// <param name="capsKey">The Unique Capabilities Key</param>
        /// <param name="message">The <see cref="PlacesReplyMessage"/> event message containing the data</param>
        /// <param name="simulator">The simulator the message originated from</param>
        protected void PlacesReplyEventHandler(string capsKey, IMessage message, Simulator simulator)
        {
            if (m_Places != null)
            {
                PlacesReplyMessage replyMessage = (PlacesReplyMessage)message;
                List<PlacesSearchData> places = new List<PlacesSearchData>();

                for (int i = 0; i < replyMessage.QueryDataBlocks.Length; i++)
                {
                    PlacesSearchData place = new PlacesSearchData();
                    place.ActualArea = replyMessage.QueryDataBlocks[i].ActualArea;
                    place.BillableArea = replyMessage.QueryDataBlocks[i].BillableArea;
                    place.Desc = replyMessage.QueryDataBlocks[i].Description;
                    place.Dwell = replyMessage.QueryDataBlocks[i].Dwell;
                    place.Flags = (DirectoryManager.PlacesFlags)(byte)replyMessage.QueryDataBlocks[i].Flags;
                    place.GlobalX = replyMessage.QueryDataBlocks[i].GlobalX;
                    place.GlobalY = replyMessage.QueryDataBlocks[i].GlobalY;
                    place.GlobalZ = replyMessage.QueryDataBlocks[i].GlobalZ;
                    place.Name = replyMessage.QueryDataBlocks[i].Name;
                    place.OwnerID = replyMessage.QueryDataBlocks[i].OwnerID;
                    place.Price = replyMessage.QueryDataBlocks[i].Price;
                    place.SimName = replyMessage.QueryDataBlocks[i].SimName;
                    place.SnapshotID = replyMessage.QueryDataBlocks[i].SnapShotID;
                    place.SKU = replyMessage.QueryDataBlocks[i].ProductSku;
                    places.Add(place);
                }

                OnPlaces(new PlacesReplyEventArgs(replyMessage.QueryID, places));
            }
        }
示例#5
0
        private void PlacesReplyEventHandler(string capsKey, IMessage message, Simulator simulator)
        {
            if(OnPlacesReply != null)
            {
                PlacesReplyMessage replyMessage = (PlacesReplyMessage) message;
                List<PlacesSearchData> places = new List<PlacesSearchData>();
                
                for(int i = 0; i < replyMessage.QueryDataBlocks.Length; i++)
                {
                    PlacesSearchData place = new PlacesSearchData();
                    place.ActualArea = replyMessage.QueryDataBlocks[i].ActualArea;
                    place.BillableArea = replyMessage.QueryDataBlocks[i].BillableArea;
                    place.Desc = replyMessage.QueryDataBlocks[i].Description;
                    place.Dwell = replyMessage.QueryDataBlocks[i].Dwell;
                    place.Flags = (byte)replyMessage.QueryDataBlocks[i].Flags;
                    place.GlobalX = replyMessage.QueryDataBlocks[i].GlobalX;
                    place.GlobalY = replyMessage.QueryDataBlocks[i].GlobalY;
                    place.GlobalZ = replyMessage.QueryDataBlocks[i].GlobalZ;
                    place.Name = replyMessage.QueryDataBlocks[i].Name;
                    place.OwnerID = replyMessage.QueryDataBlocks[i].OwnerID;
                    place.Price = replyMessage.QueryDataBlocks[i].Price;
                    place.SimName = replyMessage.QueryDataBlocks[i].SimName;
                    place.SnapshotID = replyMessage.QueryDataBlocks[i].SnapShotID;
                    places.Add(place);
                }

                try { OnPlacesReply(replyMessage.TransactionID, places); }
                catch (Exception e) { Log.Log(e.Message, Helpers.LogLevel.Error, e); }
            }
        }