Ejemplo n.º 1
0
        void RequestObjectPropertiesFamilyHandler(Packet packet, Agent agent)
        {
            RequestObjectPropertiesFamilyPacket request = (RequestObjectPropertiesFamilyPacket)packet;
            ReportType type = (ReportType)request.ObjectData.RequestFlags;

            SimulationObject obj;

            if (server.Scene.TryGetObject(request.ObjectData.ObjectID, out obj))
            {
                ObjectPropertiesFamilyPacket props = new ObjectPropertiesFamilyPacket();
                props.ObjectData.BaseMask      = (uint)obj.Prim.Properties.Permissions.BaseMask;
                props.ObjectData.Category      = (uint)obj.Prim.Properties.Category;
                props.ObjectData.Description   = Utils.StringToBytes(obj.Prim.Properties.Description);
                props.ObjectData.EveryoneMask  = (uint)obj.Prim.Properties.Permissions.EveryoneMask;
                props.ObjectData.GroupID       = obj.Prim.Properties.GroupID;
                props.ObjectData.GroupMask     = (uint)obj.Prim.Properties.Permissions.GroupMask;
                props.ObjectData.LastOwnerID   = obj.Prim.Properties.LastOwnerID;
                props.ObjectData.Name          = Utils.StringToBytes(obj.Prim.Properties.Name);
                props.ObjectData.NextOwnerMask = (uint)obj.Prim.Properties.Permissions.NextOwnerMask;
                props.ObjectData.ObjectID      = obj.Prim.ID;
                props.ObjectData.OwnerID       = obj.Prim.Properties.OwnerID;
                props.ObjectData.OwnerMask     = (uint)obj.Prim.Properties.Permissions.OwnerMask;
                props.ObjectData.OwnershipCost = obj.Prim.Properties.OwnershipCost;
                props.ObjectData.RequestFlags  = (uint)type;
                props.ObjectData.SalePrice     = obj.Prim.Properties.SalePrice;
                props.ObjectData.SaleType      = (byte)obj.Prim.Properties.SaleType;

                server.UDP.SendPacket(agent.AgentID, props, PacketCategory.Transaction);
            }
            else
            {
                Logger.Log("RequestObjectPropertiesFamily sent for unknown object " +
                           request.ObjectData.ObjectID.ToString(), Helpers.LogLevel.Warning);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Request additional properties for an object
        /// </summary>
        /// <param name="simulator">A reference to the <seealso cref="OpenMetaverse.Simulator"/> object where the object resides</param>
        /// <param name="objectID">Absolute UUID of the object</param>
        /// <param name="reliable">Whether to require server acknowledgement of this request</param>
        public void RequestObjectPropertiesFamily(Simulator simulator, UUID objectID, bool reliable)
        {
            RequestObjectPropertiesFamilyPacket properties = new RequestObjectPropertiesFamilyPacket();
            properties.AgentData.AgentID = Client.Self.AgentID;
            properties.AgentData.SessionID = Client.Self.SessionID;
            properties.ObjectData.ObjectID = objectID;
            // TODO: RequestFlags is typically only for bug report submissions, but we might be able to
            // use it to pass an arbitrary uint back to the callback
            properties.ObjectData.RequestFlags = 0;

            properties.Header.Reliable = reliable;

            Client.Network.SendPacket(properties, simulator);
        }
        /// <summary>
        /// Request additional properties for an object
        /// </summary>
        /// <param name="simulator"></param>
        /// <param name="objectID"></param>
        public void RequestObjectPropertiesFamily(Simulator simulator, LLUUID objectID)
        {
            RequestObjectPropertiesFamilyPacket properties = new RequestObjectPropertiesFamilyPacket();
            properties.AgentData.AgentID = Client.Network.AgentID;
            properties.AgentData.SessionID = Client.Network.SessionID;
            properties.ObjectData.ObjectID = objectID;
            properties.ObjectData.RequestFlags = 0;

            Client.Network.SendPacket(properties, simulator);
        }