diff options
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/Application')
-rw-r--r-- | OpenSim/Region/Application/ConfigurationLoader.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 62 |
3 files changed, 82 insertions, 8 deletions
diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs index 09f7bea..e69e3fc 100644 --- a/OpenSim/Region/Application/ConfigurationLoader.cs +++ b/OpenSim/Region/Application/ConfigurationLoader.cs | |||
@@ -211,7 +211,17 @@ namespace OpenSim | |||
211 | else | 211 | else |
212 | { | 212 | { |
213 | string basepath = Path.GetFullPath(Util.configDir()); | 213 | string basepath = Path.GetFullPath(Util.configDir()); |
214 | string path = Path.Combine(basepath, file); | 214 | // Resolve relative paths with wildcards |
215 | string chunkWithoutWildcards = file; | ||
216 | string chunkWithWildcards = string.Empty; | ||
217 | int wildcardIndex = file.IndexOfAny(new char[] { '*', '?' }); | ||
218 | if (wildcardIndex != -1) | ||
219 | { | ||
220 | chunkWithoutWildcards = file.Substring(0, wildcardIndex); | ||
221 | chunkWithWildcards = file.Substring(wildcardIndex); | ||
222 | } | ||
223 | string path = Path.Combine(basepath, chunkWithoutWildcards); | ||
224 | path = Path.GetFullPath(path) + chunkWithWildcards; | ||
215 | string[] paths = Util.Glob(path); | 225 | string[] paths = Util.Glob(path); |
216 | foreach (string p in paths) | 226 | foreach (string p in paths) |
217 | { | 227 | { |
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index cb48ac1..bbc42e6 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -418,7 +418,7 @@ namespace OpenSim | |||
418 | { | 418 | { |
419 | MainConsole.Instance.Output( | 419 | MainConsole.Instance.Output( |
420 | String.Format( | 420 | String.Format( |
421 | "Kicking user: {0,-16}{1,-16}{2,-37} in region: {3,-16}", | 421 | "Kicking user: {0,-16} {1,-16} {2,-37} in region: {3,-16}", |
422 | presence.Firstname, presence.Lastname, presence.UUID, regionInfo.RegionName)); | 422 | presence.Firstname, presence.Lastname, presence.UUID, regionInfo.RegionName)); |
423 | 423 | ||
424 | // kick client... | 424 | // kick client... |
@@ -530,7 +530,10 @@ namespace OpenSim | |||
530 | regionFile = cmd[3]; | 530 | regionFile = cmd[3]; |
531 | 531 | ||
532 | IScene scene; | 532 | IScene scene; |
533 | CreateRegion(new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source), true, out scene); | 533 | RegionInfo regInfo = new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source); |
534 | PopulateRegionEstateInfo(regInfo); | ||
535 | CreateRegion(regInfo, true, out scene); | ||
536 | regInfo.EstateSettings.Save(); | ||
534 | } | 537 | } |
535 | else if (cmd[3].EndsWith(".ini")) | 538 | else if (cmd[3].EndsWith(".ini")) |
536 | { | 539 | { |
@@ -541,7 +544,10 @@ namespace OpenSim | |||
541 | regionFile = cmd[3]; | 544 | regionFile = cmd[3]; |
542 | 545 | ||
543 | IScene scene; | 546 | IScene scene; |
544 | CreateRegion(new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source, cmd[2]), true, out scene); | 547 | RegionInfo regInfo = new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source, cmd[2]); |
548 | PopulateRegionEstateInfo(regInfo); | ||
549 | CreateRegion(regInfo, true, out scene); | ||
550 | regInfo.EstateSettings.Save(); | ||
545 | } | 551 | } |
546 | else | 552 | else |
547 | { | 553 | { |
@@ -861,7 +867,7 @@ namespace OpenSim | |||
861 | MainConsole.Instance.Output(String.Format("\nAgents connected: {0}\n", agents.Count)); | 867 | MainConsole.Instance.Output(String.Format("\nAgents connected: {0}\n", agents.Count)); |
862 | 868 | ||
863 | MainConsole.Instance.Output( | 869 | MainConsole.Instance.Output( |
864 | String.Format("{0,-16}{1,-16}{2,-37}{3,-11}{4,-16}{5,-30}", "Firstname", "Lastname", | 870 | String.Format("{0,-16} {1,-16} {2,-37} {3,-11} {4,-16} {5,-30}", "Firstname", "Lastname", |
865 | "Agent ID", "Root/Child", "Region", "Position")); | 871 | "Agent ID", "Root/Child", "Region", "Position")); |
866 | 872 | ||
867 | foreach (ScenePresence presence in agents) | 873 | foreach (ScenePresence presence in agents) |
@@ -880,7 +886,7 @@ namespace OpenSim | |||
880 | 886 | ||
881 | MainConsole.Instance.Output( | 887 | MainConsole.Instance.Output( |
882 | String.Format( | 888 | String.Format( |
883 | "{0,-16}{1,-16}{2,-37}{3,-11}{4,-16}{5,-30}", | 889 | "{0,-16} {1,-16} {2,-37} {3,-11} {4,-16} {5,-30}", |
884 | presence.Firstname, | 890 | presence.Firstname, |
885 | presence.Lastname, | 891 | presence.Lastname, |
886 | presence.UUID, | 892 | presence.UUID, |
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index fc67f94..c08da18 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -395,9 +395,13 @@ namespace OpenSim | |||
395 | scene.SnmpService.BootInfo("Creating region texture", scene); | 395 | scene.SnmpService.BootInfo("Creating region texture", scene); |
396 | } | 396 | } |
397 | 397 | ||
398 | // moved these here as the terrain texture has to be created after the modules are initialized | 398 | // moved these here as the map texture has to be created after the modules are initialized |
399 | // and has to happen before the region is registered with the grid. | 399 | // and has to happen before the region is registered with the grid. |
400 | scene.CreateTerrainTexture(); | 400 | IWorldMapModule mapModule = scene.RequestModuleInterface<IWorldMapModule>(); |
401 | if (mapModule != null) | ||
402 | mapModule.GenerateMaptile(); | ||
403 | else | ||
404 | m_log.WarnFormat("[STARTUP]: No map module available to generate map tile"); | ||
401 | 405 | ||
402 | // TODO : Try setting resource for region xstats here on scene | 406 | // TODO : Try setting resource for region xstats here on scene |
403 | MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo)); | 407 | MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo)); |
@@ -867,6 +871,60 @@ namespace OpenSim | |||
867 | { | 871 | { |
868 | regionnum = m_sceneManager.Scenes.Count; | 872 | regionnum = m_sceneManager.Scenes.Count; |
869 | } | 873 | } |
874 | |||
875 | /// <summary> | ||
876 | /// Load the estate information for the provided RegionInfo object. | ||
877 | /// </summary> | ||
878 | /// <param name="regInfo"> | ||
879 | /// A <see cref="RegionInfo"/> | ||
880 | /// </param> | ||
881 | public void PopulateRegionEstateInfo(RegionInfo regInfo) | ||
882 | { | ||
883 | if (m_storageManager.EstateDataStore != null) | ||
884 | { | ||
885 | regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, false); | ||
886 | } | ||
887 | |||
888 | if (regInfo.EstateSettings.EstateID == 0) // No record at all | ||
889 | { | ||
890 | MainConsole.Instance.Output("Your region is not part of an estate."); | ||
891 | while (true) | ||
892 | { | ||
893 | string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List<string>() {"yes", "no"}); | ||
894 | if (response == "no") | ||
895 | { | ||
896 | // Create a new estate | ||
897 | regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, true); | ||
898 | |||
899 | regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); | ||
900 | //regInfo.EstateSettings.Save(); | ||
901 | break; | ||
902 | } | ||
903 | else | ||
904 | { | ||
905 | response = MainConsole.Instance.CmdPrompt("Estate name to join", "None"); | ||
906 | if (response == "None") | ||
907 | continue; | ||
908 | |||
909 | List<int> estateIDs = m_storageManager.EstateDataStore.GetEstates(response); | ||
910 | if (estateIDs.Count < 1) | ||
911 | { | ||
912 | MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again"); | ||
913 | continue; | ||
914 | } | ||
915 | |||
916 | int estateID = estateIDs[0]; | ||
917 | |||
918 | regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(estateID); | ||
919 | |||
920 | if (m_storageManager.EstateDataStore.LinkRegion(regInfo.RegionID, estateID)) | ||
921 | break; | ||
922 | |||
923 | MainConsole.Instance.Output("Joining the estate failed. Please try again."); | ||
924 | } | ||
925 | } | ||
926 | } | ||
927 | } | ||
870 | } | 928 | } |
871 | 929 | ||
872 | 930 | ||