diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs index d647e71..6917b14 100644 --- a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs | |||
@@ -282,6 +282,27 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm | |||
282 | } | 282 | } |
283 | } | 283 | } |
284 | 284 | ||
285 | // wComm.DeliverMessageTo(target, channelID, m_host.Name, m_host.UUID, text); | ||
286 | public void DeliverMessageTo(UUID target, int channel, string name, UUID id, string msg) | ||
287 | { | ||
288 | foreach (ListenerInfo li in m_listenerManager.GetListeners(UUID.Zero, channel, name, id, msg)) | ||
289 | { | ||
290 | // Dont process if this message is from yourself! | ||
291 | if (li.GetHostID().Equals(id)) | ||
292 | continue; | ||
293 | |||
294 | SceneObjectPart sPart = m_scene.GetSceneObjectPart(li.GetHostID()); | ||
295 | if (sPart == null) | ||
296 | continue; | ||
297 | |||
298 | if ( li.GetHostID().Equals(target)) | ||
299 | { | ||
300 | QueueMessage(new ListenerInfo(li, name, id, msg)); | ||
301 | return; | ||
302 | } | ||
303 | } | ||
304 | } | ||
305 | |||
285 | protected void QueueMessage(ListenerInfo li) | 306 | protected void QueueMessage(ListenerInfo li) |
286 | { | 307 | { |
287 | lock (m_pending.SyncRoot) | 308 | lock (m_pending.SyncRoot) |