コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        /// <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;
        }
コード例 #7
0
        /// <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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        /// <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;
        }
コード例 #10
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 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;
 }
コード例 #11
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 /// <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);
 }
コード例 #12
0
 /// <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()));
 }
コード例 #13
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
        /// <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;
        }
コード例 #14
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 /// <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);
 }
コード例 #15
0
        /// <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;
        }
コード例 #16
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 /// <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());
 }
コード例 #17
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
        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;
        }
コード例 #18
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 public Guid StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart)
 {
     return StartPeopleSearch(findFlags, searchText, queryStart, Guid.NewGuid());
 }
コード例 #19
0
        /// <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;
        }
コード例 #20
0
 /// <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()));
 }
コード例 #21
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
        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);
        }
コード例 #22
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 /// <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());
 }
コード例 #23
0
 public LLUUID StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart)
 {
     return(StartPeopleSearch(findFlags, searchText, queryStart, LLUUID.Random()));
 }
コード例 #24
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 public LLUUID StartPeopleSearch(DirFindFlags findFlags, string searchText, int queryStart)
 {
     return StartPeopleSearch(findFlags, searchText, queryStart, LLUUID.Random());
 }
コード例 #25
0
 /// <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));
 }
コード例 #26
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
        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;
        }
コード例 #27
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
 /// <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());
 }
コード例 #28
0
ファイル: DirectoryManager.cs プロジェクト: RavenB/gridsearch
        /// <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;
        }