mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
Thank you kindly, Melanie for a patch that avoids a null
ref in inventory give and also now causes items to appear in the correct folders now, no longer in the root folder.
This commit is contained in:
@@ -485,6 +485,14 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
{
|
||||
if (HasInventory)
|
||||
{
|
||||
if(item.Folder == LLUUID.Zero)
|
||||
{
|
||||
InventoryFolderImpl f=FindFolderForType(item.AssetType);
|
||||
if(f != null)
|
||||
item.Folder=f.ID;
|
||||
else
|
||||
item.Folder=RootFolder.ID;
|
||||
}
|
||||
ItemReceive(item);
|
||||
m_commsManager.InventoryService.AddItem(item);
|
||||
}
|
||||
@@ -606,6 +614,22 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private InventoryFolderImpl FindFolderForType(int type)
|
||||
{
|
||||
if(RootFolder == null)
|
||||
return null;
|
||||
|
||||
lock(RootFolder.SubFolders)
|
||||
{
|
||||
foreach (InventoryFolderImpl f in RootFolder.SubFolders.Values)
|
||||
{
|
||||
if(f.Type == type)
|
||||
return f;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user