Inventory redirects from CachedUserInfo to InventoryService COMPLETE!

This commit is contained in:
Diva Canto
2009-08-13 11:30:29 -07:00
parent 6a0f7c2275
commit 6b9cc6c48d
10 changed files with 144 additions and 388 deletions

View File

@@ -201,31 +201,31 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
}
}
public InventoryItemBase Get(InventoryItemBase item, UUID rootFolder, CachedUserInfo userInfo)
{
InventoryClient invCli = null;
string inventoryURL = UserInventoryURL(item.Owner);
if (!m_inventoryServers.TryGetValue(inventoryURL, out invCli))
{
m_log.Debug("[HGScene]: Starting new InventorytClient for " + inventoryURL);
invCli = new InventoryClient(inventoryURL);
m_inventoryServers.Add(inventoryURL, invCli);
}
//public InventoryItemBase Get(InventoryItemBase item, UUID rootFolder, CachedUserInfo userInfo)
//{
// InventoryClient invCli = null;
// string inventoryURL = UserInventoryURL(item.Owner);
// if (!m_inventoryServers.TryGetValue(inventoryURL, out invCli))
// {
// m_log.Debug("[HGScene]: Starting new InventorytClient for " + inventoryURL);
// invCli = new InventoryClient(inventoryURL);
// m_inventoryServers.Add(inventoryURL, invCli);
// }
item = invCli.GetInventoryItem(item);
if (item != null)
{
// Change the folder, stick it in root folder, all items flattened out here in this region cache
item.Folder = rootFolder;
//userInfo.AddItem(item); don't use this, it calls back to the inventory server
lock (userInfo.RootFolder.Items)
{
userInfo.RootFolder.Items[item.ID] = item;
}
// item = invCli.GetInventoryItem(item);
// if (item != null)
// {
// // Change the folder, stick it in root folder, all items flattened out here in this region cache
// item.Folder = rootFolder;
// //userInfo.AddItem(item); don't use this, it calls back to the inventory server
// lock (userInfo.RootFolder.Items)
// {
// userInfo.RootFolder.Items[item.ID] = item;
// }
}
return item;
}
// }
// return item;
//}
public void Post(UUID assetID, UUID ownerID)
{

View File

@@ -117,25 +117,20 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
if (fromTaskID.Equals(UUID.Zero))
{
CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
if (userInfo != null)
InventoryItemBase item = new InventoryItemBase(itemID);
item.Owner = remoteClient.AgentId;
item = InventoryService.QueryItem(item);
//if (item == null)
//{ // Fetch the item
// item = new InventoryItemBase();
// item.Owner = remoteClient.AgentId;
// item.ID = itemID;
// item = m_assMapper.Get(item, userInfo.RootFolder.ID, userInfo);
//}
if (item != null)
{
if (userInfo.RootFolder != null)
{
InventoryItemBase item = userInfo.RootFolder.FindItem(itemID);
if (item == null)
{ // Fetch the item
item = new InventoryItemBase();
item.Owner = remoteClient.AgentId;
item.ID = itemID;
item = m_assMapper.Get(item, userInfo.RootFolder.ID, userInfo);
}
if (item != null)
{
m_assMapper.Get(item.AssetID, remoteClient.AgentId);
m_assMapper.Get(item.AssetID, remoteClient.AgentId);
}
}
}
}