Redirects /token/create to /v2/token/create.
Adds /v4/players/read. V4 contains piggy, safe, and forge data, and condenses all item fields into one object with child objects.
This commit is contained in:
parent
ee5e3f7d9d
commit
72a547441b
1 changed files with 43 additions and 1 deletions
|
|
@ -28,6 +28,7 @@ using HttpServer;
|
|||
using Rests;
|
||||
using Terraria;
|
||||
using TShockAPI.DB;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace TShockAPI
|
||||
{
|
||||
|
|
@ -196,6 +197,7 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
Rest.RegisterRedirect("/status", "/v2/server/status");
|
||||
Rest.RegisterRedirect("/token/create", "/v2/token/create");
|
||||
|
||||
//server commands
|
||||
Rest.RegisterRedirect("/server/motd", "/v3/server/motd");
|
||||
|
|
@ -227,7 +229,7 @@ namespace TShockAPI
|
|||
//player commands
|
||||
Rest.RegisterRedirect("/lists/players", "/lists/players", "/v2/players/list");
|
||||
Rest.RegisterRedirect("/players/list", "/v2/players/list");
|
||||
Rest.RegisterRedirect("/players/read", "/v3/players/read");
|
||||
Rest.RegisterRedirect("/players/read", "/v3/players/read", "v4/players/read");
|
||||
Rest.RegisterRedirect("/players/kick", "/v2/players/kick");
|
||||
Rest.RegisterRedirect("/players/ban", "/v2/players/ban");
|
||||
Rest.RegisterRedirect("/players/kill", "/v2/players/kill");
|
||||
|
|
@ -277,6 +279,7 @@ namespace TShockAPI
|
|||
Rest.Register(new SecureRestCommand("/lists/players", PlayerList));
|
||||
Rest.Register(new SecureRestCommand("/v2/players/list", PlayerListV2));
|
||||
Rest.Register(new SecureRestCommand("/v3/players/read", PlayerReadV3, RestPermissions.restuserinfo));
|
||||
Rest.Register(new SecureRestCommand("/v4/players/read", PlayerReadV4, RestPermissions.restuserinfo));
|
||||
Rest.Register(new SecureRestCommand("/v2/players/kick", PlayerKickV2, RestPermissions.restkick));
|
||||
Rest.Register(new SecureRestCommand("/v2/players/ban", PlayerBanV2, RestPermissions.restban, RestPermissions.restmanagebans));
|
||||
Rest.Register(new SecureRestCommand("/v2/players/kill", PlayerKill, RestPermissions.restkill));
|
||||
|
|
@ -947,6 +950,45 @@ namespace TShockAPI
|
|||
};
|
||||
}
|
||||
|
||||
[Description("Get information for a user.")]
|
||||
[Route("/v4/players/read")]
|
||||
[Permission(RestPermissions.restuserinfo)]
|
||||
[Noun("player", true, "The player to lookup", typeof(String))]
|
||||
[Token]
|
||||
private object PlayerReadV4(RestRequestArgs args)
|
||||
{
|
||||
var ret = PlayerFind(args.Parameters);
|
||||
if (ret is RestObject)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
TSPlayer player = (TSPlayer)ret;
|
||||
|
||||
object items = new
|
||||
{
|
||||
inventory = player.TPlayer.inventory.Where(i => i.active).Select(item => (NetItem)item),
|
||||
equipment = player.TPlayer.armor.Where(i => i.active).Select(item => (NetItem)item),
|
||||
dyes = player.TPlayer.dye.Where(i => i.active).Select(item => (NetItem)item),
|
||||
piggy = player.TPlayer.bank.item.Where(i => i.active).Select(item => (NetItem)item),
|
||||
safe = player.TPlayer.bank2.item.Where(i => i.active).Select(item => (NetItem)item),
|
||||
forge = player.TPlayer.bank3.item.Where(i => i.active).Select(item => (NetItem)item)
|
||||
};
|
||||
|
||||
return new RestObject
|
||||
{
|
||||
{"nickname", player.Name},
|
||||
{"username", player.User?.Name},
|
||||
{"ip", player.IP},
|
||||
{"group", player.Group.Name},
|
||||
{"registered", player.User?.Registered},
|
||||
{"muted", player.mute },
|
||||
{"position", player.TileX + "," + player.TileY},
|
||||
{"items", items},
|
||||
{"buffs", string.Join(", ", player.TPlayer.buffType)}
|
||||
};
|
||||
}
|
||||
|
||||
[Description("Kick a player off the server.")]
|
||||
[Route("/v2/players/kick")]
|
||||
[Permission(RestPermissions.restkick)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue