From 57c4def254b85997f5b8a4cd4e7d1db550947290 Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 25 Nov 2010 03:16:52 +0000 Subject: Change all restarting to use the restart module. Remove hardcoded behavior --- .../Shared/Api/Implementation/OSSL_Api.cs | 25 +++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Shared/Api') diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index fc92f23..827626f 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -395,10 +395,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api // CheckThreatLevel(ThreatLevel.High, "osRegionRestart"); + IRestartModule restartModule = World.RequestModuleInterface(); m_host.AddScriptLPS(1); - if (World.Permissions.CanIssueEstateCommand(m_host.OwnerID, false)) + if (World.Permissions.CanIssueEstateCommand(m_host.OwnerID, false) && (restartModule != null)) { - World.Restart((float)seconds); + if (seconds < 15) + { + restartModule.AbortRestart("Restart aborted"); + return 1; + } + + List times = new List(); + while (seconds > 0) + { + times.Add((int)seconds); + if (seconds > 300) + seconds -= 120; + else if (seconds > 30) + seconds -= 30; + else + seconds -= 15; + } + + restartModule.ScheduleRestart(UUID.Zero, "Region will restart in {0}", times.ToArray(), true); return 1; } else @@ -2315,4 +2334,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return date.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); } } -} \ No newline at end of file +} -- cgit v1.1