From 278687b1e8bed66e205497ebdef839280dfa5cd2 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 20 Nov 2015 00:01:13 +0000 Subject: [PATCH] remove duplicate object chat messages ( mantis 7745 ),fix llRegionSay, this are still merge issues --- .../Scripting/WorldComm/WorldCommModule.cs | 5 +++++ .../Shared/Api/Implementation/LSL_Api.cs | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs index 1a53a8ba45..9282897397 100644 --- a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs @@ -311,6 +311,7 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm // Determine which listen event filters match the given set of arguments, this results // in a limited set of listeners, each belonging a host. If the host is in range, add them // to the pending queue. + foreach (ListenerInfo li in m_listenerManager.GetListeners(UUID.Zero, channel, name, id, msg)) @@ -386,6 +387,10 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm return true; } + // for now messages to prims don't cross regions + if(sp.IsChildAgent) + return false; + List attachments = sp.GetAttachments(); if (attachments.Count == 0) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index c8deec5f20..e2b3ef4e21 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -1264,8 +1264,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api m_host.AddScriptLPS(1); - World.SimChat(Utils.StringToBytes(text), - ChatTypeEnum.Region, channelID, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, false); + // debug channel is also sent to avatars + if (channelID == ScriptBaseClass.DEBUG_CHANNEL) + { + World.SimChat(Utils.StringToBytes(text), + ChatTypeEnum.Shout, channelID, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, true); + + } IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface(); if (wComm != null) @@ -1280,16 +1285,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api m_host.AddScriptLPS(1); if (channel == ScriptBaseClass.DEBUG_CHANNEL) - { return; - } UUID TargetID; UUID.TryParse(target, out TargetID); - World.SimChatToAgent(TargetID, Utils.StringToBytes(msg), - channel, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, true); - IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface(); if (wComm != null) wComm.DeliverMessageTo(TargetID, channel, m_host.AbsolutePosition, m_host.Name, m_host.UUID, msg);