aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs21
1 files changed, 21 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 05c0a28..eac74c2 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1009,6 +1009,21 @@ namespace OpenSim.Region.Environment.Scenes
1009 return; 1009 return;
1010 } 1010 }
1011 1011
1012 // todo: also check llAllowInventoryDrop when implemented
1013 if(part.OwnerID != destPart.OwnerID)
1014 {
1015 // object cannot copy items to an object owned by a different owner
1016 // unless llAllowInventoryDrop has been called
1017
1018 return;
1019 }
1020
1021 // must have both move and modify permission to put an item in an object
1022 if((part.OwnerMask & ((uint)PermissionMask.Move | (uint)PermissionMask.Modify)) == 0 )
1023 {
1024 return;
1025 }
1026
1012 TaskInventoryItem destTaskItem = new TaskInventoryItem(); 1027 TaskInventoryItem destTaskItem = new TaskInventoryItem();
1013 1028
1014 destTaskItem.ItemID = LLUUID.Random(); 1029 destTaskItem.ItemID = LLUUID.Random();
@@ -1051,7 +1066,13 @@ namespace OpenSim.Region.Environment.Scenes
1051 1066
1052 if ((srcTaskItem.OwnerMask & (uint)PermissionMask.Copy) == 0) 1067 if ((srcTaskItem.OwnerMask & (uint)PermissionMask.Copy) == 0)
1053 part.RemoveInventoryItem(itemId); 1068 part.RemoveInventoryItem(itemId);
1069
1070 ScenePresence avatar;
1054 1071
1072 if(TryGetAvatar(srcTaskItem.OwnerID, out avatar))
1073 {
1074 destPart.GetProperties(avatar.ControllingClient);
1075 }
1055 } 1076 }
1056 1077
1057 public void MoveTaskInventoryItems(LLUUID destID, string category, SceneObjectPart host, List<LLUUID> items) 1078 public void MoveTaskInventoryItems(LLUUID destID, string category, SceneObjectPart host, List<LLUUID> items)