diff options
Diffstat (limited to 'Core/web_manageserver.lua')
-rw-r--r-- | Core/web_manageserver.lua | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Core/web_manageserver.lua b/Core/web_manageserver.lua new file mode 100644 index 000000000..a2936c1a8 --- /dev/null +++ b/Core/web_manageserver.lua @@ -0,0 +1,35 @@ +function HandleRequest_ManageServer( Request ) + local Content = "" + if (Request.PostParams["RestartServer"] ~= nil) then + cRoot:Get():QueueExecuteConsoleCommand("restart"); + elseif (Request.PostParams["ReloadServer"] ~= nil) then + cRoot:Get():GetPluginManager():ReloadPlugins(); + elseif (Request.PostParams["StopServer"] ~= nil) then + cRoot:Get():QueueExecuteConsoleCommand("stop"); + elseif (Request.PostParams["WorldSaveAllChunks"] ~= nil) then + cRoot:Get():GetWorld(Request.PostParams["WorldSaveAllChunks"]):SaveAllChunks(); + end + Content = Content .. [[ + <form method="POST"> + <table> + <th colspan="2">Manage Server</th> + <tr><td><input type="submit" value="Restart Server" name="RestartServer"> restart the server</td></tr> <br /> + <tr><td><input type="submit" value="Reload Server" name="ReloadServer"> reload the server</td></tr> <br /> + <tr><td><input type="submit" value="Stop Server" name="StopServer"> stop the server</td></tr> <br /> + </th> + </table> + <table> + <th colspan="2">Manage Worlds</th> + ]] + local LoopWorlds = function( World ) + Content = Content .. [[ + <tr><td><input type="submit" value="]] .. World:GetName() .. [[" name="WorldSaveAllChunks"> Save all the chunks of world ]] .. World:GetName() .. [[</td></tr> <br /> + + ]] + end + cRoot:Get():ForEachWorld( LoopWorlds ) + Content = Content .. "</th></table>" + + return Content +end + |