aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.Inventory.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index a7bce49..c139fd9 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -2293,6 +2293,37 @@ namespace OpenSim.Region.Environment.Scenes
2293 m_innerScene.AttachObject(controllingClient, localID, attachPoint, rot, pos); 2293 m_innerScene.AttachObject(controllingClient, localID, attachPoint, rot, pos);
2294 } 2294 }
2295 2295
2296 public void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient)
2297 {
2298 SceneObjectPart part = GetSceneObjectPart(itemID);
2299 if(part == null || part.ParentGroup == null)
2300 return;
2301
2302 UUID inventoryID = part.ParentGroup.GetFromAssetID();
2303
2304 ScenePresence presence;
2305 if (TryGetAvatar(remoteClient.AgentId, out presence))
2306 {
2307 if(!ExternalChecks.ExternalChecksCanRezObject(part.ParentGroup.Children.Count, remoteClient.AgentId, presence.AbsolutePosition))
2308 return;
2309
2310 presence.Appearance.DetachAttachment(itemID);
2311 IAvatarFactory ava = RequestModuleInterface<IAvatarFactory>();
2312 if (ava != null)
2313 {
2314 ava.UpdateDatabase(remoteClient.AgentId, presence.Appearance);
2315 }
2316 part.ParentGroup.DetachToGround();
2317 CachedUserInfo userInfo =
2318 CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
2319 if (userInfo != null)
2320 {
2321 userInfo.DeleteItem(inventoryID);
2322 remoteClient.SendRemoveInventoryItem(inventoryID);
2323 }
2324 }
2325 }
2326
2296 public void DetachSingleAttachmentToInv(UUID itemID, IClientAPI remoteClient) 2327 public void DetachSingleAttachmentToInv(UUID itemID, IClientAPI remoteClient)
2297 { 2328 {
2298 ScenePresence presence; 2329 ScenePresence presence;