From 8eeb3f2fd21c05f0bfd141e333f34c4c69e8865b Mon Sep 17 00:00:00 2001
From: randomhuman
Date: Fri, 13 Aug 2010 16:08:43 +0100
Subject: Updated the create_region command in the RemoteAdmin plugin to
properly support estates without seeking further input on the console.
---
OpenSim/Region/Application/OpenSim.cs | 10 +++-
OpenSim/Region/Application/OpenSimBase.cs | 54 ++++++++++++++++++++++
.../Region/ClientStack/RegionApplicationBase.cs | 5 ++
OpenSim/Region/Framework/Scenes/Scene.cs | 39 ----------------
4 files changed, 67 insertions(+), 41 deletions(-)
(limited to 'OpenSim/Region')
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
regionFile = cmd[3];
IScene scene;
- CreateRegion(new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source), true, out scene);
+ RegionInfo regInfo = new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source);
+ PopulateRegionEstateInfo(regInfo);
+ CreateRegion(regInfo, true, out scene);
+ regInfo.EstateSettings.Save();
}
else if (cmd[3].EndsWith(".ini"))
{
@@ -541,7 +544,10 @@ namespace OpenSim
regionFile = cmd[3];
IScene scene;
- CreateRegion(new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source, cmd[2]), true, out scene);
+ RegionInfo regInfo = new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source, cmd[2]);
+ PopulateRegionEstateInfo(regInfo);
+ CreateRegion(regInfo, true, out scene);
+ regInfo.EstateSettings.Save();
}
else
{
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
{
regionnum = m_sceneManager.Scenes.Count;
}
+
+ ///
+ /// Load the estate information for the provided RegionInfo object.
+ ///
+ ///
+ /// A
+ ///
+ public void PopulateRegionEstateInfo(RegionInfo regInfo)
+ {
+ if (m_storageManager.EstateDataStore != null)
+ {
+ regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, false);
+ }
+
+ if (regInfo.EstateSettings.EstateID == 0) // No record at all
+ {
+ MainConsole.Instance.Output("Your region is not part of an estate.");
+ while (true)
+ {
+ string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List() {"yes", "no"});
+ if (response == "no")
+ {
+ // Create a new estate
+ regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(regInfo.RegionID, true);
+
+ regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName);
+ //regInfo.EstateSettings.Save();
+ break;
+ }
+ else
+ {
+ response = MainConsole.Instance.CmdPrompt("Estate name to join", "None");
+ if (response == "None")
+ continue;
+
+ List estateIDs = m_storageManager.EstateDataStore.GetEstates(response);
+ if (estateIDs.Count < 1)
+ {
+ MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again");
+ continue;
+ }
+
+ int estateID = estateIDs[0];
+
+ regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(estateID);
+
+ if (m_storageManager.EstateDataStore.LinkRegion(regInfo.RegionID, estateID))
+ break;
+
+ MainConsole.Instance.Output("Joining the estate failed. Please try again.");
+ }
+ }
+ }
+ }
}
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
protected StorageManager m_storageManager;
+ public StorageManager StorageManager
+ {
+ get { return m_storageManager; }
+ }
+
protected ClientStackManager m_clientStackManager;
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
if (m_storageManager.EstateDataStore != null)
{
m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID, false);
- if (m_regInfo.EstateSettings.EstateID == 0) // No record at all
- {
- MainConsole.Instance.Output("Your region is not part of an estate.");
- while (true)
- {
- string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List() {"yes", "no"});
- if (response == "no")
- {
- // Create a new estate
- m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID, true);
-
- m_regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", m_regInfo.EstateSettings.EstateName);
- m_regInfo.EstateSettings.Save();
- break;
- }
- else
- {
- response = MainConsole.Instance.CmdPrompt("Estate name to join", "None");
- if (response == "None")
- continue;
-
- List estateIDs = m_storageManager.EstateDataStore.GetEstates(response);
- if (estateIDs.Count < 1)
- {
- MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again");
- continue;
- }
-
- int estateID = estateIDs[0];
-
- m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(estateID);
-
- if (m_storageManager.EstateDataStore.LinkRegion(m_regInfo.RegionID, estateID))
- break;
-
- MainConsole.Instance.Output("Joining the estate failed. Please try again.");
- }
- }
- }
}
#endregion Region Settings
--
cgit v1.1