From b9df823f417e72a95070475e63f973b96b434c47 Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Mon, 2 Jan 2012 00:57:03 -0700 Subject: [PATCH] Add the /v2/server/off endpoint --- TShockAPI/Rest/RestManager.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/TShockAPI/Rest/RestManager.cs b/TShockAPI/Rest/RestManager.cs index fbfd6f64..e7ea0425 100644 --- a/TShockAPI/Rest/RestManager.cs +++ b/TShockAPI/Rest/RestManager.cs @@ -61,6 +61,7 @@ namespace TShockAPI Rest.Register(new RestCommand("/v2/players/kill", PlayerKill) {RequiresToken = true}); Rest.Register(new RestCommand("/v2/server/broadcast", Broadcast) { RequiresToken = true}); + Rest.Register(new RestCommand("/v2/server/off", Off) {RequiresToken = true}); #region Deprecated Endpoints Rest.Register(new RestCommand("/bans/read/{user}/info", BanInfo) { RequiresToken = true }); @@ -79,6 +80,21 @@ namespace TShockAPI #region RestServerMethods + private object Off(RestVerbs verbs, IParameterCollection parameters) + { + bool confirm; + bool.TryParse(parameters["confirm"], out confirm); + bool nosave; + bool.TryParse(parameters["nosave"], out nosave); + if (confirm == true) + { + if (!nosave) + WorldGen.saveWorld(); + Netplay.disconnect = true; + } + return new RestObject("200")["response"] = "The server will shut down only if the parameter 'confirm' is set to true in this REST call. You will not recieve a reply."; + } + private object Broadcast(RestVerbs verbs, IParameterCollection parameters) { if (parameters["msg"] != null && parameters["msg"].Trim() != "")