diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs index e668dae..eb07165 100644 --- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
46 | /// Save the attachments that have change on this presence. | 46 | /// Save the attachments that have change on this presence. |
47 | /// </summary> | 47 | /// </summary> |
48 | /// <param name="sp"></param> | 48 | /// <param name="sp"></param> |
49 | void SaveChangedAttachments(IScenePresence sp); | 49 | void SaveChangedAttachments(IScenePresence sp, bool saveAllScripted); |
50 | 50 | ||
51 | /// <summary> | 51 | /// <summary> |
52 | /// Delete all the presence's attachments from the scene | 52 | /// Delete all the presence's attachments from the scene |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index df6c88f..2af4a1c 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3104,7 +3104,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
3104 | m_eventManager.TriggerOnRemovePresence(agentID); | 3104 | m_eventManager.TriggerOnRemovePresence(agentID); |
3105 | 3105 | ||
3106 | if (AttachmentsModule != null && !avatar.IsChildAgent && avatar.PresenceType != PresenceType.Npc) | 3106 | if (AttachmentsModule != null && !avatar.IsChildAgent && avatar.PresenceType != PresenceType.Npc) |
3107 | AttachmentsModule.SaveChangedAttachments(avatar); | 3107 | { |
3108 | IUserManagement uMan = RequestModuleInterface<IUserManagement>(); | ||
3109 | // Don't save attachments for HG visitors, it | ||
3110 | // messes up their inventory. When a HG visitor logs | ||
3111 | // out on a foreign grid, their attachments will be | ||
3112 | // reloaded in the state they were in when they left | ||
3113 | // the home grid. This is best anyway as the visited | ||
3114 | // grid may use an incompatible script engine. | ||
3115 | if (uMan == null || uMan.IsLocalGridUser(avatar.UUID)) | ||
3116 | AttachmentsModule.SaveChangedAttachments(avatar, false); | ||
3117 | } | ||
3108 | 3118 | ||
3109 | ForEachClient( | 3119 | ForEachClient( |
3110 | delegate(IClientAPI client) | 3120 | delegate(IClientAPI client) |