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
parent
9808f39b6f
commit
01b5425a2d
|
@ -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>
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue