diff options
Diffstat (limited to 'OpenSim/ApplicationPlugins/RemoteController')
-rw-r--r-- | OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index d457d2b..a0f1eea 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -182,7 +182,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
182 | XmlRpcResponse response = new XmlRpcResponse(); | 182 | XmlRpcResponse response = new XmlRpcResponse(); |
183 | Hashtable responseData = new Hashtable(); | 183 | Hashtable responseData = new Hashtable(); |
184 | 184 | ||
185 | try { | 185 | try |
186 | { | ||
186 | Hashtable requestData = (Hashtable) request.Params[0]; | 187 | Hashtable requestData = (Hashtable) request.Params[0]; |
187 | 188 | ||
188 | checkStringParameters(request, new string[] { "password", "message" }); | 189 | checkStringParameters(request, new string[] { "password", "message" }); |
@@ -197,8 +198,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
197 | responseData["accepted"] = "true"; | 198 | responseData["accepted"] = "true"; |
198 | responseData["success"] = "true"; | 199 | responseData["success"] = "true"; |
199 | response.Value = responseData; | 200 | response.Value = responseData; |
200 | 201 | ||
201 | m_app.SceneManager.SendGeneralMessage(message); | 202 | m_app.SceneManager.ForEachScene( |
203 | delegate(Scene scene) | ||
204 | { | ||
205 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | ||
206 | if (dialogModule != null) | ||
207 | dialogModule.SendGeneralAlert(message); | ||
208 | }); | ||
202 | } | 209 | } |
203 | catch(Exception e) | 210 | catch(Exception e) |
204 | { | 211 | { |
@@ -283,19 +290,30 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
283 | response.Value = responseData; | 290 | response.Value = responseData; |
284 | 291 | ||
285 | int timeout = 2000; | 292 | int timeout = 2000; |
293 | string message; | ||
286 | 294 | ||
287 | if (requestData.ContainsKey("shutdown") && | 295 | if (requestData.ContainsKey("shutdown") |
288 | ((string) requestData["shutdown"] == "delayed") && | 296 | && ((string) requestData["shutdown"] == "delayed") |
289 | requestData.ContainsKey("milliseconds")) | 297 | && requestData.ContainsKey("milliseconds")) |
290 | { | 298 | { |
291 | timeout = (Int32) requestData["milliseconds"]; | 299 | timeout = (Int32) requestData["milliseconds"]; |
292 | m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((int) (timeout/1000)).ToString() + | 300 | |
293 | " second(s). Please save what you are doing and log out."); | 301 | message |
302 | = "Region is going down in " + ((int) (timeout/1000)).ToString() | ||
303 | + " second(s). Please save what you are doing and log out."; | ||
294 | } | 304 | } |
295 | else | 305 | else |
296 | { | 306 | { |
297 | m_app.SceneManager.SendGeneralMessage("Region is going down now."); | 307 | message = "Region is going down now."; |
298 | } | 308 | } |
309 | |||
310 | m_app.SceneManager.ForEachScene( | ||
311 | delegate(Scene scene) | ||
312 | { | ||
313 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | ||
314 | if (dialogModule != null) | ||
315 | dialogModule.SendGeneralAlert(message); | ||
316 | }); | ||
299 | 317 | ||
300 | // Perform shutdown | 318 | // Perform shutdown |
301 | Timer shutdownTimer = new Timer(timeout); // Wait before firing | 319 | Timer shutdownTimer = new Timer(timeout); // Wait before firing |