aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs14
-rw-r--r--OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs3
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;
30namespace OpenSim.Region.Framework.Interfaces 30namespace 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}