diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 117427fc48..af75ea9c55 100755 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs @@ -118,6 +118,17 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments return; m_invAccessModule = m_scene.RequestModuleInterface(); + if(m_invAccessModule is null) + { + Enabled = false; + m_scene.UnregisterModuleInterface(this); + m_scene.EventManager.OnNewClient -= SubscribeToClientEvents; + m_scene.EventManager.OnStartScript -= OnScriptStarted; + m_scene.EventManager.OnStopScript -= OnScriptStopped; + m_log.WarnFormat("[ATTACHMENTS MODULE]: InventoryService unvailable!. Module disabled"); + return; + } + m_regionConsole = scene.RequestModuleInterface(); if (m_regionConsole != null) { diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs index cd8e96457e..051398ff49 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs @@ -322,6 +322,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess if (item == null || item.AssetID.IsZero()) return null; + if (attachment && (item.Flags & (uint)InventoryItemFlags.ObjectHasMultipleItems) != 0) + { + if (remoteClient != null && remoteClient.IsActive) + remoteClient.SendAlertMessage("You can't attach multiple objects to one spot"); + return null; + } + string userAssetServer; if (IsForeignUser(remoteClient.AgentId, out userAssetServer)) { diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 772e432314..3c792aac83 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs @@ -926,6 +926,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess if (item == null) return null; + if (attachment && (item.Flags & (uint)InventoryItemFlags.ObjectHasMultipleItems) != 0) + { + if (remoteClient != null && remoteClient.IsActive) + remoteClient.SendAlertMessage("You can't attach multiple objects to one spot"); + return null; + } + item.Owner = remoteClient.AgentId; return RezObject(