From 412112acbafa6e1f111b12007fd3a81728d0b2f5 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 23 Mar 2009 00:11:34 +0000 Subject: Committing partial work on passing folders across instances. This may crash. --- .../Inventory/Transfer/InventoryTransferModule.cs | 33 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs') diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index 465167a..19b9b22 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs @@ -426,9 +426,38 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer if (AssetType.Folder == assetType) { - // Folders not implemented yet + UUID folderID = new UUID(msg.binaryBucket, 1); + InventoryFolderBase folder = new InventoryFolderBase(); + + folder.ID = folderID; + folder.Owner = user.ControllingClient.AgentId; + + // Fetch from database // - return; + if (!userInfo.QueryFolder(folder)) + { + m_log.Debug("[INVENTORY TRANSFER] Can't find folder to give"); + return; + } + + // Get folder info + // + InventoryFolderImpl folderInfo = userInfo.RootFolder.FindFolder(folder.ID); + if (folderInfo == null) + { + m_log.Debug("[INVENTORY TRANSFER] Can't retrieve folder to give"); + return; + } + + user.ControllingClient.SendBulkUpdateInventory(folderInfo); + + // Deliver message + // + user.ControllingClient.SendInstantMessage( + new UUID(msg.fromAgentID), msg.message, + new UUID(msg.toAgentID), + msg.fromAgentName, msg.dialog, msg.timestamp, + folderID, false, msg.binaryBucket); } else { -- cgit v1.1