diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs index 38d2d21..b8e0c29 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs | |||
@@ -48,6 +48,10 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
48 | private List<Scene> m_Scenes = new List<Scene>(); | 48 | private List<Scene> m_Scenes = new List<Scene>(); |
49 | private Dictionary<UUID, ulong> m_UserRegionMap = new Dictionary<UUID, ulong>(); | 49 | private Dictionary<UUID, ulong> m_UserRegionMap = new Dictionary<UUID, ulong>(); |
50 | 50 | ||
51 | public event ExternalHandleIM OnExternalIMCapture; | ||
52 | |||
53 | private ExternalHandleIM handlerExternalIMCapture; | ||
54 | |||
51 | public void Initialise(Scene scene, IConfigSource config) | 55 | public void Initialise(Scene scene, IConfigSource config) |
52 | { | 56 | { |
53 | IConfig cnf = config.Configs["Messaging"]; | 57 | IConfig cnf = config.Configs["Messaging"]; |
@@ -95,6 +99,16 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
95 | 99 | ||
96 | public void SendInstantMessage(GridInstantMessage im, MessageResultNotification result) | 100 | public void SendInstantMessage(GridInstantMessage im, MessageResultNotification result) |
97 | { | 101 | { |
102 | handlerExternalIMCapture = OnExternalIMCapture; | ||
103 | if (handlerExternalIMCapture != null) | ||
104 | { | ||
105 | if (handlerExternalIMCapture(im)) | ||
106 | { | ||
107 | result(true); | ||
108 | return; | ||
109 | } | ||
110 | } | ||
111 | |||
98 | UUID toAgentID = new UUID(im.toAgentID); | 112 | UUID toAgentID = new UUID(im.toAgentID); |
99 | 113 | ||
100 | m_log.DebugFormat("[INSTANT MESSAGE]: Attempting delivery of IM from {0} to {1}", im.fromAgentName, toAgentID.ToString()); | 114 | m_log.DebugFormat("[INSTANT MESSAGE]: Attempting delivery of IM from {0} to {1}", im.fromAgentName, toAgentID.ToString()); |
diff --git a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs index ffae307..bc194b9 100644 --- a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs | |||
@@ -30,9 +30,12 @@ using OpenSim.Framework; | |||
30 | namespace OpenSim.Region.Framework.Interfaces | 30 | namespace OpenSim.Region.Framework.Interfaces |
31 | { | 31 | { |
32 | public delegate void MessageResultNotification(bool success); | 32 | public delegate void MessageResultNotification(bool success); |
33 | public delegate bool ExternalHandleIM(GridInstantMessage im); | ||
33 | 34 | ||
34 | public interface IMessageTransferModule | 35 | public interface IMessageTransferModule |
35 | { | 36 | { |
37 | event ExternalHandleIM OnExternalIMCapture; | ||
38 | |||
36 | void SendInstantMessage(GridInstantMessage im, MessageResultNotification result); | 39 | void SendInstantMessage(GridInstantMessage im, MessageResultNotification result); |
37 | } | 40 | } |
38 | } | 41 | } |