From 61cb8c2e85de85b7f647ca268de0b69f3e9d70c8 Mon Sep 17 00:00:00 2001 From: Christopher Date: Sun, 28 Jun 2020 13:59:38 +0200 Subject: [PATCH] add error handling --- src/TextureFetcher.cs | 90 +++++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/src/TextureFetcher.cs b/src/TextureFetcher.cs index f9acede..813bc40 100644 --- a/src/TextureFetcher.cs +++ b/src/TextureFetcher.cs @@ -107,53 +107,59 @@ namespace OpenSim.Modules.TextureFetcher m_log.Info("[" + Name + "] Process part '" + part.Name + "'"); - List allTextures = new List(); - List inventoryItems = new List(); - - //Get all Textures from the scene object - Primitive.TextureEntry textures = part.Shape.Textures; - int allSides = part.GetNumberOfSides(); - for (uint i = 0; i < allSides; i++) - if (textures.FaceTextures[i] != null) - allTextures.Add(textures.FaceTextures[i].TextureID); - - - //Convert texture uuid list to inventar items. - foreach (UUID texture in allTextures) + try { - if (texture != UUID.Zero) + List allTextures = new List(); + List inventoryItems = new List(); + + //Get all Textures from the scene object + Primitive.TextureEntry textures = part.Shape.Textures; + int allSides = part.GetNumberOfSides(); + for (uint i = 0; i < allSides; i++) + if (textures.FaceTextures[i] != null) + allTextures.Add(textures.FaceTextures[i].TextureID); + + + //Convert texture uuid list to inventar items. + foreach (UUID texture in allTextures) { - TaskInventoryItem item = new TaskInventoryItem(); - item.AssetID = texture; - item.ItemID = UUID.Random(); - item.OwnerID = part.OwnerID; - item.CurrentPermissions = 581639; - item.Name = "tf-" + texture.ToString(); - item.Description = "This item was generated by the texture fetcher module."; - item.OwnerID = part.OwnerID; - item.CreatorID = part.OwnerID; - item.LastOwnerID = part.OwnerID; - inventoryItems.Add(item); + if (texture != UUID.Zero) + { + TaskInventoryItem item = new TaskInventoryItem(); + item.AssetID = texture; + item.ItemID = UUID.Random(); + item.OwnerID = part.OwnerID; + item.CurrentPermissions = 581639; + item.Name = "tf-" + texture.ToString(); + item.Description = "This item was generated by the texture fetcher module."; + item.OwnerID = part.OwnerID; + item.CreatorID = part.OwnerID; + item.LastOwnerID = part.OwnerID; + inventoryItems.Add(item); + } + } + + //Check if the item is allready in the inventory and then add it. + bool updateNeeded = false; + foreach (TaskInventoryItem item in inventoryItems) + { + if (!isAssetInInventory(part, item.AssetID)) + { + updateNeeded = true; + part.Inventory.AddInventoryItem(item, false); + m_log.Info("[" + Name + "] Add item '" + item.Name + "' to '" + part.Name + "'."); + } + } + + if (updateNeeded == true) + { + part.SendFullUpdateToAllClients(); } } - - //Check if the item is allready in the inventory and then add it. - bool updateNeeded = false; - foreach (TaskInventoryItem item in inventoryItems) + catch(Exception _error) { - if(!isAssetInInventory(part, item.AssetID)) - { - updateNeeded = true; - part.Inventory.AddInventoryItem(item, false); - m_log.Info("[" + Name + "] Add item '" + item.Name + "' to '" + part.Name + "'."); - } - } - - if(updateNeeded == true) - { - part.SendFullUpdateToAllClients(); - } - + m_log.Error("[" + Name + "] ERROR: " + _error.Message); + } } } }