public bool TryDoCommand(Players.Player causedBy, string chattext, List <string> splits) { if (!splits[0].Equals("/lastseen")) { return(false); } var m = Regex.Match(chattext, @"/lastseen (?<playername>['].+[']|[^ ]+)"); if (!m.Success) { Chat.Send(causedBy, "Command didn't match, use /lastseen [playername]"); return(true); } var targetPlayerName = m.Groups ["playername"].Value; Players.Player targetPlayer; string error; if (!PlayerHelper.TryGetPlayer(targetPlayerName, out targetPlayer, out error, true)) { Chat.Send(causedBy, $"Could not find player '{targetPlayerName}'; {error}"); return(true); } var lastSeen = ActivityTracker.GetLastSeen(targetPlayer.ID.ToStringReadable()); Chat.Send(causedBy, $"Player {targetPlayer.ID.ToStringReadable()} last seen {lastSeen}"); return(true); }
public bool TryDoCommand(Players.Player causedBy, string chattext, List <string> splits) { if (!splits[0].Equals("/list")) { return(false); } Match m = Regex.Match(chattext, @"/list (?<playername>['].+[']|[^ ]+)"); if (!m.Success) { Chat.Send(causedBy, "Syntax: /list {playername}"); return(true); } if (!PermissionsManager.CheckAndWarnPermission(causedBy, AntiGrief.MOD_PREFIX + "listplayer")) { return(true); } string targetName = m.Groups["playername"].Value; string error; Players.Player targetPlayer; if (!PlayerHelper.TryGetPlayer(targetName, out targetPlayer, out error, true)) { Chat.Send(causedBy, $"Could not find '{targetName}'; {error}"); return(true); } string lastSeen = ActivityTracker.GetLastSeen(targetPlayer.ID.ToStringReadable()); string colonies = ""; int count = 0; for (int i = 0; i < targetPlayer.Colonies.Length; i++) { if (!colonies.Equals("")) { colonies += ", "; } colonies += targetPlayer.Colonies[i].Name; count++; } Chat.Send(causedBy, $"Player {targetPlayer.Name} last seen {lastSeen}"); Chat.Send(causedBy, $"{targetPlayer.Name} owns {count} colonies: {colonies}"); return(true); }