diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IInterregionComms.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs | 35 |
2 files changed, 19 insertions, 22 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IInterregionComms.cs b/OpenSim/Region/Framework/Interfaces/IInterregionComms.cs index b57b5ed..b5a9395 100644 --- a/OpenSim/Region/Framework/Interfaces/IInterregionComms.cs +++ b/OpenSim/Region/Framework/Interfaces/IInterregionComms.cs | |||
@@ -91,11 +91,11 @@ namespace OpenSim.Region.Framework.Interfaces | |||
91 | 91 | ||
92 | /// <summary> | 92 | /// <summary> |
93 | /// Create an object from the user's inventory in the destination region. | 93 | /// Create an object from the user's inventory in the destination region. |
94 | /// This message is used primarily for prim crossing. | 94 | /// This message is used primarily by clients. |
95 | /// </summary> | 95 | /// </summary> |
96 | /// <param name="regionHandle"></param> | 96 | /// <param name="regionHandle"></param> |
97 | /// <param name="sog"></param> | 97 | /// <param name="userID"></param> |
98 | /// <param name="isLocalCall"></param> | 98 | /// <param name="itemID"></param> |
99 | /// <returns></returns> | 99 | /// <returns></returns> |
100 | bool SendCreateObject(ulong regionHandle, UUID userID, UUID itemID); | 100 | bool SendCreateObject(ulong regionHandle, UUID userID, UUID itemID); |
101 | 101 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs index b192101..48ea519 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs | |||
@@ -333,29 +333,26 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid | |||
333 | 333 | ||
334 | public InventoryItemBase Get(InventoryItemBase item, UUID rootFolder, CachedUserInfo userInfo) | 334 | public InventoryItemBase Get(InventoryItemBase item, UUID rootFolder, CachedUserInfo userInfo) |
335 | { | 335 | { |
336 | if (!IsLocalUser(item.Owner)) | 336 | InventoryClient invCli = null; |
337 | string inventoryURL = UserInventoryURL(item.Owner); | ||
338 | if (!m_inventoryServers.TryGetValue(inventoryURL, out invCli)) | ||
337 | { | 339 | { |
338 | InventoryClient invCli = null; | 340 | m_log.Debug("[HGScene]: Starting new InventorytClient for " + inventoryURL); |
339 | string inventoryURL = UserInventoryURL(item.Owner); | 341 | invCli = new InventoryClient(inventoryURL); |
340 | if (!m_inventoryServers.TryGetValue(inventoryURL, out invCli)) | 342 | m_inventoryServers.Add(inventoryURL, invCli); |
341 | { | 343 | } |
342 | m_log.Debug("[HGScene]: Starting new InventorytClient for " + inventoryURL); | ||
343 | invCli = new InventoryClient(inventoryURL); | ||
344 | m_inventoryServers.Add(inventoryURL, invCli); | ||
345 | } | ||
346 | 344 | ||
347 | item = invCli.GetInventoryItem(item); | 345 | item = invCli.GetInventoryItem(item); |
348 | if (item != null) | 346 | if (item != null) |
347 | { | ||
348 | // Change the folder, stick it in root folder, all items flattened out here in this region cache | ||
349 | item.Folder = rootFolder; | ||
350 | //userInfo.AddItem(item); don't use this, it calls back to the inventory server | ||
351 | lock (userInfo.RootFolder.Items) | ||
349 | { | 352 | { |
350 | // Change the folder, stick it in root folder, all items flattened out here in this region cache | 353 | userInfo.RootFolder.Items[item.ID] = item; |
351 | item.Folder = rootFolder; | ||
352 | //userInfo.AddItem(item); don't use this, it calls back to the inventory server | ||
353 | lock (userInfo.RootFolder.Items) | ||
354 | { | ||
355 | userInfo.RootFolder.Items[item.ID] = item; | ||
356 | } | ||
357 | |||
358 | } | 354 | } |
355 | |||
359 | } | 356 | } |
360 | return item; | 357 | return item; |
361 | } | 358 | } |