diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index 1200105817..bf80a1cbb9 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -237,6 +237,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
SceneObjectGroup object1 = new SceneObjectGroup(part1);
// Let's put some inventory items into our object
+ string soundItemName = "sound-item1";
UUID soundItemUuid = UUID.Parse("00000000-0000-0000-0000-000000000002");
Type type = GetType();
Assembly assembly = type.Assembly;
@@ -269,7 +270,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
asset1FileName = ArchiveConstants.ASSETS_PATH + soundUuid + ".wav";
*/
- TaskInventoryItem item1 = new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid };
+ TaskInventoryItem item1
+ = new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid, Name = soundItemName };
part1.Inventory.AddInventoryItem(item1, true);
}
}
@@ -305,14 +307,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Assert.That(
object1PartLoaded.OffsetPosition, Is.EqualTo(offsetPosition), "object1 offset position not equal");
- // Need to implement a method to get the task inventory item by name (since the uuid will have changed on load)
- /*
- TaskInventoryItem loadedSoundItem = object1PartLoaded.Inventory.GetInventoryItem(soundItemUuid);
+ TaskInventoryItem loadedSoundItem = object1PartLoaded.Inventory.GetInventoryItems(soundItemName)[0];
Assert.That(loadedSoundItem, Is.Not.Null, "loaded sound item was null");
AssetBase loadedSoundAsset = scene.AssetService.Get(loadedSoundItem.AssetID.ToString());
Assert.That(loadedSoundAsset, Is.Not.Null, "loaded sound asset was null");
Assert.That(loadedSoundAsset.Data, Is.EqualTo(soundData), "saved and loaded sound data do not match");
- */
// Temporary
Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod());
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
index eeb51024e9..fa9bf19dee 100644
--- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
+++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
@@ -71,7 +71,8 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// Start all the scripts contained in this entity's inventory
///
- void CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource);
+ void CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource);
+
ArrayList GetScriptErrors(UUID itemID);
///
@@ -142,6 +143,16 @@ namespace OpenSim.Region.Framework.Interfaces
/// null if the item does not exist
TaskInventoryItem GetInventoryItem(UUID itemId);
+ ///
+ /// Get inventory items by name.
+ ///
+ ///
+ ///
+ /// A list of inventory items with that name.
+ /// If no inventory item has that name then an empty list is returned.
+ ///
+ IList GetInventoryItems(string name);
+
///
/// Update an existing inventory item.
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 5f132788e1..b37e1a29cf 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -554,8 +554,32 @@ namespace OpenSim.Region.Framework.Scenes
m_items.TryGetValue(itemId, out item);
return item;
- }
+ }
+ ///
+ /// Get inventory items by name.
+ ///
+ ///
+ ///
+ /// A list of inventory items with that name.
+ /// If no inventory item has that name then an empty list is returned.
+ ///
+ public IList GetInventoryItems(string name)
+ {
+ IList items = new List();
+
+ lock (m_items)
+ {
+ foreach (TaskInventoryItem item in m_items.Values)
+ {
+ if (item.Name == name)
+ items.Add(item);
+ }
+ }
+
+ return items;
+ }
+
///
/// Update an existing inventory item.
///