public bool PeopleSearch(DirFindFlags findFlags, string searchText, int queryStart, int timeoutMS, out List <AgentSearchData> results) { AutoResetEvent searchEvent = new AutoResetEvent(false); LLUUID id = LLUUID.Random(); List <AgentSearchData> people = null; DirPeopleReplyCallback callback = delegate(LLUUID queryid, List <AgentSearchData> matches) { if (id == queryid) { people = matches; searchEvent.Set(); } }; OnDirPeopleReply += callback; StartPeopleSearch(findFlags, searchText, queryStart, id); searchEvent.WaitOne(timeoutMS, false); OnDirPeopleReply -= callback; results = people; return(results != null); }
public LLUUID StartGroupSearch(DirFindFlags findFlags, string searchText, int queryStart, LLUUID queryID) { DirFindQueryPacket find = new DirFindQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; find.QueryData.QueryFlags = (uint)findFlags; find.QueryData.QueryText = Helpers.StringToField(searchText); find.QueryData.QueryID = queryID; find.QueryData.QueryStart = queryStart; Client.Network.SendPacket(find); return(queryID); }
public UUID StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart, UUID queryID) { DirFindQueryPacket find = new DirFindQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; find.QueryData.QueryFlags = (uint)findFlags; find.QueryData.QueryText = Utils.StringToBytes(searchText); find.QueryData.QueryID = queryID; find.QueryData.QueryStart = queryStart; Client.Network.SendPacket(find); return(queryID); }
/// <summary> /// Search Places - All Options /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="searchCategory">One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer</param> /// <param name="searchText">String Text to search for</param> /// <param name="simulatorName">String Simulator Name to search in</param> /// <param name="groupID">LLUID of group you want to recieve results for</param> /// <param name="transactionID">Transaction (Query) ID which can be associated with results from your request.</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public LLUUID StartPlacesSearch(DirFindFlags findFlags, Parcel.ParcelCategory searchCategory, string searchText, string simulatorName, LLUUID groupID, LLUUID transactionID) { PlacesQueryPacket find = new PlacesQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; find.AgentData.QueryID = groupID; find.TransactionData.TransactionID = transactionID; find.QueryData.QueryText = Helpers.StringToField(searchText); find.QueryData.QueryFlags = (uint)findFlags; find.QueryData.Category = (sbyte)searchCategory; find.QueryData.SimName = Helpers.StringToField(simulatorName); Client.Network.SendPacket(find); return(transactionID); }
/// <summary> /// Starts a search for land sales using the directory /// </summary> /// <param name="findFlags">A flags parameter that can modify the way /// search results are returned, for example changing the ordering of /// results or limiting based on price or area</param> /// <param name="typeFlags">What type of land to search for. Auction, /// estate, mainland, "first land", etc</param> /// <param name="priceLimit">Maximum price to search for, the /// DirFindFlags.LimitByPrice flag must be set</param> /// <param name="areaLimit">Maximum area to search for, the /// DirFindFlags.LimitByArea flag must be set</param> /// <param name="queryStart">Each request is limited to 100 parcels /// being returned. To get the first 100 parcels of a request use 0, /// from 100-199 use 100, 200-299 use 200, etc.</param> /// <returns>A unique identifier that can identify packets associated /// with this query from other queries</returns> /// <remarks>The OnDirLandReply event handler must be registered before /// calling this function. There is no way to determine how many /// results will be returned, or how many times the callback will be /// fired other than you won't get more than 100 total parcels from /// each query.</remarks> public LLUUID StartLandSearch(DirFindFlags findFlags, SearchTypeFlags typeFlags, int priceLimit, int areaLimit, int queryStart) { LLUUID queryID = LLUUID.Random(); DirLandQueryPacket query = new DirLandQueryPacket(); query.AgentData.AgentID = Client.Self.AgentID; query.AgentData.SessionID = Client.Self.SessionID; query.QueryData.Area = areaLimit; query.QueryData.Price = priceLimit; query.QueryData.QueryStart = queryStart; query.QueryData.SearchType = (uint)typeFlags; query.QueryData.QueryFlags = (uint)findFlags; query.QueryData.QueryID = queryID; Client.Network.SendPacket(query); return(queryID); }
/// <summary> /// Search Events /// </summary> /// <param name="searchText">A string containing a list of keywords to search for separated by a space character</param> /// <param name="queryFlags">One or more of the following flags: DateEvents, IncludePG, IncludeMature, IncludeAdult /// from the <see cref="DirFindFlags"/> Enum /// /// Multiple flags can be combined by separating the flags with the | (pipe) character</param> /// <param name="eventDay">"u" for in-progress and upcoming events, -or- number of days since/until event is scheduled /// For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc.</param> /// <param name="queryStart">Each request is limited to 100 entries /// being returned. To get the first group of entries of a request use 0, /// from 100-199 use 100, 200-299 use 200, etc.</param> /// <param name="category">EventCategory event is listed under.</param> /// <returns>UUID of query to correlate results in callback.</returns> public UUID StartEventsSearch(string searchText, DirFindFlags queryFlags, string eventDay, uint queryStart, EventCategories category) { DirFindQueryPacket find = new DirFindQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; UUID queryID = UUID.Random(); find.QueryData.QueryID = queryID; find.QueryData.QueryText = Utils.StringToBytes(eventDay + "|" + (int)category + "|" + searchText); find.QueryData.QueryFlags = (uint)queryFlags; find.QueryData.QueryStart = (int)queryStart; Client.Network.SendPacket(find); return queryID; }
/// <summary> /// Send a request to the data server for land sales listings /// </summary> /// /// <param name="findFlags">Flags sent to specify query options /// /// Available flags: /// Specify the parcel rating with one or more of the following: /// IncludePG IncludeMature IncludeAdult /// /// Specify the field to pre sort the results with ONLY ONE of the following: /// PerMeterSort NameSort AreaSort PricesSort /// /// Specify the order the results are returned in, if not specified the results are pre sorted in a Descending Order /// SortAsc /// /// Specify additional filters to limit the results with one or both of the following: /// LimitByPrice LimitByArea /// /// Flags can be combined by separating them with the | (pipe) character /// /// Additional details can be found in <see cref="DirFindFlags"/> /// </param> /// <param name="typeFlags">What type of land to search for. Auction, /// Estate or Mainland</param> /// <param name="priceLimit">Maximum price to search for when the /// DirFindFlags.LimitByPrice flag is specified in findFlags</param> /// <param name="areaLimit">Maximum area to search for when the /// DirFindFlags.LimitByArea flag is specified in findFlags</param> /// <param name="queryStart">Each request is limited to 100 parcels /// being returned. To get the first 100 parcels of a request use 0, /// from 100-199 use 100, 200-299 use 200, etc.</param> /// <remarks><para>The <seealso cref="OnDirLandReply"/> event will be raised with the response from the simulator /// /// There is no way to determine how many results will be returned, or how many times the callback will be /// fired other than you won't get more than 100 total parcels from /// each reply.</para> /// /// <para>Any land set for sale to either anybody or specific to the connected agent will be included in the /// results if the land is included in the query</para></remarks> /// <example> /// <code> /// // request all mainland, any maturity rating that is larger than 512 sq.m /// StartLandSearch(DirFindFlags.SortAsc | DirFindFlags.PerMeterSort | DirFindFlags.LimitByArea | DirFindFlags.IncludePG | DirFindFlags.IncludeMature | DirFindFlags.IncludeAdult, SearchTypeFlags.Mainland, 0, 512, 0); /// </code></example> public void StartLandSearch(DirFindFlags findFlags, SearchTypeFlags typeFlags, int priceLimit, int areaLimit, int queryStart) { DirLandQueryPacket query = new DirLandQueryPacket(); query.AgentData.AgentID = Client.Self.AgentID; query.AgentData.SessionID = Client.Self.SessionID; query.QueryData.Area = areaLimit; query.QueryData.Price = priceLimit; query.QueryData.QueryStart = queryStart; query.QueryData.SearchType = (uint)typeFlags; query.QueryData.QueryFlags = (uint)findFlags; query.QueryData.QueryID = UUID.Random(); Client.Network.SendPacket(query); }
public bool PeopleSearch(DirFindFlags findFlags, string searchText, int queryStart, int timeoutMS, out List<AgentSearchData> results) { AutoResetEvent searchEvent = new AutoResetEvent(false); UUID id = UUID.Zero; List<AgentSearchData> people = null; EventHandler<DirPeopleReplyEventArgs> callback = delegate(object sender, DirPeopleReplyEventArgs e) { if (id == e.QueryID) { people = e.MatchedPeople; searchEvent.Set(); } }; DirPeopleReply += callback; id = StartPeopleSearch(searchText, queryStart); searchEvent.WaitOne(timeoutMS, false); DirPeopleReply -= callback; results = people; return (results != null); }
/// <summary> /// Queries the dataserver for parcels of land which are flagged to be shown in search /// /// The <see cref="OnDirPlacesReply"/> event is raised when a response is received from the simulator /// </summary> /// <param name="searchText">A string containing a list of keywords to search for separated by a space character</param> /// <param name="queryFlags">A set of flags which can be ORed to modify query options /// such as classified maturity rating.</param> /// <param name="category">The category to search</param> /// <param name="queryStart">Each request is limited to 100 places /// being returned. To get the first 100 result entries of a request use 0, /// from 100-199 use 1, 200-299 use 2, etc.</param> /// <returns>A UUID to correlate the results when the <see cref="OnDirPlacesReply"/> event is raised</returns> /// <example> /// Search places containing the key words "foo" and "bar" in the "Any" category that are either PG or Adult /// <code> /// UUID searchID = StartDirPlacesSearch("foo bar", DirFindFlags.DwellSort | DirFindFlags.IncludePG | DirFindFlags.IncludeAdult, ParcelCategory.Any, 0); /// </code> /// </example> /// <remarks> /// Additional information on the results can be obtained by using the ParcelManager.InfoRequest method /// </remarks> public UUID StartDirPlacesSearch(string searchText, DirFindFlags queryFlags, ParcelCategory category, int queryStart) { DirPlacesQueryPacket query = new DirPlacesQueryPacket(); UUID queryID = UUID.Random(); query.AgentData.AgentID = Client.Self.AgentID; query.AgentData.SessionID = Client.Self.SessionID; query.QueryData.Category = (sbyte)category; query.QueryData.QueryFlags = (uint)queryFlags; query.QueryData.QueryID = queryID; query.QueryData.QueryText = Utils.StringToBytes(searchText); query.QueryData.QueryStart = queryStart; query.QueryData.SimName = Utils.StringToBytes(string.Empty); Client.Network.SendPacket(query); return queryID; }
public UUID StartGroupSearch(DirFindFlags findFlags, string searchText, int queryStart, UUID queryID) { DirFindQueryPacket find = new DirFindQueryPacket(); find.AgentData.AgentID = Network.AgentID; find.AgentData.SessionID = Network.SessionID; find.QueryData.QueryFlags = (uint)findFlags; find.QueryData.QueryText = Utils.StringToBytes(searchText); find.QueryData.QueryID = queryID; find.QueryData.QueryStart = queryStart; Network.SendPacket(find); return queryID; }
/// <summary> /// Search Places /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="searchCategory">One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer</param> /// <param name="groupID">LLUID of group you want to recieve results for</param> /// <param name="transactionID">Transaction (Query) ID which can be associated with results from your request.</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public LLUUID StartPlacesSearch(DirFindFlags findFlags, Parcel.ParcelCategory searchCategory, LLUUID groupID, LLUUID transactionID) { return StartPlacesSearch(findFlags, searchCategory, String.Empty, String.Empty, groupID, transactionID); }
/// <summary> /// Searches Places for Land owned by a specific user or group /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="groupID">LLUID of group you want to recieve land list for (You must be in group), or /// LLUID.Zero for Your own land</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public LLUUID StartPlacesSearch(DirFindFlags findFlags, LLUUID groupID) { return(StartPlacesSearch(findFlags, Parcel.ParcelCategory.Any, String.Empty, String.Empty, groupID, LLUUID.Random())); }
/// <summary> /// Starts a search for land sales using the directory /// </summary> /// <param name="findFlags">A flags parameter that can modify the way /// search results are returned, for example changing the ordering of /// results or limiting based on price or area</param> /// <param name="typeFlags">What type of land to search for. Auction, /// estate, mainland, "first land", etc</param> /// <param name="priceLimit">Maximum price to search for, the /// DirFindFlags.LimitByPrice flag must be set</param> /// <param name="areaLimit">Maximum area to search for, the /// DirFindFlags.LimitByArea flag must be set</param> /// <param name="queryStart">Each request is limited to 100 parcels /// being returned. To get the first 100 parcels of a request use 0, /// from 100-199 use 100, 200-299 use 200, etc.</param> /// <returns>A unique identifier that can identify packets associated /// with this query from other queries</returns> /// <remarks>The OnDirLandReply event handler must be registered before /// calling this function. There is no way to determine how many /// results will be returned, or how many times the callback will be /// fired other than you won't get more than 100 total parcels from /// each query.</remarks> public Guid StartLandSearch(DirFindFlags findFlags, SearchTypeFlags typeFlags, int priceLimit, int areaLimit, int queryStart) { Guid queryID = Guid.NewGuid(); DirLandQueryPacket query = new DirLandQueryPacket(); query.AgentData.AgentID = Client.Self.AgentID; query.AgentData.SessionID = Client.Self.SessionID; query.QueryData.Area = areaLimit; query.QueryData.Price = priceLimit; query.QueryData.QueryStart = queryStart; query.QueryData.SearchType = (uint)typeFlags; query.QueryData.QueryFlags = (uint)findFlags; query.QueryData.QueryID = queryID; Client.Network.SendPacket(query); return queryID; }
/// <summary> /// Search Places /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="searchCategory">One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer</param> /// <param name="groupID">LLUID of group you want to recieve results for</param> /// <param name="transactionID">Transaction (Query) ID which can be associated with results from your request.</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public Guid StartPlacesSearch(DirFindFlags findFlags, Parcel.ParcelCategory searchCategory, Guid groupID, Guid transactionID) { return StartPlacesSearch(findFlags, searchCategory, String.Empty, String.Empty, groupID, transactionID); }
/// <summary> /// Search for Groups /// </summary> /// <param name="searchText">The name or portion of the name of the group you wish to search for</param> /// <param name="queryStart">Start from the match number</param> /// <param name="flags">Search flags</param> /// <returns></returns> public UUID StartGroupSearch(string searchText, int queryStart, DirFindFlags flags) { DirFindQueryPacket find = new DirFindQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; find.QueryData.QueryFlags = (uint)flags; find.QueryData.QueryText = Utils.StringToBytes(searchText); find.QueryData.QueryID = UUID.Random(); find.QueryData.QueryStart = queryStart; Client.Network.SendPacket(find); return find.QueryData.QueryID; }
/// <summary> /// Searches Places for Land owned by a specific user or group /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="groupID">LLUID of group you want to recieve land list for (You must be in group), or /// LLUID.Zero for Your own land</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public Guid StartPlacesSearch(DirFindFlags findFlags, Guid groupID) { return StartPlacesSearch(findFlags, Parcel.ParcelCategory.Any, String.Empty, String.Empty, groupID, Guid.NewGuid()); }
public Guid StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart, Guid queryID) { DirFindQueryPacket find = new DirFindQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; find.QueryData.QueryFlags = (uint)findFlags; find.QueryData.QueryText = Utils.StringToBytes(searchText); find.QueryData.QueryID = queryID; find.QueryData.QueryStart = queryStart; Client.Network.SendPacket(find); return queryID; }
public Guid StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart) { return StartPeopleSearch(findFlags, searchText, queryStart, Guid.NewGuid()); }
/// <summary> /// Search Places - All Options /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="searchCategory">One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer</param> /// <param name="searchText">A string containing a list of keywords to search for separated by a space character</param> /// <param name="simulatorName">String Simulator Name to search in</param> /// <param name="groupID">LLUID of group you want to recieve results for</param> /// <param name="transactionID">Transaction (Query) ID which can be associated with results from your request.</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public UUID StartPlacesSearch(DirFindFlags findFlags, ParcelCategory searchCategory, string searchText, string simulatorName, UUID groupID, UUID transactionID) { PlacesQueryPacket find = new PlacesQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; find.AgentData.QueryID = groupID; find.TransactionData.TransactionID = transactionID; find.QueryData.QueryText = Utils.StringToBytes(searchText); find.QueryData.QueryFlags = (uint)findFlags; find.QueryData.Category = (sbyte)searchCategory; find.QueryData.SimName = Utils.StringToBytes(simulatorName); Client.Network.SendPacket(find); return transactionID; }
/// <summary> /// Starts a search for a Group in the directory manager /// </summary> /// <param name="findFlags"></param> /// <param name="searchText">The text to search for</param> /// <param name="queryStart">Each request is limited to 100 parcels /// being returned. To get the first 100 parcels of a request use 0, /// from 100-199 use 100, 200-299 use 200, etc.</param> /// <returns>A unique identifier that can identify packets associated /// with this query from other queries</returns> /// <remarks>The OnDirLandReply event handler must be registered before /// calling this function. There is no way to determine how many /// results will be returned, or how many times the callback will be /// fired other than you won't get more than 100 total parcels from /// each query.</remarks> public UUID StartGroupSearch(DirFindFlags findFlags, string searchText, int queryStart) { return(StartGroupSearch(findFlags, searchText, queryStart, UUID.Random())); }
public bool PeopleSearch(DirFindFlags findFlags, string searchText, int queryStart, int timeoutMS, out List<AgentSearchData> results) { AutoResetEvent searchEvent = new AutoResetEvent(false); Guid id = Guid.NewGuid(); List<AgentSearchData> people = null; DirPeopleReplyCallback callback = delegate(Guid queryid, List<AgentSearchData> matches) { if (id == queryid) { people = matches; searchEvent.Set(); } }; OnDirPeopleReply += callback; StartPeopleSearch(findFlags, searchText, queryStart, id); searchEvent.WaitOne(timeoutMS, false); OnDirPeopleReply -= callback; results = people; return (results != null); }
/// <summary> /// Starts a search for a Group in the directory manager /// </summary> /// <param name="findFlags"></param> /// <param name="searchText">The text to search for</param> /// <param name="queryStart">Each request is limited to 100 parcels /// being returned. To get the first 100 parcels of a request use 0, /// from 100-199 use 100, 200-299 use 200, etc.</param> /// <returns>A unique identifier that can identify packets associated /// with this query from other queries</returns> /// <remarks>The OnDirLandReply event handler must be registered before /// calling this function. There is no way to determine how many /// results will be returned, or how many times the callback will be /// fired other than you won't get more than 100 total parcels from /// each query.</remarks> public UUID StartGroupSearch(DirFindFlags findFlags, string searchText, int queryStart) { return StartGroupSearch(findFlags, searchText, queryStart, UUID.Random()); }
public LLUUID StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart) { return(StartPeopleSearch(findFlags, searchText, queryStart, LLUUID.Random())); }
public LLUUID StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart) { return StartPeopleSearch(findFlags, searchText, queryStart, LLUUID.Random()); }
/// <summary> /// Search Places /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="searchCategory">One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer</param> /// <param name="groupID">LLUID of group you want to recieve results for</param> /// <param name="transactionID">Transaction (Query) ID which can be associated with results from your request.</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public LLUUID StartPlacesSearch(DirFindFlags findFlags, Parcel.ParcelCategory searchCategory, LLUUID groupID, LLUUID transactionID) { return(StartPlacesSearch(findFlags, searchCategory, String.Empty, String.Empty, groupID, transactionID)); }
public LLUUID StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart, LLUUID queryID) { DirFindQueryPacket find = new DirFindQueryPacket(); find.AgentData.AgentID = Client.Self.AgentID; find.AgentData.SessionID = Client.Self.SessionID; find.QueryData.QueryFlags = (uint)findFlags; find.QueryData.QueryText = Helpers.StringToField(searchText); find.QueryData.QueryID = queryID; find.QueryData.QueryStart = queryStart; Client.Network.SendPacket(find); return queryID; }
/// <summary> /// Searches Places for Land owned by a specific user or group /// </summary> /// <param name="findFlags">One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc.</param> /// <param name="groupID">LLUID of group you want to recieve land list for (You must be in group), or /// LLUID.Zero for Your own land</param> /// <returns>Transaction (Query) ID which can be associated with results from your request.</returns> public LLUUID StartPlacesSearch(DirFindFlags findFlags, LLUUID groupID) { return StartPlacesSearch(findFlags, Parcel.ParcelCategory.Any, String.Empty, String.Empty, groupID, LLUUID.Random()); }
/// <summary> /// Starts a search for land sales using the directory /// </summary> /// <param name="findFlags">A flags parameter that can modify the way /// search results are returned, for example changing the ordering of /// results or limiting based on price or area</param> /// <param name="typeFlags">What type of land to search for. Auction, /// estate, mainland, "first land", etc</param> /// <param name="priceLimit">Maximum price to search for, the /// DirFindFlags.LimitByPrice flag must be set</param> /// <param name="areaLimit">Maximum area to search for, the /// DirFindFlags.LimitByArea flag must be set</param> /// <param name="queryStart">Each request is limited to 100 parcels /// being returned. To get the first 100 parcels of a request use 0, /// from 100-199 use 100, 200-299 use 200, etc.</param> /// <returns>A unique identifier that can identify packets associated /// with this query from other queries</returns> /// <remarks>The OnDirLandReply event handler must be registered before /// calling this function. There is no way to determine how many /// results will be returned, or how many times the callback will be /// fired other than you won't get more than 100 total parcels from /// each query.</remarks> public UUID StartLandSearch(DirFindFlags findFlags, SearchTypeFlags typeFlags, int priceLimit, int areaLimit, int queryStart) { UUID queryID = UUID.Random(); DirLandQueryPacket query = new DirLandQueryPacket(); query.AgentData.AgentID = Network.AgentID; query.AgentData.SessionID = Network.SessionID; query.QueryData.Area = areaLimit; query.QueryData.Price = priceLimit; query.QueryData.QueryStart = queryStart; query.QueryData.SearchType = (uint)typeFlags; query.QueryData.QueryFlags = (uint)findFlags; query.QueryData.QueryID = queryID; Network.SendPacket(query); return queryID; }