aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Application/OpenSim.cs10
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs54
-rw-r--r--OpenSim/Region/ClientStack/RegionApplicationBase.cs5
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs39
4 files changed, 67 insertions, 41 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index c541249..d9ec287 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -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 {
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index e148cde..eb18e83 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -790,6 +790,60 @@ namespace OpenSim
790 { 790 {
791 regionnum = m_sceneManager.Scenes.Count; 791 regionnum = m_sceneManager.Scenes.Count;
792 } 792 }
793
794 /// <summary>
795 /// Load the estate information for the provided RegionInfo object.
796 /// </summary>
797 /// <param name="regInfo">
798 /// A <see cref="RegionInfo"/>
799 /// </param>
800 public void PopulateRegionEstateInfo(RegionInfo regInfo)
801 {
802 if (m_storageManager.EstateDataStore != null)
803 {
804 regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, false);
805 }
806
807 if (regInfo.EstateSettings.EstateID == 0) // No record at all
808 {
809 MainConsole.Instance.Output("Your region is not part of an estate.");
810 while (true)
811 {
812 string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List<string>() {"yes", "no"});
813 if (response == "no")
814 {
815 // Create a new estate
816 regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, true);
817
818 regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName);
819 //regInfo.EstateSettings.Save();
820 break;
821 }
822 else
823 {
824 response = MainConsole.Instance.CmdPrompt("Estate name to join", "None");
825 if (response == "None")
826 continue;
827
828 List<int> estateIDs = m_storageManager.EstateDataStore.GetEstates(response);
829 if (estateIDs.Count < 1)
830 {
831 MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again");
832 continue;
833 }
834
835 int estateID = estateIDs[0];
836
837 regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(estateID);
838
839 if (m_storageManager.EstateDataStore.LinkRegion(regInfo.RegionID, estateID))
840 break;
841
842 MainConsole.Instance.Output("Joining the estate failed. Please try again.");
843 }
844 }
845 }
846 }
793 } 847 }
794 848
795 849
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index e683821..46b68ec 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -58,6 +58,11 @@ namespace OpenSim.Region.ClientStack
58 58
59 protected StorageManager m_storageManager; 59 protected StorageManager m_storageManager;
60 60
61 public StorageManager StorageManager
62 {
63 get { return m_storageManager; }
64 }
65
61 protected ClientStackManager m_clientStackManager; 66 protected ClientStackManager m_clientStackManager;
62 67
63 public SceneManager SceneManager 68 public SceneManager SceneManager
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index f62851a..18705a8 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -544,45 +544,6 @@ namespace OpenSim.Region.Framework.Scenes
544 if (m_storageManager.EstateDataStore != null) 544 if (m_storageManager.EstateDataStore != null)
545 { 545 {
546 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID, false); 546 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID, false);
547 if (m_regInfo.EstateSettings.EstateID == 0) // No record at all
548 {
549 MainConsole.Instance.Output("Your region is not part of an estate.");
550 while (true)
551 {
552 string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List<string>() {"yes", "no"});
553 if (response == "no")
554 {
555 // Create a new estate
556 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID, true);
557
558 m_regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", m_regInfo.EstateSettings.EstateName);
559 m_regInfo.EstateSettings.Save();
560 break;
561 }
562 else
563 {
564 response = MainConsole.Instance.CmdPrompt("Estate name to join", "None");
565 if (response == "None")
566 continue;
567
568 List<int> estateIDs = m_storageManager.EstateDataStore.GetEstates(response);
569 if (estateIDs.Count < 1)
570 {
571 MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again");
572 continue;
573 }
574
575 int estateID = estateIDs[0];
576
577 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(estateID);
578
579 if (m_storageManager.EstateDataStore.LinkRegion(m_regInfo.RegionID, estateID))
580 break;
581
582 MainConsole.Instance.Output("Joining the estate failed. Please try again.");
583 }
584 }
585 }
586 } 547 }
587 548
588 #endregion Region Settings 549 #endregion Region Settings