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 (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);
|
ItemReceive(item);
|
||||||
m_commsManager.InventoryService.AddItem(item);
|
m_commsManager.InventoryService.AddItem(item);
|
||||||
}
|
}
|
||||||
|
@ -606,6 +614,22 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
return true;
|
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>
|
/// <summary>
|
||||||
|
|
|
@ -371,7 +371,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
itemCopy.Name = item.Name;
|
itemCopy.Name = item.Name;
|
||||||
itemCopy.AssetType = item.AssetType;
|
itemCopy.AssetType = item.AssetType;
|
||||||
itemCopy.InvType = item.InvType;
|
itemCopy.InvType = item.InvType;
|
||||||
itemCopy.Folder = recipientUserInfo.RootFolder.ID;
|
itemCopy.Folder = LLUUID.Zero;
|
||||||
if (ExternalChecks.ExternalChecksPropagatePermissions())
|
if (ExternalChecks.ExternalChecksPropagatePermissions())
|
||||||
{
|
{
|
||||||
if (item.InvType == 6)
|
if (item.InvType == 6)
|
||||||
|
|
Loading…
Reference in New Issue