aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs48
1 files changed, 40 insertions, 8 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 7cedde0..4e871d9 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -70,18 +70,18 @@ namespace OpenSim.Region.Framework.Scenes
70 70
71 public void AddUploadedInventoryItem(UUID agentID, InventoryItemBase item) 71 public void AddUploadedInventoryItem(UUID agentID, InventoryItemBase item)
72 { 72 {
73 IMoneyModule money=RequestModuleInterface<IMoneyModule>(); 73 IMoneyModule money = RequestModuleInterface<IMoneyModule>();
74 if (money != null) 74 if (money != null)
75 { 75 {
76 money.ApplyUploadCharge(agentID, money.UploadCharge, "Asset upload"); 76 money.ApplyUploadCharge(agentID, money.UploadCharge, "Asset upload");
77 } 77 }
78 78
79 AddInventoryItem(agentID, item); 79 AddInventoryItem(item);
80 } 80 }
81 81
82 public bool AddInventoryItemReturned(UUID AgentId, InventoryItemBase item) 82 public bool AddInventoryItemReturned(UUID AgentId, InventoryItemBase item)
83 { 83 {
84 if (InventoryService.AddItem(item)) 84 if (AddInventoryItem(item))
85 return true; 85 return true;
86 else 86 else
87 { 87 {
@@ -96,8 +96,36 @@ namespace OpenSim.Region.Framework.Scenes
96 /// Add the given inventory item to a user's inventory. 96 /// Add the given inventory item to a user's inventory.
97 /// </summary> 97 /// </summary>
98 /// <param name="item"></param> 98 /// <param name="item"></param>
99 public void AddInventoryItem(InventoryItemBase item) 99 public bool AddInventoryItem(InventoryItemBase item)
100 { 100 {
101 if (UUID.Zero == item.Folder)
102 {
103 InventoryFolderBase f = InventoryService.GetFolderForType(item.Owner, (AssetType)item.AssetType);
104 if (f != null)
105 {
106// m_log.DebugFormat(
107// "[LOCAL INVENTORY SERVICES CONNECTOR]: Found folder {0} type {1} for item {2}",
108// f.Name, (AssetType)f.Type, item.Name);
109
110 item.Folder = f.ID;
111 }
112 else
113 {
114 f = InventoryService.GetRootFolder(item.Owner);
115 if (f != null)
116 {
117 item.Folder = f.ID;
118 }
119 else
120 {
121 m_log.WarnFormat(
122 "[AGENT INVENTORY]: Could not find root folder for {0} when trying to add item {1} with no parent folder specified",
123 item.Owner, item.Name);
124 return false;
125 }
126 }
127 }
128
101 if (InventoryService.AddItem(item)) 129 if (InventoryService.AddItem(item))
102 { 130 {
103 int userlevel = 0; 131 int userlevel = 0;
@@ -106,6 +134,8 @@ namespace OpenSim.Region.Framework.Scenes
106 userlevel = 1; 134 userlevel = 1;
107 } 135 }
108 EventManager.TriggerOnNewInventoryItemUploadComplete(item.Owner, item.AssetID, item.Name, userlevel); 136 EventManager.TriggerOnNewInventoryItemUploadComplete(item.Owner, item.AssetID, item.Name, userlevel);
137
138 return true;
109 } 139 }
110 else 140 else
111 { 141 {
@@ -113,7 +143,7 @@ namespace OpenSim.Region.Framework.Scenes
113 "[AGENT INVENTORY]: Agent {0} could not add item {1} {2}", 143 "[AGENT INVENTORY]: Agent {0} could not add item {1} {2}",
114 item.Owner, item.Name, item.ID); 144 item.Owner, item.Name, item.ID);
115 145
116 return; 146 return false;
117 } 147 }
118 } 148 }
119 149
@@ -538,7 +568,7 @@ namespace OpenSim.Region.Framework.Scenes
538 itemCopy.SalePrice = item.SalePrice; 568 itemCopy.SalePrice = item.SalePrice;
539 itemCopy.SaleType = item.SaleType; 569 itemCopy.SaleType = item.SaleType;
540 570
541 if (InventoryService.AddItem(itemCopy)) 571 if (AddInventoryItem(itemCopy))
542 { 572 {
543 IInventoryAccessModule invAccess = RequestModuleInterface<IInventoryAccessModule>(); 573 IInventoryAccessModule invAccess = RequestModuleInterface<IInventoryAccessModule>();
544 if (invAccess != null) 574 if (invAccess != null)
@@ -764,8 +794,10 @@ namespace OpenSim.Region.Framework.Scenes
764 item.BasePermissions = baseMask; 794 item.BasePermissions = baseMask;
765 item.CreationDate = creationDate; 795 item.CreationDate = creationDate;
766 796
767 if (InventoryService.AddItem(item)) 797 if (AddInventoryItem(item))
798 {
768 remoteClient.SendInventoryItemCreateUpdate(item, callbackID); 799 remoteClient.SendInventoryItemCreateUpdate(item, callbackID);
800 }
769 else 801 else
770 { 802 {
771 m_dialogModule.SendAlertToUser(remoteClient, "Failed to create item"); 803 m_dialogModule.SendAlertToUser(remoteClient, "Failed to create item");
@@ -1886,7 +1918,7 @@ namespace OpenSim.Region.Framework.Scenes
1886 // sets itemID so client can show item as 'attached' in inventory 1918 // sets itemID so client can show item as 'attached' in inventory
1887 grp.SetFromItemID(item.ID); 1919 grp.SetFromItemID(item.ID);
1888 1920
1889 if (InventoryService.AddItem(item)) 1921 if (AddInventoryItem(item))
1890 remoteClient.SendInventoryItemCreateUpdate(item, 0); 1922 remoteClient.SendInventoryItemCreateUpdate(item, 0);
1891 else 1923 else
1892 m_dialogModule.SendAlertToUser(remoteClient, "Operation failed"); 1924 m_dialogModule.SendAlertToUser(remoteClient, "Operation failed");