diff options
author | Charles Krinke | 2008-06-26 20:52:05 +0000 |
---|---|---|
committer | Charles Krinke | 2008-06-26 20:52:05 +0000 |
commit | 751150100b2276626346aaf2a1886b758751e9c7 (patch) | |
tree | 772e17e060e35401d5a23ef91e26a06f8fb1b757 /OpenSim/Region | |
parent | Apply patch from bug #1609 -- Documentation for Data/MSSQL. Thanks kerunix_F... (diff) | |
download | opensim-SC-751150100b2276626346aaf2a1886b758751e9c7.zip opensim-SC-751150100b2276626346aaf2a1886b758751e9c7.tar.gz opensim-SC-751150100b2276626346aaf2a1886b758751e9c7.tar.bz2 opensim-SC-751150100b2276626346aaf2a1886b758751e9c7.tar.xz |
Mantis#1603. Thank you, Matth for a patch to llGiveInventory
and Melanie for helping to finish it.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 21 |
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) |