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.
0.6.0-stable
Charles Krinke 2008-05-19 20:05:10 +00:00
parent 9808f39b6f
commit 01b5425a2d
2 changed files with 25 additions and 1 deletions

View File

@ -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>

View File

@ -371,7 +371,7 @@ namespace OpenSim.Region.Environment.Scenes
itemCopy.Name = item.Name;
itemCopy.AssetType = item.AssetType;
itemCopy.InvType = item.InvType;
itemCopy.Folder = recipientUserInfo.RootFolder.ID;
itemCopy.Folder = LLUUID.Zero;
if (ExternalChecks.ExternalChecksPropagatePermissions())
{
if (item.InvType == 6)