aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/ModuleLoader.cs
diff options
context:
space:
mode:
authorSean Dague2008-04-21 12:42:56 +0000
committerSean Dague2008-04-21 12:42:56 +0000
commitbf1580fba45df7624180b07599c8170074500c99 (patch)
tree696a69c94554f0789b123c82fb34c658e9a0b6af /OpenSim/Region/Environment/ModuleLoader.cs
parent* Various refactorings. (diff)
downloadopensim-SC_OLD-bf1580fba45df7624180b07599c8170074500c99.zip
opensim-SC_OLD-bf1580fba45df7624180b07599c8170074500c99.tar.gz
opensim-SC_OLD-bf1580fba45df7624180b07599c8170074500c99.tar.bz2
opensim-SC_OLD-bf1580fba45df7624180b07599c8170074500c99.tar.xz
From: Dr Scofield <hud@zurich.ibm.com>
the attached patch set is centered around RemoteAdminPlugin and focuses mainly on making it more robust (i.e. more parameter checking and better error reporting) but also we've re-implemented the LoadTerrain stuff that got disabled during the terrain code reworking: * missing PostInitialize() calls on region modules that were loaded for regions created via RemoteAdmin's CreateRegion XmlRpc call * re-implements RemoteAdmin's LoadTerrain XmlRpc call (probably lost during the TerrainModule rework) * adds lots more parameter checking and error reporting to RemoteAdmin * adds a read-only property to RegionApplicationBase so that we can access the CommsManager * adds Exceptions to TerrainModule so that we get better error case feedback (and can report more meaningful errors in turn) * adds a CheckForTerrainUpdate() call to TerrainModule.LoadFromFile() to make terrain changes effective * adds TryGetCurrentScene(LLUUID) to SceneManager so that we can retrieve Scenes not only by name but also by LLUUID cheers, dr scofield
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/ModuleLoader.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/ModuleLoader.cs b/OpenSim/Region/Environment/ModuleLoader.cs
index 43ca7bd..52a6fbd 100644
--- a/OpenSim/Region/Environment/ModuleLoader.cs
+++ b/OpenSim/Region/Environment/ModuleLoader.cs
@@ -62,14 +62,16 @@ namespace OpenSim.Region.Environment
62 } 62 }
63 } 63 }
64 64
65 public void PickupModules(Scene scene, string moduleDir) 65 public List<IRegionModule> PickupModules(Scene scene, string moduleDir)
66 { 66 {
67 DirectoryInfo dir = new DirectoryInfo(moduleDir); 67 DirectoryInfo dir = new DirectoryInfo(moduleDir);
68 List<IRegionModule> modules = new List<IRegionModule>();
68 69
69 foreach (FileInfo fileInfo in dir.GetFiles("*.dll")) 70 foreach (FileInfo fileInfo in dir.GetFiles("*.dll"))
70 { 71 {
71 LoadRegionModules(fileInfo.FullName, scene); 72 modules.AddRange(LoadRegionModules(fileInfo.FullName, scene));
72 } 73 }
74 return modules;
73 } 75 }
74 76
75 public void LoadDefaultSharedModules() 77 public void LoadDefaultSharedModules()
@@ -190,9 +192,10 @@ namespace OpenSim.Region.Environment
190 } 192 }
191 } 193 }
192 194
193 public void LoadRegionModules(string dllName, Scene scene) 195 public List<IRegionModule> LoadRegionModules(string dllName, Scene scene)
194 { 196 {
195 IRegionModule[] modules = LoadModules(dllName); 197 IRegionModule[] modules = LoadModules(dllName);
198 List<IRegionModule> initializedModules = new List<IRegionModule>();
196 199
197 if (modules.Length > 0) 200 if (modules.Length > 0)
198 { 201 {
@@ -203,6 +206,7 @@ namespace OpenSim.Region.Environment
203 { 206 {
204 m_log.InfoFormat("[MODULES]: [{0}]: Initializing.", module.Name); 207 m_log.InfoFormat("[MODULES]: [{0}]: Initializing.", module.Name);
205 InitializeModule(module, scene); 208 InitializeModule(module, scene);
209 initializedModules.Add(module);
206 } 210 }
207 else 211 else
208 { 212 {
@@ -211,6 +215,7 @@ namespace OpenSim.Region.Environment
211 } 215 }
212 } 216 }
213 } 217 }
218 return initializedModules;
214 } 219 }
215 220
216 public void LoadRegionModule(string dllName, string moduleName, Scene scene) 221 public void LoadRegionModule(string dllName, string moduleName, Scene scene)