Added the Registered property to REST's players/read endpoints
This commit is contained in:
parent
66f5f9f540
commit
05a4e025f7
3 changed files with 272 additions and 262 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)));
|
||||
|
|
|
|||
|
|
@ -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)))},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue