diff options
author | Justin Clark-Casey (justincc) | 2011-08-30 22:06:24 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-08-30 22:06:24 +0100 |
commit | e7a515bab0e46c228f8f543397f97b7ba2f0df3c (patch) | |
tree | 9c5bd0f2aea3f59b5a8b82da74b336f78f74c17e /OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |
parent | Merge branch 'master' into bulletsim (diff) | |
download | opensim-SC-e7a515bab0e46c228f8f543397f97b7ba2f0df3c.zip opensim-SC-e7a515bab0e46c228f8f543397f97b7ba2f0df3c.tar.gz opensim-SC-e7a515bab0e46c228f8f543397f97b7ba2f0df3c.tar.bz2 opensim-SC-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 'OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 12 |
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. |