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); } }
/// <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); }