Added new REST endpoints:

- /v2/world/save
 -- Saves the world
 - /v2/world/autosave/state/{bool}
 -- Changes the autosave state of the server

TSHOCKPLUGINS-12
This commit is contained in:
Lucas Nicodemus 2012-01-07 14:14:53 -07:00
parent e61593d74c
commit e17f56fae0

View file

@ -40,7 +40,7 @@ namespace TShockAPI
Rest.Register(new RestCommand("/tokentest", TokenTest) {RequiresToken = true});
Rest.Register(new RestCommand("/users/activelist", UserList) {RequiresToken = true});
Rest.Register(new RestCommand("/v2/users/activelist", UserListV2) { RequiresToken = true });
Rest.Register(new RestCommand("/v2/users/activelist", UserListV2) { RequiresToken = true });
Rest.Register(new RestCommand("/v2/users/read", UserInfoV2) { RequiresToken = true });
Rest.Register(new RestCommand("/v2/users/destroy", UserDestroyV2) { RequiresToken = true });
Rest.Register(new RestCommand("/v2/users/update", UserUpdateV2) { RequiresToken = true });
@ -54,6 +54,8 @@ namespace TShockAPI
Rest.Register(new RestCommand("/world/read", WorldRead) {RequiresToken = true});
Rest.Register(new RestCommand("/world/meteor", WorldMeteor) {RequiresToken = true});
Rest.Register(new RestCommand("/world/bloodmoon/{bool}", WorldBloodmoon) {RequiresToken = true});
Rest.Register(new RestCommand("/v2/world/save", WorldSave) { RequiresToken = true});
Rest.Register(new RestCommand("/v2/world/autosave/state/{bool}", ChangeWorldSaveSettings) { RequiresToken = true });
Rest.Register(new RestCommand("/v2/world/butcher", Butcher) {RequiresToken = true});
Rest.Register(new RestCommand("/v2/players/read", PlayerReadV2) { RequiresToken = true });
@ -144,7 +146,7 @@ namespace TShockAPI
private object TokenTest(RestVerbs verbs, IParameterCollection parameters)
{
return new Dictionary<string, string>
{{"status", "200"}, {"response", "Token is valid and was passed through correctly."}};
{{"status", "200"}, {"response", "Token is valid and was passed through correctly."}};
}
private object Status(RestVerbs verbs, IParameterCollection parameters)
@ -168,17 +170,17 @@ namespace TShockAPI
#region RestUserMethods
private object UserListV2(RestVerbs verbs, IParameterCollection parameters)
{
var ret = new RestObject("200");
string playerlist = "";
foreach (var TSPlayer in TShock.Players)
{
playerlist += playerlist == "" ? TSPlayer.UserAccountName : "\t" + TSPlayer.UserAccountName;
}
ret["activeusers"] = playerlist;
return ret;
}
private object UserListV2(RestVerbs verbs, IParameterCollection parameters)
{
var ret = new RestObject("200");
string playerlist = "";
foreach (var TSPlayer in TShock.Players)
{
playerlist += playerlist == "" ? TSPlayer.UserAccountName : "\t" + TSPlayer.UserAccountName;
}
ret["activeusers"] = playerlist;
return ret;
}
private object UserUpdateV2(RestVerbs verbs, IParameterCollection parameters)
{
@ -379,6 +381,36 @@ namespace TShockAPI
#region RestWorldMethods
private object ChangeWorldSaveSettings(RestVerbs verbs, IParameterCollection parameters)
{
bool state;
bool.TryParse(verbs["state"], out state);
if (state == true)
{
TShock.Config.AutoSave = true;
}
else
{
TShock.Config.AutoSave = false;
}
RestObject rj = new RestObject("200");
rj["response"] = "Value changed";
rj["state"] = state;
return rj;
}
private object WorldSave(RestVerbs verbs, IParameterCollection parameters)
{
TShock.Utils.SaveWorld();
RestObject rj = new RestObject("200");
rj["response"] = "World saved.";
return rj;
}
private object Butcher(RestVerbs verbs, IParameterCollection parameters)
{
bool killFriendly;
@ -423,11 +455,11 @@ namespace TShockAPI
private object WorldMeteor(RestVerbs verbs, IParameterCollection parameters)
{
if (WorldGen.genRand == null)
WorldGen.genRand = new Random();
if (WorldGen.genRand == null)
WorldGen.genRand = new Random();
WorldGen.dropMeteor();
var returnBlock = new Dictionary<string, string> {{"status", "200"}, {"response", "Meteor has been spawned."}};
return returnBlock;
return returnBlock;
}
private object WorldBloodmoon(RestVerbs verbs, IParameterCollection parameters)
@ -713,24 +745,24 @@ namespace TShockAPI
return returnBlock;
}
private object UserList(RestVerbs verbs, IParameterCollection parameters)
{
var ret = new RestObject("200");
string playerlist = "";
foreach (var TSPlayer in TShock.Players)
{
if (playerlist == "")
{
playerlist += TSPlayer.UserAccountName;
}
else
{
playerlist += ", " + TSPlayer.UserAccountName;
}
}
ret["activeuesrs"] = playerlist;
return ret;
}
private object UserList(RestVerbs verbs, IParameterCollection parameters)
{
var ret = new RestObject("200");
string playerlist = "";
foreach (var TSPlayer in TShock.Players)
{
if (playerlist == "")
{
playerlist += TSPlayer.UserAccountName;
}
else
{
playerlist += ", " + TSPlayer.UserAccountName;
}
}
ret["activeuesrs"] = playerlist;
return ret;
}
private object BanDestroy(RestVerbs verbs, IParameterCollection parameters)
{