diff options
Diffstat (limited to 'OpenSim/Region/Application/OpenSimMain.cs')
-rw-r--r-- | OpenSim/Region/Application/OpenSimMain.cs | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index 2094578..b322f6d 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs | |||
@@ -212,7 +212,7 @@ namespace OpenSim | |||
212 | if (config != null) | 212 | if (config != null) |
213 | { | 213 | { |
214 | config.Set("accounts_authenticate", false); | 214 | config.Set("accounts_authenticate", false); |
215 | config.Set("welcome_message", "Welcome to OpenSim"); | 215 | config.Set("welcome_message", "Welcome to Krynn"); |
216 | config.Set("inventory_plugin", "OpenSim.Data.SQLite.dll"); | 216 | config.Set("inventory_plugin", "OpenSim.Data.SQLite.dll"); |
217 | config.Set("inventory_source", ""); | 217 | config.Set("inventory_source", ""); |
218 | config.Set("userDatabase_plugin", "OpenSim.Data.SQLite.dll"); | 218 | config.Set("userDatabase_plugin", "OpenSim.Data.SQLite.dll"); |
@@ -978,18 +978,63 @@ namespace OpenSim | |||
978 | CreateRegion(new RegionInfo(cmdparams[0], "Regions/" + cmdparams[1],false), true); | 978 | CreateRegion(new RegionInfo(cmdparams[0], "Regions/" + cmdparams[1],false), true); |
979 | break; | 979 | break; |
980 | case "remove-region": | 980 | case "remove-region": |
981 | |||
981 | string regName = CombineParams(cmdparams, 0); | 982 | string regName = CombineParams(cmdparams, 0); |
982 | 983 | ||
984 | Console.WriteLine("Trying to kill: " + regName); | ||
983 | Scene killScene; | 985 | Scene killScene; |
984 | if (m_sceneManager.TryGetScene(regName, out killScene)) | 986 | |
987 | /* if (m_sceneManager.TryGetScene(regName, out killScene)) | ||
985 | { | 988 | { |
989 | Console.WriteLine("Returned object ID: ", killScene.RegionInfo.RegionID.ToString()); | ||
990 | Console.WriteLine("Returned object Name: ", killScene.RegionInfo.RegionName); | ||
991 | |||
992 | |||
993 | if (killScene == null) | ||
994 | { | ||
995 | Console.WriteLine("Returned object is null!"); | ||
996 | } | ||
997 | |||
986 | if (m_sceneManager.CurrentScene.RegionInfo.RegionID == killScene.RegionInfo.RegionID) | 998 | if (m_sceneManager.CurrentScene.RegionInfo.RegionID == killScene.RegionInfo.RegionID) |
987 | { | 999 | { |
988 | m_sceneManager.TrySetCurrentScene(".."); | 1000 | m_sceneManager.TrySetCurrentScene(".."); |
989 | } | 1001 | } |
1002 | |||
990 | m_regionData.Remove(killScene.RegionInfo); | 1003 | m_regionData.Remove(killScene.RegionInfo); |
991 | m_sceneManager.CloseScene(killScene); | 1004 | m_sceneManager.CloseScene(killScene); |
1005 | |||
1006 | |||
1007 | }*/ | ||
1008 | |||
1009 | |||
1010 | /// note from John R Sohn aka XenReborn (irc.freenode.net) | ||
1011 | /// the trygetscene function does not work | ||
1012 | /// when debugging it i noticed it did indeed find the region by name | ||
1013 | /// but the OUT parameter "scene" return an empty object | ||
1014 | /// hence the reason it threw an exception | ||
1015 | /// when the server code in this block tried to kill it | ||
1016 | /// i know its not supposed to work that way... but it seems.. | ||
1017 | /// that it is.. given a flaw in the langauge or concurrency error.. | ||
1018 | /// i have no idea, but for some reason, performing the search here | ||
1019 | /// locally does work, as does dynamically killing the region | ||
1020 | /// however on server restart, the region returns, i dunno if this was | ||
1021 | /// intentional or not.... i suggest creating a seperate function | ||
1022 | /// which will permanently remove all data relating to the region | ||
1023 | /// as an administrative option... maybe something like "Purge Region" | ||
1024 | /// | ||
1025 | /// i made editations with debug console output in above commented code.. | ||
1026 | /// and the trygetscene(string,out scene) function to show whats happening. | ||
1027 | |||
1028 | for (int x = 0; x < m_sceneManager.Scenes.Count; x++) | ||
1029 | { | ||
1030 | if (m_sceneManager.Scenes[x].RegionInfo.RegionName.CompareTo(regName) == 0) | ||
1031 | { | ||
1032 | killScene = m_sceneManager.Scenes[x]; | ||
1033 | m_regionData.Remove(killScene.RegionInfo); | ||
1034 | m_sceneManager.CloseScene(killScene); | ||
1035 | } | ||
992 | } | 1036 | } |
1037 | |||
993 | break; | 1038 | break; |
994 | 1039 | ||
995 | case "exit": | 1040 | case "exit": |