void Inventory_FolderUpdated(object sender, FolderUpdatedEventArgs e) { if (e.Success) { //Console.WriteLine("Folder " + e.FolderID + " updated"); bool fetch = false; lock (m_processed) { if (!m_processed.Contains(e.FolderID)) { m_processed.Add(e.FolderID); fetch = true; } } if (fetch) { List<InventoryFolder> m_foldersToFetch = new List<InventoryFolder>(); foreach (InventoryBase item in Bot.Client.Inventory.Store.GetContents(e.FolderID)) { if (item is InventoryFolder) { InventoryFolder f = new InventoryFolder(item.UUID); f.OwnerID = item.OwnerID; m_foldersToFetch.Add(f); } } if (m_foldersToFetch.Count > 0) { m_Requests += 1; Bot.Client.Inventory.RequestFolderContentsCap(m_foldersToFetch, Bot.Client.Network.CurrentSim.Caps.CapabilityURI("FetchInventoryDescendents2"), true, true, InventorySortOrder.ByDate); } } if (Bot.Client.Inventory.Store.Items.Count >= 15739) { m_StopWatch.Stop(); Console.WriteLine("Stop! Total items: " + Bot.Client.Inventory.Store.Items.Count + "; Total requests: " + m_Requests + "; Time: " + m_StopWatch.Elapsed); } } }
///<summary>Raises the FolderUpdated Event</summary> /// <param name="e">A FolderUpdatedEventArgs object containing /// the data sent from the simulator</param> protected virtual void OnFolderUpdated(FolderUpdatedEventArgs e) { EventHandler<FolderUpdatedEventArgs> handler = m_FolderUpdated; if (handler != null) handler(this, e); }
void Inventory_FolderUpdated(object sender, FolderUpdatedEventArgs e) { if (COF == null) return; if (e.FolderID == COF.UUID && e.Success) { COF = (InventoryFolder)Client.Inventory.Store[COF.UUID]; lock (FolderSync) { lock (Content) Content.Clear(); List<UUID> items = new List<UUID>(); List<UUID> owners = new List<UUID>(); foreach (var link in ContentLinks()) { //if (Client.Inventory.Store.Contains(link.AssetUUID)) //{ // continue; //} items.Add(link.AssetUUID); owners.Add(Client.Self.AgentID); } if (items.Count > 0) { Client.Inventory.RequestFetchInventory(items, owners); } } } }
void Inventory_FolderUpdated(object sender, FolderUpdatedEventArgs e) { if (COF == null) return; if (e.FolderID == COF.UUID && e.Success) { lock (FolderSync) { lock (Content) Content.Clear(); lock (ContentLinks) ContentLinks.Clear(); List<InventoryBase> content = Client.Inventory.Store.GetContents(COF); foreach (var baseItem in content) { if (baseItem is InventoryItem) { InventoryItem item = (InventoryItem)baseItem; if (item.AssetType == AssetType.Link) { ContentLinks.Add(item); } } } List<UUID> items = new List<UUID>(); List<UUID> owners = new List<UUID>(); lock (ContentLinks) { foreach (var link in ContentLinks) { items.Add(link.AssetUUID); owners.Add(Client.Self.AgentID); } } if (items.Count > 0) { Client.Inventory.RequestFetchInventory(items, owners); } } } }
private void Inventory_OnFolderUpdated(object sender, FolderUpdatedEventArgs e) { var folderid = e.FolderID; lock (BusyUpdating) if (BusyUpdating.Contains(folderid)) return; LoadFolderId(folderid); // lock (BusyUpdating) if (BusyUpdating.Remove(folderid)) return; }
/* On-Folder-Updated folderID: "29a6c2e7-cfd0-4c59-a629-b81262a0d9a2" */ public override void Inventory_OnFolderUpdated(object sender, FolderUpdatedEventArgs e) { var folderID = e.FolderID; RegisterUUID(folderID, client.Inventory.Store[folderID]); //;;typeof(OpenMetaverse.InventoryFolder); //base.Inventory_OnFolderUpdated(folderID); }
//Seperate thread private void Inventory_OnFolderUpdated(object sender, FolderUpdatedEventArgs e) { if (InvokeRequired) { BeginInvoke(new MethodInvoker(delegate() { Inventory_OnFolderUpdated(sender, e); })); return; } try { if (!searching) { //if (folderproc == e.FolderID) //{ ////WorkPool.QueueUserWorkItem(new WaitCallback(UpdateFolder), e.FolderID); client.Inventory.FolderUpdated -= new EventHandler<FolderUpdatedEventArgs>(Inventory_OnFolderUpdated); UpdateFolder(e.FolderID); client.Inventory.FolderUpdated += new EventHandler<FolderUpdatedEventArgs>(Inventory_OnFolderUpdated); //folderproc = UUID.Zero; if (instance.CoF != null) { if (e.FolderID == instance.CoF.UUID) { instance.CoF = (InventoryFolder)client.Inventory.Store.Items[client.Inventory.FindFolderForType(AssetType.CurrentOutfitFolder)].Data; } } //} } } catch { ; } }
public void Inventory_FolderUpdated(object sender, FolderUpdatedEventArgs e) { List<InventoryBase> contents = Client.Inventory.Store.GetContents(e.FolderID); Hashtable roothash = new Hashtable(); roothash.Add("MessageType", "FolderUpdated"); roothash.Add("FolderID", e.FolderID); List<Hashtable> response = new List<Hashtable>(); lock (LoadedInventory) { foreach (InventoryBase o in contents) { if (LoadedInventory.Contains(o.UUID)) continue; LoadedInventory.Add(o.UUID); Hashtable hash = new Hashtable(); if (o is InventoryFolder) { InventoryFolder folder = (InventoryFolder)o; hash.Add("Type", "InventoryFolder"); hash.Add("Name", folder.Name); hash.Add("PreferredType", folder.PreferredType); hash.Add("OwnerID", folder.OwnerID); hash.Add("UUID", folder.UUID); response.Add(hash); } else if (o is InventoryItem) { InventoryItem item = (InventoryItem)o; hash.Add("Type", "InventoryItem"); hash.Add("Name", item.Name); hash.Add("UUID", item.UUID); hash.Add("AssetType", item.AssetType); hash.Add("AssetUUID", item.AssetUUID); hash.Add("CreatorID", item.CreatorID); hash.Add("OwnerID", item.OwnerID); hash.Add("CreationDate", item.CreationDate); hash.Add("Description", item.Description); hash.Add("Flags", item.Flags); hash.Add("InventoryType", item.InventoryType); hash.Add("Permissions", item.Permissions); response.Add(hash); } } } roothash.Add("Contents", response); enqueue(roothash); }
public virtual void Inventory_OnFolderUpdated(object sender, FolderUpdatedEventArgs e) { OnEvent("On-Folder-Updated", paramNamesOnFolderUpdated, paramTypesOnFolderUpdated, e); }
private void FashionBotModuleMain_OnFolderUpdated(object sender, FolderUpdatedEventArgs e) { EnumerateClothing(); }