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); } }
// Processes object properties family packets private Packet ProcessObjectPropertiesFamily(Packet packet, IPEndPoint endpoint) { ObjectPropertiesFamilyPacket properties = (ObjectPropertiesFamilyPacket)packet; ObjectPropertiesFamilyPacket.ObjectDataBlock block = properties.ObjectData; uint localid = 0; if (AvatarUUIDtoID.TryGetValue(block.ObjectID, out localid)) { SayToUser(string.Format("{0}: {1}", block.ObjectID, Utils.BytesToString(block.Name))); SetSelectedAvatar(Utils.BytesToString(block.Name)); } return(packet); }
private void SendPropertiesPacket(LLAgent agent, LLPrimitive prim, ReportType type) { ObjectPropertiesFamilyPacket props = new ObjectPropertiesFamilyPacket(); props.ObjectData.BaseMask = (uint)prim.Prim.Properties.Permissions.BaseMask; props.ObjectData.Category = (uint)prim.Prim.Properties.Category; props.ObjectData.Description = Utils.StringToBytes(prim.Prim.Properties.Description); props.ObjectData.EveryoneMask = (uint)prim.Prim.Properties.Permissions.EveryoneMask; props.ObjectData.GroupID = prim.Prim.Properties.GroupID; props.ObjectData.GroupMask = (uint)prim.Prim.Properties.Permissions.GroupMask; props.ObjectData.LastOwnerID = prim.Prim.Properties.LastOwnerID; props.ObjectData.Name = Utils.StringToBytes(prim.Prim.Properties.Name); props.ObjectData.NextOwnerMask = (uint)prim.Prim.Properties.Permissions.NextOwnerMask; props.ObjectData.ObjectID = prim.Prim.ID; props.ObjectData.OwnerID = prim.Prim.Properties.OwnerID; props.ObjectData.OwnerMask = (uint)prim.Prim.Properties.Permissions.OwnerMask; props.ObjectData.OwnershipCost = prim.Prim.Properties.OwnershipCost; props.ObjectData.RequestFlags = (uint)type; props.ObjectData.SalePrice = prim.Prim.Properties.SalePrice; props.ObjectData.SaleType = (byte)prim.Prim.Properties.SaleType; m_udp.SendPacket(agent, props, ThrottleCategory.Task, false); }