From 41ad610f3e44d2c73451ab49b71e697259c8c965 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 12 Aug 2009 13:11:15 -0700 Subject: * Added two new packet handler implementations for inventory ops. This is starting to work! - but can't be activated incrementally, the flip needs to be global for all inventory ops. * Added a base inventory connector that does common processing of inventory among all reference connector implementations. E.g. AddItem requires additional processing before being forwarded to service. * Added if (m_Enabled) upon RemoveRegion --- .../Framework/Scenes/Scene.PacketHandlers.cs | 31 +++++++++++++++++++++- OpenSim/Region/Framework/Scenes/Scene.cs | 6 +++-- 2 files changed, 34 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index 9251aa6..113918d 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs @@ -622,8 +622,26 @@ namespace OpenSim.Region.Framework.Scenes "[AGENT INVENTORY]: Failed to move folder {0} to {1} for user {2}", folderID, parentID, remoteClient.Name); } + } + + public void HandleMoveInventoryFolder2(IClientAPI remoteClient, UUID folderID, UUID parentID) + { + InventoryFolderBase folder = new InventoryFolderBase(folderID); + folder = InventoryService.QueryFolder(folder); + if (folder != null) + { + folder.ParentID = parentID; + if (!InventoryService.MoveFolder(folder)) + m_log.WarnFormat("[AGENT INVENTORY]: could not move folder {0}", folderID); + else + m_log.DebugFormat("[AGENT INVENTORY]: folder {0} moved to parent {1}", folderID, parentID); + } + else + { + m_log.WarnFormat("[AGENT INVENTORY]: request to move folder {0} but folder not found", folderID); + } } - + /// /// This should delete all the items and folders in the given directory. /// @@ -647,6 +665,17 @@ namespace OpenSim.Region.Framework.Scenes "[AGENT INVENTORY]: Failed to purge folder for user {0} {1}", remoteClient.Name, remoteClient.AgentId); } + } + + public void HandlePurgeInventoryDescendents2(IClientAPI remoteClient, UUID folderID) + { + InventoryFolderBase folder = new InventoryFolderBase(folderID); + + if (InventoryService.PurgeFolder(folder)) + m_log.DebugFormat("[AGENT INVENTORY]: folder {0} purged successfully", folderID); + else + m_log.WarnFormat("[AGENT INVENTORY]: could not purge folder {0}", folderID); } + } } diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 7f1936e..919075c 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -2019,12 +2019,13 @@ namespace OpenSim.Region.Framework.Scenes client.OnUpdatePrimFlags += m_sceneGraph.UpdatePrimFlags; client.OnRequestObjectPropertiesFamily += m_sceneGraph.RequestObjectPropertiesFamily; client.OnObjectPermissions += HandleObjectPermissionsUpdate; + client.OnCreateNewInventoryItem += CreateNewInventoryItem; client.OnCreateNewInventoryFolder += HandleCreateInventoryFolder; client.OnUpdateInventoryFolder += HandleUpdateInventoryFolder; - client.OnMoveInventoryFolder += HandleMoveInventoryFolder; + client.OnMoveInventoryFolder += HandleMoveInventoryFolder; // 2; //!! client.OnFetchInventoryDescendents += HandleFetchInventoryDescendents; - client.OnPurgeInventoryDescendents += HandlePurgeInventoryDescendents; + client.OnPurgeInventoryDescendents += HandlePurgeInventoryDescendents; // 2; //!! client.OnFetchInventory += HandleFetchInventory; client.OnUpdateInventoryItem += UpdateInventoryItemAsset; client.OnCopyInventoryItem += CopyInventoryItem; @@ -2036,6 +2037,7 @@ namespace OpenSim.Region.Framework.Scenes client.OnRemoveTaskItem += RemoveTaskInventory; client.OnUpdateTaskInventory += UpdateTaskInventory; client.OnMoveTaskItem += ClientMoveTaskInventoryItem; + client.OnGrabObject += ProcessObjectGrab; client.OnDeGrabObject += ProcessObjectDeGrab; client.OnMoneyTransferRequest += ProcessMoneyTransferRequest; -- cgit v1.1