From 6495496cd423b45cbf0276b9ec165bab19f9eabe Mon Sep 17 00:00:00 2001 From: Enerdy Date: Thu, 9 Jul 2015 03:23:37 +0100 Subject: [PATCH] Fixes /who -i and /userinfo. Also updates the submodule. --- TShockAPI/Commands.cs | 23 +++++++++++------------ TShockAPI/Utils.cs | 18 +++++++++--------- TerrariaServerAPI | 2 +- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index e8928884..cb3c0444 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -1148,18 +1148,17 @@ namespace TShockAPI } var players = TShock.Utils.FindPlayer(args.Parameters[0]); - if (players.Count > 1) - { - TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); - return; - } - try - { - args.Player.SendSuccessMessage("IP Address: " + players[0].IP + " Logged in as: " + players[0].User.Name + " group: " + players[0].Group.Name); - } - catch (Exception) - { + if (players.Count < 1) args.Player.SendErrorMessage("Invalid player."); + else if (players.Count > 1) + TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); + else + { + var message = new StringBuilder(); + message.Append("IP Address: ").Append(players[0].IP); + if (players[0].User != null && players[0].IsLoggedIn) + message.Append(" | Logged in as: ").Append(players[0].User.Name).Append(" | Group: ").Append(players[0].Group.Name); + args.Player.SendSuccessMessage(message.ToString()); } } @@ -1236,7 +1235,7 @@ namespace TShockAPI args.Player.SendErrorMessage("Cannot ban {0} because they have no IPs to ban.", user.Name); return; } - var knownIps = JsonConvert.DeserializeObject>(user.KnownIps); + var knownIps = JsonConvert.DeserializeObject>(user.KnownIps); TShock.Bans.AddBan(knownIps.Last(), user.Name, user.UUID, reason, false, args.Player.User.Name); if (String.IsNullOrWhiteSpace(args.Player.User.Name)) { diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs index 5b496675..35f36a9d 100644 --- a/TShockAPI/Utils.cs +++ b/TShockAPI/Utils.cs @@ -81,17 +81,17 @@ namespace TShockAPI foreach (TSPlayer ply in TShock.Players) { - if (ply != null && ply.Active) + if (ply != null && ply.Active) + { + if (includeIDs) { - if (includeIDs) - { - players.Add(ply.Name + " (IX: " + ply.Index + ", ID: " + ply.User.ID + ")"); - } - else - { - players.Add(ply.Name); - } + players.Add(String.Format("{0} (IX: {1}{2})", ply.Name, ply.Index, ply.User != null ? ", ID: " + ply.User.ID : "")); } + else + { + players.Add(ply.Name); + } + } } return players; diff --git a/TerrariaServerAPI b/TerrariaServerAPI index 02625efe..d8072c94 160000 --- a/TerrariaServerAPI +++ b/TerrariaServerAPI @@ -1 +1 @@ -Subproject commit 02625efea2cfc9b530f4c903af8f965d802f3b6e +Subproject commit d8072c94aa9d48a2da4d189eae1169a4044dea2f