aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs58
1 files changed, 58 insertions, 0 deletions
diff --git a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs
new file mode 100644
index 0000000..f0232e6
--- /dev/null
+++ b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs
@@ -0,0 +1,58 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using OpenSim;
5using OpenSim.Framework.Console;
6using OpenSim.Framework;
7using OpenSim.Framework.RegionLoader.Filesystem;
8using OpenSim.Framework.RegionLoader.Web;
9using Mono.Addins;
10using Mono.Addins.Description;
11using Nini;
12using Nini.Config;
13
14[assembly:Addin]
15[assembly:AddinDependency ("OpenSim", "0.4")]
16
17namespace OpenSim.ApplicationPlugins.Example
18{
19 [Extension("/OpenSim/Startup")]
20 public class LoadRegionsPlugin : IApplicationPlugin
21 {
22 public void Initialise(OpenSimMain openSim)
23 {
24 System.Console.WriteLine("Load Regions addin being initialised");
25
26 IRegionLoader regionLoader;
27 if (openSim.ConfigSource.Configs["Startup"].GetString("region_info_source", "filesystem") == "filesystem")
28 {
29 MainLog.Instance.Notice("Loading Region Info from filesystem");
30 regionLoader = new RegionLoaderFileSystem();
31 }
32 else
33 {
34 MainLog.Instance.Notice("Loading Region Info from web");
35 regionLoader = new RegionLoaderWebServer();
36 }
37
38 regionLoader.SetIniConfigSource(openSim.ConfigSource);
39 RegionInfo[] regionsToLoad = regionLoader.LoadRegions();
40
41 openSim.ModuleLoader.LoadDefaultSharedModules();
42
43 for (int i = 0; i < regionsToLoad.Length; i++)
44 {
45 MainLog.Instance.Debug("Creating Region: " + regionsToLoad[i].RegionName);
46 openSim.CreateRegion(regionsToLoad[i]);
47 }
48
49 openSim.ModuleLoader.PostInitialise();
50 openSim.ModuleLoader.ClearCache();
51 }
52
53 public void Close()
54 {
55
56 }
57 }
58}