Added the Registered property to REST's players/read endpoints

This commit is contained in:
ProfessorXZ 2016-08-30 09:16:01 +02:00
parent 66f5f9f540
commit 05a4e025f7
3 changed files with 272 additions and 262 deletions

View file

@ -6,6 +6,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
* API: Fixed chat line breaks when using chat tags and long strings of text (@ProfessorXZ)
* API: Added ItemForceIntoChest hook (@WhiteXZ)
* API: Included the player's registration date in REST's players/read endpoints (@ProfessorXZ)
* The setdungeon command correctly uses tshock.world.setdungeon as its permission (@OnsenManju)
* Fixed clients being able to "Catch" and remove NPCs (@ProfessorXZ)
* Fixed clients being able to remove other players' portals (@ProfessorXZ)

View file

@ -829,7 +829,7 @@ namespace TShockAPI
if (TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP) != Vector2.Zero)
{
Vector2 pos = TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP);
args.Player.Teleport((int) pos.X*16, (int) pos.Y*16);
args.Player.Teleport((int)pos.X * 16, (int)pos.Y * 16);
}
args.Player.LoginHarassed = false;
@ -1590,7 +1590,7 @@ namespace TShockAPI
args.Player.SendErrorMessage("Server Side Characters is disabled.");
return;
}
if( args.Parameters.Count < 1 )
if (args.Parameters.Count < 1)
{
args.Player.SendErrorMessage("Correct usage: {0}overridessc|{0}ossc <player name>", Specifier);
return;
@ -1598,12 +1598,12 @@ namespace TShockAPI
string playerNameToMatch = string.Join(" ", args.Parameters);
var matchedPlayers = TShock.Utils.FindPlayer(playerNameToMatch);
if( matchedPlayers.Count < 1 )
if (matchedPlayers.Count < 1)
{
args.Player.SendErrorMessage("No players matched \"{0}\".", playerNameToMatch);
return;
}
else if( matchedPlayers.Count > 1 )
else if (matchedPlayers.Count > 1)
{
TShock.Utils.SendMultipleMatchError(args.Player, matchedPlayers.Select(p => p.Name));
return;
@ -1787,7 +1787,7 @@ namespace TShockAPI
if (args.Parameters.Count > 0)
subCommand = args.Parameters[0];
switch(subCommand.ToLower())
switch (subCommand.ToLower())
{
case "listusers":
{
@ -1795,7 +1795,7 @@ namespace TShockAPI
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out pageNumber))
return;
Dictionary<string,int> restUsersTokens = new Dictionary<string,int>();
Dictionary<string, int> restUsersTokens = new Dictionary<string, int>();
foreach (Rests.SecureRest.TokenData tokenData in TShock.RestApi.Tokens.Values)
{
if (restUsersTokens.ContainsKey(tokenData.Username))
@ -1808,7 +1808,8 @@ namespace TShockAPI
restUsersTokens.Select(ut => string.Format("{0} ({1} tokens)", ut.Key, ut.Value)));
PaginationTools.SendPage(
args.Player, pageNumber, PaginationTools.BuildLinesFromTerms(restUsers), new PaginationTools.Settings {
args.Player, pageNumber, PaginationTools.BuildLinesFromTerms(restUsers), new PaginationTools.Settings
{
NothingToDisplayString = "There are currently no active REST users.",
HeaderFormat = "Active REST Users ({0}/{1}):",
FooterFormat = "Type {0}rest listusers {{0}} for more.".SFormat(Specifier)
@ -1979,7 +1980,7 @@ namespace TShockAPI
if (result > 0)
{
args.Player.SendSuccessMessage("Removed {0} players from the angler quest completion list for today.", result);
foreach (TSPlayer ply in TShock.Players.Where(p => p!= null && p.Active && p.TPlayer.name.ToLower().Equals(args.Parameters[0].ToLower())))
foreach (TSPlayer ply in TShock.Players.Where(p => p != null && p.Active && p.TPlayer.name.ToLower().Equals(args.Parameters[0].ToLower())))
{
//this will always tell the client that they have not done the quest today.
ply.SendData((PacketTypes)74, "");
@ -2236,7 +2237,7 @@ namespace TShockAPI
private static void Spawn(CommandArgs args)
{
if (args.Player.Teleport(Main.spawnTileX*16, (Main.spawnTileY*16) -48))
if (args.Player.Teleport(Main.spawnTileX * 16, (Main.spawnTileY * 16) - 48))
args.Player.SendSuccessMessage("Teleported to the map's spawnpoint.");
}
@ -3681,7 +3682,8 @@ namespace TShockAPI
{
args.Player.SendInfoMessage("Changed the maximum spawns to 5.");
}
else {
else
{
TSPlayer.All.SendInfoMessage("{0} changed the maximum spawns to 5.", args.Player.Name);
}
return;
@ -3699,7 +3701,8 @@ namespace TShockAPI
{
args.Player.SendInfoMessage("Changed the maximum spawns to {0}.", maxSpawns);
}
else {
else
{
TSPlayer.All.SendInfoMessage("{0} changed the maximum spawns to {1}.", args.Player.Name, maxSpawns);
}
}
@ -3719,7 +3722,8 @@ namespace TShockAPI
{
args.Player.SendInfoMessage("Changed the spawn rate to 600.");
}
else {
else
{
TSPlayer.All.SendInfoMessage("{0} changed the spawn rate to 600.", args.Player.Name);
}
return;
@ -3736,7 +3740,8 @@ namespace TShockAPI
{
args.Player.SendInfoMessage("Changed the spawn rate to {0}.", spawnRate);
}
else {
else
{
TSPlayer.All.SendInfoMessage("{0} changed the spawn rate to {1}.", args.Player.Name, spawnRate);
}
}
@ -3911,8 +3916,8 @@ namespace TShockAPI
return;
}
float speed;
if (!float.TryParse(args.Parameters[0], out speed))
int speed;
if (!int.TryParse(args.Parameters[0], out speed))
{
args.Player.SendErrorMessage("Invalid wind speed!");
return;
@ -4892,7 +4897,8 @@ namespace TShockAPI
}
string givenCommandName = string.Join(" ", args.Parameters);
if (string.IsNullOrWhiteSpace(givenCommandName)) {
if (string.IsNullOrWhiteSpace(givenCommandName))
{
args.Player.SendErrorMessage("Please enter a proper command name or alias.");
return;
}
@ -4904,7 +4910,8 @@ namespace TShockAPI
commandName = givenCommandName;
bool didMatch = false;
foreach (Command matchingCommand in ChatCommands.Where(cmd => cmd.Names.IndexOf(commandName) != -1)) {
foreach (Command matchingCommand in ChatCommands.Where(cmd => cmd.Names.IndexOf(commandName) != -1))
{
if (matchingCommand.Names.Count > 1)
args.Player.SendInfoMessage(
"Aliases of {0}{1}: {0}{2}", Specifier, matchingCommand.Name, string.Join(", {0}".SFormat(Specifier), matchingCommand.Names.Skip(1)));
@ -5069,7 +5076,7 @@ namespace TShockAPI
{
if (Main.npc[i].active && ((npcId == 0 && !Main.npc[i].townNPC && Main.npc[i].netID != NPCID.TargetDummy) || Main.npc[i].netID == npcId))
{
TSPlayer.Server.StrikeNPC(i, (int)(Main.npc[i].life + (Main.npc[i].defense*0.5)), 0, 0);
TSPlayer.Server.StrikeNPC(i, (int)(Main.npc[i].life + (Main.npc[i].defense * 0.5)), 0, 0);
kills++;
}
}
@ -5196,7 +5203,7 @@ namespace TShockAPI
TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => n.name));
return;
}
else if (args.Parameters[1].Length >200)
else if (args.Parameters[1].Length > 200)
{
args.Player.SendErrorMessage("New name is too large!");
return;
@ -5206,17 +5213,17 @@ namespace TShockAPI
npcId = npcs[0].netID;
}
}
int done=0;
int done = 0;
for (int i = 0; i < Main.npc.Length; i++)
{
if (Main.npc[i].active && ((npcId == 0 && !Main.npc[i].townNPC) || (Main.npc[i].netID == npcId && Main.npc[i].townNPC)))
{
Main.npc[i].displayName= args.Parameters[1];
Main.npc[i].displayName = args.Parameters[1];
NetMessage.SendData(56, -1, -1, args.Parameters[1], i, 0f, 0f, 0f, 0);
done++;
}
}
if (done >0 )
if (done > 0)
{
TSPlayer.All.SendInfoMessage("{0} renamed the {1}.", args.Player.Name, args.Parameters[0]);
}
@ -5396,7 +5403,7 @@ namespace TShockAPI
{
if (time < 0 || time > short.MaxValue)
time = 60;
args.Player.SetBuff(id, time*60);
args.Player.SetBuff(id, time * 60);
args.Player.SendSuccessMessage(string.Format("You have buffed yourself with {0}({1}) for {2} seconds!",
TShock.Utils.GetBuffName(id), TShock.Utils.GetBuffDescription(id), (time)));
}
@ -5447,7 +5454,7 @@ namespace TShockAPI
{
if (time < 0 || time > short.MaxValue)
time = 60;
foundplr[0].SetBuff(id, time*60);
foundplr[0].SetBuff(id, time * 60);
args.Player.SendSuccessMessage(string.Format("You have buffed {0} with {1}({2}) for {3} seconds!",
foundplr[0].Name, TShock.Utils.GetBuffName(id),
TShock.Utils.GetBuffDescription(id), (time)));

View file

@ -810,6 +810,7 @@ namespace TShockAPI
{"username", null == player.User ? "" : player.User.Name},
{"ip", player.IP},
{"group", player.Group.Name},
{"registered", null == player.User ? "" : player.User.Registered},
{"position", player.TileX + "," + player.TileY},
{"inventory", string.Join(", ", activeItems.Select(p => (p.name + ":" + p.stack)))},
{"buffs", string.Join(", ", player.TPlayer.buffType)}
@ -837,6 +838,7 @@ namespace TShockAPI
{"username", null == player.User ? "" : player.User.Name},
{"ip", player.IP},
{"group", player.Group.Name},
{"registered", null == player.User ? "" : player.User.Registered},
{"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)))},