aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-08-30 22:06:24 +0100
committerJustin Clark-Casey (justincc)2011-08-30 22:06:24 +0100
commite7a515bab0e46c228f8f543397f97b7ba2f0df3c (patch)
tree9c5bd0f2aea3f59b5a8b82da74b336f78f74c17e /OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
parentMerge branch 'master' into bulletsim (diff)
downloadopensim-SC_OLD-e7a515bab0e46c228f8f543397f97b7ba2f0df3c.zip
opensim-SC_OLD-e7a515bab0e46c228f8f543397f97b7ba2f0df3c.tar.gz
opensim-SC_OLD-e7a515bab0e46c228f8f543397f97b7ba2f0df3c.tar.bz2
opensim-SC_OLD-e7a515bab0e46c228f8f543397f97b7ba2f0df3c.tar.xz
Fix bug where attachments were remaining on the avatar after being dropped.
If the inventory service is configured not to allow deletion then these will not disappear from inventory
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs12
1 files changed, 10 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index 2d5eb18..b7a7f77 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -451,6 +451,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
451 451
452 public void DetachSingleAttachmentToGround(UUID sceneObjectID, IClientAPI remoteClient) 452 public void DetachSingleAttachmentToGround(UUID sceneObjectID, IClientAPI remoteClient)
453 { 453 {
454// m_log.DebugFormat(
455// "[ATTACHMENTS MODULE]: DetachSingleAttachmentToGround() for {0}, object {1}",
456// remoteClient.Name, sceneObjectID);
457
454 SceneObjectGroup so = m_scene.GetSceneObjectGroup(sceneObjectID); 458 SceneObjectGroup so = m_scene.GetSceneObjectGroup(sceneObjectID);
455 459
456 if (so == null) 460 if (so == null)
@@ -461,6 +465,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
461 465
462 UUID inventoryID = so.GetFromItemID(); 466 UUID inventoryID = so.GetFromItemID();
463 467
468// m_log.DebugFormat(
469// "[ATTACHMENTS MODULE]: In DetachSingleAttachmentToGround(), object is {0} {1}, associated item is {2}",
470// so.Name, so.LocalId, inventoryID);
471
464 ScenePresence presence; 472 ScenePresence presence;
465 if (m_scene.TryGetScenePresence(remoteClient.AgentId, out presence)) 473 if (m_scene.TryGetScenePresence(remoteClient.AgentId, out presence))
466 { 474 {
@@ -468,7 +476,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
468 so.PrimCount, remoteClient.AgentId, presence.AbsolutePosition)) 476 so.PrimCount, remoteClient.AgentId, presence.AbsolutePosition))
469 return; 477 return;
470 478
471 bool changed = presence.Appearance.DetachAttachment(sceneObjectID); 479 bool changed = presence.Appearance.DetachAttachment(inventoryID);
472 if (changed && m_scene.AvatarFactory != null) 480 if (changed && m_scene.AvatarFactory != null)
473 m_scene.AvatarFactory.QueueAppearanceSave(remoteClient.AgentId); 481 m_scene.AvatarFactory.QueueAppearanceSave(remoteClient.AgentId);
474 482
@@ -485,7 +493,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
485 } 493 }
486 494
487 /// <summary> 495 /// <summary>
488 /// Detach the given scene objet to the ground. 496 /// Detach the given scene object to the ground.
489 /// </summary> 497 /// </summary>
490 /// <remarks> 498 /// <remarks>
491 /// The caller has to take care of all the other work in updating avatar appearance, inventory, etc. 499 /// The caller has to take care of all the other work in updating avatar appearance, inventory, etc.