aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
authorMelanie Thielker2016-07-04 03:35:48 +0100
committerMelanie Thielker2016-07-04 03:35:48 +0100
commitea8f3c83bf96453e8223d918933d5708fa49a3cc (patch)
tree288972a5d6f112426da2b5ab109fe18ba5aedc2e /OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
parentincrease xmlrpc timeout in xmlrpcgroups, disable its cache until its entries ... (diff)
downloadopensim-SC-ea8f3c83bf96453e8223d918933d5708fa49a3cc.zip
opensim-SC-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.gz
opensim-SC-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.bz2
opensim-SC-ea8f3c83bf96453e8223d918933d5708fa49a3cc.tar.xz
Finally remove the requirement for an InventoryItem/FolderBase object to
be passed into inventory queries. This makes the API more homogenous and also will more clearly show coding errors related to HG inventory where the .Owner field has a meaning for a query but wasn't always set.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.Inventory.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs27
1 files changed, 10 insertions, 17 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 30bc75b..f2df364 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -223,8 +223,7 @@ namespace OpenSim.Region.Framework.Scenes
223 223
224 if (core.TryGet<IClientInventory>(out inv)) 224 if (core.TryGet<IClientInventory>(out inv))
225 { 225 {
226 InventoryFolderBase parent = new InventoryFolderBase(f.ParentID, f.Owner); 226 InventoryFolderBase parent = InventoryService.GetFolder(f.Owner, f.ParentID);
227 parent = InventoryService.GetFolder(parent);
228 inv.SendRemoveInventoryItems(new UUID[] { item.ID }); 227 inv.SendRemoveInventoryItems(new UUID[] { item.ID });
229 inv.SendBulkUpdateInventory(new InventoryFolderBase[0], new InventoryItemBase[] { item }); 228 inv.SendBulkUpdateInventory(new InventoryFolderBase[0], new InventoryItemBase[] { item });
230 string message = "The item was placed in folder " + f.Name; 229 string message = "The item was placed in folder " + f.Name;
@@ -407,8 +406,7 @@ namespace OpenSim.Region.Framework.Scenes
407 // inventory. Rut-Roh. Whatever. Make this secure. Yeah. 406 // inventory. Rut-Roh. Whatever. Make this secure. Yeah.
408 // 407 //
409 // Passing something to another avatar or a an object will already 408 // Passing something to another avatar or a an object will already
410 InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId); 409 InventoryItemBase item = InventoryService.GetItem(remoteClient.AgentId, itemID);
411 item = InventoryService.GetItem(item);
412 410
413 if (item != null) 411 if (item != null)
414 { 412 {
@@ -585,8 +583,7 @@ namespace OpenSim.Region.Framework.Scenes
585 return null; 583 return null;
586 } 584 }
587 585
588 InventoryItemBase item = new InventoryItemBase(itemId, senderId); 586 InventoryItemBase item = InventoryService.GetItem(senderId, itemId);
589 item = InventoryService.GetItem(item);
590 587
591 if (item == null) 588 if (item == null)
592 { 589 {
@@ -807,7 +804,7 @@ namespace OpenSim.Region.Framework.Scenes
807 UUID recipientId, UUID senderId, UUID folderId, UUID recipientParentFolderId) 804 UUID recipientId, UUID senderId, UUID folderId, UUID recipientParentFolderId)
808 { 805 {
809 //// Retrieve the folder from the sender 806 //// Retrieve the folder from the sender
810 InventoryFolderBase folder = InventoryService.GetFolder(new InventoryFolderBase(folderId, senderId)); 807 InventoryFolderBase folder = InventoryService.GetFolder(senderId, folderId);
811 if (null == folder) 808 if (null == folder)
812 { 809 {
813 m_log.ErrorFormat( 810 m_log.ErrorFormat(
@@ -868,8 +865,7 @@ namespace OpenSim.Region.Framework.Scenes
868 865
869 if (item == null) 866 if (item == null)
870 { 867 {
871 item = new InventoryItemBase(oldItemID, remoteClient.AgentId); 868 item = InventoryService.GetItem(remoteClient.AgentId, oldItemID);
872 item = InventoryService.GetItem(item);
873 869
874 if (item == null) 870 if (item == null)
875 { 871 {
@@ -953,7 +949,7 @@ namespace OpenSim.Region.Framework.Scenes
953 foreach (InventoryItemBase b in items) 949 foreach (InventoryItemBase b in items)
954 { 950 {
955 CopyInventoryItem(remoteClient, 0, remoteClient.AgentId, b.ID, b.Folder, null); 951 CopyInventoryItem(remoteClient, 0, remoteClient.AgentId, b.ID, b.Folder, null);
956 InventoryItemBase n = InventoryService.GetItem(b); 952 InventoryItemBase n = InventoryService.GetItem(b.Owner, b.ID);
957 n.Folder = destfolder; 953 n.Folder = destfolder;
958 moveitems.Add(n); 954 moveitems.Add(n);
959 remoteClient.SendInventoryItemCreateUpdate(n, 0); 955 remoteClient.SendInventoryItemCreateUpdate(n, 0);
@@ -1605,8 +1601,7 @@ namespace OpenSim.Region.Framework.Scenes
1605 InventoryCollection contents = InventoryService.GetFolderContent(client.AgentId, folder.ID); 1601 InventoryCollection contents = InventoryService.GetFolderContent(client.AgentId, folder.ID);
1606 1602
1607 // Fetch the folder itself to get its current version 1603 // Fetch the folder itself to get its current version
1608 InventoryFolderBase containingFolder = new InventoryFolderBase(folder.ID, client.AgentId); 1604 InventoryFolderBase containingFolder = InventoryService.GetFolder(client.AgentId, folder.ID);
1609 containingFolder = InventoryService.GetFolder(containingFolder);
1610 1605
1611// m_log.DebugFormat("[AGENT INVENTORY]: Sending inventory folder contents ({0} nodes) for \"{1}\" to {2} {3}", 1606// m_log.DebugFormat("[AGENT INVENTORY]: Sending inventory folder contents ({0} nodes) for \"{1}\" to {2} {3}",
1612// contents.Folders.Count + contents.Items.Count, containingFolder.Name, client.FirstName, client.LastName); 1607// contents.Folders.Count + contents.Items.Count, containingFolder.Name, client.FirstName, client.LastName);
@@ -1620,7 +1615,7 @@ namespace OpenSim.Region.Framework.Scenes
1620 { 1615 {
1621 if (item.AssetType == (int)AssetType.Link) 1616 if (item.AssetType == (int)AssetType.Link)
1622 { 1617 {
1623 InventoryItemBase linkedItem = InventoryService.GetItem(new InventoryItemBase(item.AssetID)); 1618 InventoryItemBase linkedItem = InventoryService.GetItem(client.AgentId, item.AssetID);
1624 1619
1625 // Take care of genuinely broken links where the target doesn't exist 1620 // Take care of genuinely broken links where the target doesn't exist
1626 // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate, 1621 // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate,
@@ -1680,8 +1675,7 @@ namespace OpenSim.Region.Framework.Scenes
1680 UUID copyID = UUID.Random(); 1675 UUID copyID = UUID.Random();
1681 if (itemID != UUID.Zero) 1676 if (itemID != UUID.Zero)
1682 { 1677 {
1683 InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId); 1678 InventoryItemBase item = InventoryService.GetItem(remoteClient.AgentId, itemID);
1684 item = InventoryService.GetItem(item);
1685 1679
1686 // Try library 1680 // Try library
1687 if (null == item && LibraryService != null && LibraryService.LibraryRootFolder != null) 1681 if (null == item && LibraryService != null && LibraryService.LibraryRootFolder != null)
@@ -1836,8 +1830,7 @@ namespace OpenSim.Region.Framework.Scenes
1836 public SceneObjectPart RezScriptFromAgentInventory(UUID agentID, UUID fromItemID, uint localID) 1830 public SceneObjectPart RezScriptFromAgentInventory(UUID agentID, UUID fromItemID, uint localID)
1837 { 1831 {
1838 UUID copyID = UUID.Random(); 1832 UUID copyID = UUID.Random();
1839 InventoryItemBase item = new InventoryItemBase(fromItemID, agentID); 1833 InventoryItemBase item = InventoryService.GetItem(agentID, fromItemID);
1840 item = InventoryService.GetItem(item);
1841 1834
1842 // Try library 1835 // Try library
1843 // XXX clumsy, possibly should be one call 1836 // XXX clumsy, possibly should be one call