diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index e0009bb..e6d6cbf 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -646,11 +646,12 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
646 | } | 646 | } |
647 | else | 647 | else |
648 | { | 648 | { |
649 | if (remoteClient == null || so.OwnerID != remoteClient.AgentId) | 649 | if (remoteClient == null || so.RootPart.OwnerID != remoteClient.AgentId) |
650 | { | 650 | { |
651 | // Taking copy of another person's item. Take to | 651 | // Taking copy of another person's item. Take to |
652 | // Objects folder. | 652 | // Objects folder. |
653 | folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.Object); | 653 | folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.Object); |
654 | so.FromFolderID = UUID.Zero; | ||
654 | } | 655 | } |
655 | else | 656 | else |
656 | { | 657 | { |
@@ -666,10 +667,16 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
666 | // | 667 | // |
667 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) | 668 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) |
668 | { | 669 | { |
669 | if (so.FromFolderID != UUID.Zero && userID == remoteClient.AgentId) | 670 | if (so.FromFolderID != UUID.Zero && so.RootPart.OwnerID == remoteClient.AgentId) |
670 | { | 671 | { |
671 | InventoryFolderBase f = new InventoryFolderBase(so.FromFolderID, userID); | 672 | InventoryFolderBase f = new InventoryFolderBase(so.FromFolderID, userID); |
672 | folder = m_Scene.InventoryService.GetFolder(f); | 673 | folder = m_Scene.InventoryService.GetFolder(f); |
674 | |||
675 | if(folder.Type == 14 || folder.Type == 16) | ||
676 | { | ||
677 | // folder.Type = 6; | ||
678 | folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.Object); | ||
679 | } | ||
673 | } | 680 | } |
674 | } | 681 | } |
675 | 682 | ||