Plumb the path for multiple object deletes

This commit is contained in:
Melanie
2010-10-06 19:59:30 +02:00
parent ca50f6a82c
commit 42f76773a1
6 changed files with 45 additions and 46 deletions

View File

@@ -196,13 +196,24 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
// currently calls this with multiple items.
UUID ret = UUID.Zero;
Dictionary<UUID, List<SceneObjectGroup>> deletes =
new Dictionary<UUID, List<SceneObjectGroup>>();
foreach (SceneObjectGroup g in objectGroups)
ret = DeleteToInventory(action, folderID, g, remoteClient);
{
if (!deletes.ContainsKey(g.OwnerID))
deletes[g.OwnerID] = new List<SceneObjectGroup>();
deletes[g.OwnerID].Add(g);
}
foreach (List<SceneObjectGroup> objlist in deletes.Values)
ret = DeleteToInventory(action, folderID, objlist, remoteClient);
return ret;
}
public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID,
private UUID DeleteToInventory(DeRezAction action, UUID folderID,
SceneObjectGroup objectGroup, IClientAPI remoteClient)
{
UUID assetID = UUID.Zero;
@@ -320,10 +331,20 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
}
else
{
// Catch all. Use lost & found
//
if (remoteClient == null ||
objectGroup.OwnerID != remoteClient.AgentId)
{
// Taking copy of another person's item. Take to
// Objects folder.
folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.Object);
}
else
{
// Catch all. Use lost & found
//
folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.LostAndFoundFolder);
folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.LostAndFoundFolder);
}
}
}