aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/InstantMessage
diff options
context:
space:
mode:
authorMelanie2010-01-29 07:20:13 +0000
committerMelanie2010-01-29 07:21:06 +0000
commita87a247f0548d39a8c39b1d28123d7da8db44598 (patch)
tree7f9f77c38a224bc6d4bea7ccced1d4710c8a91b1 /OpenSim/Region/CoreModules/Avatar/InstantMessage
parentMerge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff)
downloadopensim-SC_OLD-a87a247f0548d39a8c39b1d28123d7da8db44598.zip
opensim-SC_OLD-a87a247f0548d39a8c39b1d28123d7da8db44598.tar.gz
opensim-SC_OLD-a87a247f0548d39a8c39b1d28123d7da8db44598.tar.bz2
opensim-SC_OLD-a87a247f0548d39a8c39b1d28123d7da8db44598.tar.xz
Revert "Updates all IRegionModules to the new style region modules."
This reverts commit ec3c31e61e5e540f822891110df9bc978655bbaf.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs53
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs54
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs48
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs41
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs61
5 files changed, 83 insertions, 174 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
index e1bde4b..9a68749 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
@@ -24,12 +24,9 @@
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27
28using System;
29using System.Collections.Generic; 27using System.Collections.Generic;
30using System.Reflection; 28using System.Reflection;
31using log4net; 29using log4net;
32using Mono.Addins;
33using Nini.Config; 30using Nini.Config;
34using OpenMetaverse; 31using OpenMetaverse;
35using OpenSim.Framework; 32using OpenSim.Framework;
@@ -39,8 +36,7 @@ using OpenSim.Region.Framework.Scenes;
39 36
40namespace OpenSim.Region.CoreModules.Avatar.InstantMessage 37namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
41{ 38{
42 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] 39 public class InstantMessageModule : IRegionModule
43 public class InstantMessageModule : ISharedRegionModule
44 { 40 {
45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 41 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
46 42
@@ -51,11 +47,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
51 47
52 private readonly List<Scene> m_scenes = new List<Scene>(); 48 private readonly List<Scene> m_scenes = new List<Scene>();
53 49
54 #region ISharedRegionModule Members 50 #region IRegionModule Members
55 51
56 private IMessageTransferModule m_TransferModule = null; 52 private IMessageTransferModule m_TransferModule = null;
57 53
58 public void Initialise(IConfigSource config) 54 public void Initialise(Scene scene, IConfigSource config)
59 { 55 {
60 if (config.Configs["Messaging"] != null) 56 if (config.Configs["Messaging"] != null)
61 { 57 {
@@ -66,15 +62,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
66 } 62 }
67 63
68 m_enabled = true; 64 m_enabled = true;
69 }
70
71 public Type ReplaceableInterface
72 {
73 get { return null; }
74 }
75 65
76 public void AddRegion(Scene scene)
77 {
78 lock (m_scenes) 66 lock (m_scenes)
79 { 67 {
80 if (!m_scenes.Contains(scene)) 68 if (!m_scenes.Contains(scene))
@@ -86,27 +74,6 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
86 } 74 }
87 } 75 }
88 76
89 public void RegionLoaded(Scene scene)
90 {
91 if (!m_enabled)
92 return;
93
94 m_TransferModule =
95 m_scenes[0].RequestModuleInterface<IMessageTransferModule>();
96
97 if (m_TransferModule == null)
98 m_log.Error("[INSTANT MESSAGE]: No message transfer module, " +
99 "IM will not work!");
100 }
101
102 public void RemoveRegion(Scene scene)
103 {
104 if (m_scenes.Contains(scene))
105 m_scenes.Remove(scene);
106 scene.EventManager.OnClientConnect -= OnClientConnect;
107 scene.EventManager.OnIncomingInstantMessage -= OnGridInstantMessage;
108 }
109
110 void OnClientConnect(IClientCore client) 77 void OnClientConnect(IClientCore client)
111 { 78 {
112 IClientIM clientIM; 79 IClientIM clientIM;
@@ -118,6 +85,15 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
118 85
119 public void PostInitialise() 86 public void PostInitialise()
120 { 87 {
88 if (!m_enabled)
89 return;
90
91 m_TransferModule =
92 m_scenes[0].RequestModuleInterface<IMessageTransferModule>();
93
94 if (m_TransferModule == null)
95 m_log.Error("[INSTANT MESSAGE]: No message transfer module, "+
96 "IM will not work!");
121 } 97 }
122 98
123 public void Close() 99 public void Close()
@@ -129,6 +105,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
129 get { return "InstantMessageModule"; } 105 get { return "InstantMessageModule"; }
130 } 106 }
131 107
108 public bool IsSharedModule
109 {
110 get { return true; }
111 }
112
132 #endregion 113 #endregion
133 114
134 public void OnInstantMessage(IClientAPI client, GridInstantMessage im) 115 public void OnInstantMessage(IClientAPI client, GridInstantMessage im)
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
index 16bdfdd..e5159b3 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
@@ -30,7 +30,6 @@ using System.Collections.Generic;
30using System.Net; 30using System.Net;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using log4net;
33using Mono.Addins;
34using Nini.Config; 33using Nini.Config;
35using Nwc.XmlRpc; 34using Nwc.XmlRpc;
36using OpenMetaverse; 35using OpenMetaverse;
@@ -41,8 +40,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
41 40
42namespace OpenSim.Region.CoreModules.Avatar.InstantMessage 41namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
43{ 42{
44 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] 43 public class MessageTransferModule : IRegionModule, IMessageTransferModule
45 public class MessageTransferModule : ISharedRegionModule, IMessageTransferModule
46 { 44 {
47 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
48 46
@@ -52,9 +50,8 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
52 protected Dictionary<UUID, ulong> m_UserRegionMap = new Dictionary<UUID, ulong>(); 50 protected Dictionary<UUID, ulong> m_UserRegionMap = new Dictionary<UUID, ulong>();
53 51
54 public event UndeliveredMessage OnUndeliveredMessage; 52 public event UndeliveredMessage OnUndeliveredMessage;
55 private bool m_enabled = true;
56 53
57 public virtual void Initialise(IConfigSource config) 54 public virtual void Initialise(Scene scene, IConfigSource config)
58 { 55 {
59 IConfig cnf = config.Configs["Messaging"]; 56 IConfig cnf = config.Configs["Messaging"];
60 if (cnf != null && cnf.GetString( 57 if (cnf != null && cnf.GetString(
@@ -62,49 +59,27 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
62 "MessageTransferModule") 59 "MessageTransferModule")
63 { 60 {
64 m_log.Debug("[MESSAGE TRANSFER]: Disabled by configuration"); 61 m_log.Debug("[MESSAGE TRANSFER]: Disabled by configuration");
65 m_enabled = false; 62 return;
66 } 63 }
67 64
68 cnf = config.Configs["Startup"]; 65 cnf = config.Configs["Startup"];
69 if (cnf != null) 66 if (cnf != null)
70 m_Gridmode = cnf.GetBoolean("gridmode", false); 67 m_Gridmode = cnf.GetBoolean("gridmode", false);
71 }
72 68
73 public Type ReplaceableInterface 69 // m_Enabled = true;
74 {
75 get { return null; }
76 }
77 70
78 public void AddRegion(Scene scene) 71 lock (m_Scenes)
79 {
80 if (m_enabled)
81 { 72 {
82 lock (m_Scenes) 73 if (m_Scenes.Count == 0)
83 { 74 {
84 if (m_Scenes.Count == 0) 75 MainServer.Instance.AddXmlRPCHandler(
85 { 76 "grid_instant_message", processXMLRPCGridInstantMessage);
86 MainServer.Instance.AddXmlRPCHandler(
87 "grid_instant_message", processXMLRPCGridInstantMessage);
88 }
89
90 m_log.Debug("[MESSAGE TRANSFER]: Message transfer module active");
91 scene.RegisterModuleInterface<IMessageTransferModule>(this);
92 m_Scenes.Add(scene);
93 } 77 }
94 }
95 }
96 78
97 public void RegionLoaded(Scene scene) 79 m_log.Debug("[MESSAGE TRANSFER]: Message transfer module active");
98 { 80 scene.RegisterModuleInterface<IMessageTransferModule>(this);
99 } 81 m_Scenes.Add(scene);
100 82 }
101 public void RemoveRegion(Scene scene)
102 {
103 if (m_Scenes.Contains(scene))
104 m_Scenes.Remove(scene);
105 MainServer.Instance.RemoveXmlRPCHandler(
106 "grid_instant_message");
107 scene.UnregisterModuleInterface<IMessageTransferModule>(this);
108 } 83 }
109 84
110 public virtual void PostInitialise() 85 public virtual void PostInitialise()
@@ -120,6 +95,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
120 get { return "MessageTransferModule"; } 95 get { return "MessageTransferModule"; }
121 } 96 }
122 97
98 public virtual bool IsSharedModule
99 {
100 get { return true; }
101 }
102
123 public virtual void SendInstantMessage(GridInstantMessage im, MessageResultNotification result) 103 public virtual void SendInstantMessage(GridInstantMessage im, MessageResultNotification result)
124 { 104 {
125 UUID toAgentID = new UUID(im.toAgentID); 105 UUID toAgentID = new UUID(im.toAgentID);
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs
index 3570495..2d4a635 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs
@@ -28,7 +28,6 @@ using System;
28using System.Collections.Generic; 28using System.Collections.Generic;
29using System.Reflection; 29using System.Reflection;
30using log4net; 30using log4net;
31using Mono.Addins;
32using Nini.Config; 31using Nini.Config;
33using OpenMetaverse; 32using OpenMetaverse;
34using OpenSim.Framework; 33using OpenSim.Framework;
@@ -40,8 +39,7 @@ using OpenSim.Region.Framework.Scenes;
40 39
41namespace OpenSim.Region.CoreModules.Avatar.MuteList 40namespace OpenSim.Region.CoreModules.Avatar.MuteList
42{ 41{
43 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] 42 public class MuteListModule : IRegionModule
44 public class MuteListModule : ISharedRegionModule
45 { 43 {
46 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 44 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
47 45
@@ -49,7 +47,7 @@ namespace OpenSim.Region.CoreModules.Avatar.MuteList
49 private List<Scene> m_SceneList = new List<Scene>(); 47 private List<Scene> m_SceneList = new List<Scene>();
50 private string m_RestURL = String.Empty; 48 private string m_RestURL = String.Empty;
51 49
52 public void Initialise(IConfigSource config) 50 public void Initialise(Scene scene, IConfigSource config)
53 { 51 {
54 if (!enabled) 52 if (!enabled)
55 return; 53 return;
@@ -68,24 +66,19 @@ namespace OpenSim.Region.CoreModules.Avatar.MuteList
68 enabled = false; 66 enabled = false;
69 return; 67 return;
70 } 68 }
71 m_RestURL = cnf.GetString("MuteListURL", "");
72 if (m_RestURL == "")
73 {
74 m_log.Error("[MUTE LIST] Module was enabled, but no URL is given, disabling");
75 enabled = false;
76 return;
77 }
78 }
79 69
80 public Type ReplaceableInterface
81 {
82 get { return null; }
83 }
84
85 public void AddRegion(Scene scene)
86 {
87 lock (m_SceneList) 70 lock (m_SceneList)
88 { 71 {
72 if (m_SceneList.Count == 0)
73 {
74 m_RestURL = cnf.GetString("MuteListURL", "");
75 if (m_RestURL == "")
76 {
77 m_log.Error("[MUTE LIST] Module was enabled, but no URL is given, disabling");
78 enabled = false;
79 return;
80 }
81 }
89 if (!m_SceneList.Contains(scene)) 82 if (!m_SceneList.Contains(scene))
90 m_SceneList.Add(scene); 83 m_SceneList.Add(scene);
91 84
@@ -93,18 +86,6 @@ namespace OpenSim.Region.CoreModules.Avatar.MuteList
93 } 86 }
94 } 87 }
95 88
96 public void RegionLoaded(Scene scene)
97 {
98 }
99
100 public void RemoveRegion(Scene scene)
101 {
102 if (m_SceneList.Contains(scene))
103 m_SceneList.Remove(scene);
104
105 scene.EventManager.OnNewClient -= OnNewClient;
106 }
107
108 public void PostInitialise() 89 public void PostInitialise()
109 { 90 {
110 if (!enabled) 91 if (!enabled)
@@ -121,6 +102,11 @@ namespace OpenSim.Region.CoreModules.Avatar.MuteList
121 get { return "MuteListModule"; } 102 get { return "MuteListModule"; }
122 } 103 }
123 104
105 public bool IsSharedModule
106 {
107 get { return true; }
108 }
109
124 public void Close() 110 public void Close()
125 { 111 {
126 } 112 }
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs
index 6c4d0bf..ff38b6f 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs
@@ -28,7 +28,6 @@ using System;
28using System.Collections.Generic; 28using System.Collections.Generic;
29using System.Reflection; 29using System.Reflection;
30using log4net; 30using log4net;
31using Mono.Addins;
32using Nini.Config; 31using Nini.Config;
33using OpenMetaverse; 32using OpenMetaverse;
34using OpenSim.Framework; 33using OpenSim.Framework;
@@ -41,8 +40,7 @@ using OpenSim.Region.Framework.Scenes;
41 40
42namespace OpenSim.Region.CoreModules.Avatar.InstantMessage 41namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
43{ 42{
44 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] 43 public class OfflineMessageModule : IRegionModule
45 public class OfflineMessageModule : ISharedRegionModule
46 { 44 {
47 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
48 46
@@ -51,7 +49,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
51 private string m_RestURL = String.Empty; 49 private string m_RestURL = String.Empty;
52 private bool m_ForwardOfflineGroupMessages = true; 50 private bool m_ForwardOfflineGroupMessages = true;
53 51
54 public void Initialise(IConfigSource config) 52 public void Initialise(Scene scene, IConfigSource config)
55 { 53 {
56 if (!enabled) 54 if (!enabled)
57 return; 55 return;
@@ -85,23 +83,14 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
85 return; 83 return;
86 } 84 }
87 } 85 }
88 } 86 if (!m_SceneList.Contains(scene))
89 } 87 m_SceneList.Add(scene);
90
91 public Type ReplaceableInterface
92 {
93 get { return null; }
94 }
95 88
96 public void AddRegion(Scene scene) 89 scene.EventManager.OnNewClient += OnNewClient;
97 { 90 }
98 if (!m_SceneList.Contains(scene))
99 m_SceneList.Add(scene);
100
101 scene.EventManager.OnNewClient += OnNewClient;
102 } 91 }
103 92
104 public void RegionLoaded(Scene scene) 93 public void PostInitialise()
105 { 94 {
106 if (!enabled) 95 if (!enabled)
107 return; 96 return;
@@ -131,22 +120,16 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
131 m_log.Debug("[OFFLINE MESSAGING] Offline messages enabled"); 120 m_log.Debug("[OFFLINE MESSAGING] Offline messages enabled");
132 } 121 }
133 122
134 public void RemoveRegion(Scene scene)
135 {
136 if (m_SceneList.Contains(scene))
137 m_SceneList.Remove(scene);
138 scene.EventManager.OnNewClient -= OnNewClient;
139 }
140
141 public void PostInitialise()
142 {
143 }
144
145 public string Name 123 public string Name
146 { 124 {
147 get { return "OfflineMessageModule"; } 125 get { return "OfflineMessageModule"; }
148 } 126 }
149 127
128 public bool IsSharedModule
129 {
130 get { return true; }
131 }
132
150 public void Close() 133 public void Close()
151 { 134 {
152 } 135 }
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs
index f5498f4..f5ab454 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs
@@ -24,14 +24,11 @@
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27
28using System;
29using System.Collections; 27using System.Collections;
30using System.Collections.Generic; 28using System.Collections.Generic;
31using System.Net; 29using System.Net;
32using System.Reflection; 30using System.Reflection;
33using log4net; 31using log4net;
34using Mono.Addins;
35using Nini.Config; 32using Nini.Config;
36using Nwc.XmlRpc; 33using Nwc.XmlRpc;
37using OpenMetaverse; 34using OpenMetaverse;
@@ -42,8 +39,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
42 39
43namespace OpenSim.Region.CoreModules.Avatar.InstantMessage 40namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
44{ 41{
45 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] 42 public class PresenceModule : IRegionModule, IPresenceModule
46 public class PresenceModule : ISharedRegionModule, IPresenceModule
47 { 43 {
48 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 44 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
49 45
@@ -63,7 +59,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
63 public event PresenceChange OnPresenceChange; 59 public event PresenceChange OnPresenceChange;
64 public event BulkPresenceData OnBulkPresenceData; 60 public event BulkPresenceData OnBulkPresenceData;
65 61
66 public void Initialise(IConfigSource config) 62 public void Initialise(Scene scene, IConfigSource config)
67 { 63 {
68 lock (m_Scenes) 64 lock (m_Scenes)
69 { 65 {
@@ -82,38 +78,28 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
82 m_Gridmode = cnf.GetBoolean("gridmode", false); 78 m_Gridmode = cnf.GetBoolean("gridmode", false);
83 79
84 m_Enabled = true; 80 m_Enabled = true;
85 }
86 }
87 }
88 81
89 public Type ReplaceableInterface 82 m_initialScene = scene;
90 { 83 }
91 get { return null; }
92 }
93 84
94 public void AddRegion(Scene scene)
95 {
96 if (m_Enabled)
97 {
98 m_initialScene = scene;
99 if (m_Gridmode) 85 if (m_Gridmode)
100 NotifyMessageServerOfStartup(scene); 86 NotifyMessageServerOfStartup(scene);
101 87
102 m_Scenes.Add(scene); 88 m_Scenes.Add(scene);
89 }
103 90
104 scene.RegisterModuleInterface<IPresenceModule>(this); 91 scene.RegisterModuleInterface<IPresenceModule>(this);
105 92
106 scene.EventManager.OnNewClient += OnNewClient; 93 scene.EventManager.OnNewClient += OnNewClient;
107 scene.EventManager.OnSetRootAgentScene += OnSetRootAgentScene; 94 scene.EventManager.OnSetRootAgentScene += OnSetRootAgentScene;
108 scene.EventManager.OnMakeChildAgent += OnMakeChildAgent; 95 scene.EventManager.OnMakeChildAgent += OnMakeChildAgent;
109 }
110 } 96 }
111 97
112 public void RegionLoaded(Scene scene) 98 public void PostInitialise()
113 { 99 {
114 } 100 }
115 101
116 public void RemoveRegion(Scene scene) 102 public void Close()
117 { 103 {
118 if (!m_Gridmode || !m_Enabled) 104 if (!m_Gridmode || !m_Enabled)
119 return; 105 return;
@@ -130,28 +116,21 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
130 } 116 }
131 } 117 }
132 118
133 NotifyMessageServerOfShutdown(scene); 119 lock (m_Scenes)
134 if(m_Scenes.Contains(scene)) 120 {
135 m_Scenes.Remove(scene); 121 foreach (Scene scene in m_Scenes)
136 122 NotifyMessageServerOfShutdown(scene);
137 scene.UnregisterModuleInterface<IPresenceModule>(this); 123 }
138
139 scene.EventManager.OnNewClient -= OnNewClient;
140 scene.EventManager.OnSetRootAgentScene -= OnSetRootAgentScene;
141 scene.EventManager.OnMakeChildAgent -= OnMakeChildAgent;
142 }
143
144 public void PostInitialise()
145 {
146 } 124 }
147 125
148 public void Close() 126 public string Name
149 { 127 {
128 get { return "PresenceModule"; }
150 } 129 }
151 130
152 public string Name 131 public bool IsSharedModule
153 { 132 {
154 get { return "PresenceModule"; } 133 get { return true; }
155 } 134 }
156 135
157 public void RequestBulkPresenceData(UUID[] users) 136 public void RequestBulkPresenceData(UUID[] users)