Add new rest endpoint /v3/players/read to read the players inventory, armor, and dyes. Armor contains both armor and accessories, as well as vanity. Dyes contain all 8 dye slots. Closes #835
This commit is contained in:
parent
444af6cf57
commit
c29f01b959
1 changed files with 25 additions and 0 deletions
|
|
@ -89,6 +89,7 @@ namespace TShockAPI
|
|||
Rest.Register(new SecureRestCommand("/lists/players", PlayerList));
|
||||
Rest.Register(new SecureRestCommand("/v2/players/list", PlayerListV2));
|
||||
Rest.Register(new SecureRestCommand("/v2/players/read", PlayerReadV2, RestPermissions.restuserinfo));
|
||||
Rest.Register(new SecureRestCommand("/v3/players/read", PlayerReadV3, 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));
|
||||
|
|
@ -602,6 +603,30 @@ namespace TShockAPI
|
|||
};
|
||||
}
|
||||
|
||||
private object PlayerReadV3(RestRequestArgs args)
|
||||
{
|
||||
var ret = PlayerFind(args.Parameters);
|
||||
if (ret is RestObject)
|
||||
return ret;
|
||||
|
||||
TSPlayer player = (TSPlayer)ret;
|
||||
var inventory = player.TPlayer.inventory.Where(p => p.active).ToList();
|
||||
var equipment = player.TPlayer.armor.Where(p => p.active).ToList();
|
||||
var dyes = player.TPlayer.dye.Where(p => p.active).ToList();
|
||||
return new RestObject()
|
||||
{
|
||||
{"nickname", player.Name},
|
||||
{"username", null == player.UserAccountName ? "" : player.UserAccountName},
|
||||
{"ip", player.IP},
|
||||
{"group", player.Group.Name},
|
||||
{"position", player.TileX + "," + player.TileY},
|
||||
{"inventory", string.Join(", ", inventory.Select(p => (p.name + ":" + p.stack)))},
|
||||
{"armor", string.Join(", ", equipment.Select(p => (p.netID + ":" + p.prefix)))},
|
||||
{"dyes", string.Join(", ", dyes.Select(p => (p.name)))},
|
||||
{"buffs", string.Join(", ", player.TPlayer.buffType)}
|
||||
};
|
||||
}
|
||||
|
||||
private object PlayerKickV2(RestRequestArgs args)
|
||||
{
|
||||
var ret = PlayerFind(args.Parameters);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue