Move Utils.FindPlayer -> TSPlayer.FindByNameOrID.
This makes TShock more OOP like (get the matching players from the player as opposed to getting the players from a random class that shouldn't exist).
This commit is contained in:
parent
830b1634f2
commit
11920cde48
5 changed files with 63 additions and 60 deletions
|
|
@ -73,6 +73,43 @@ namespace TShockAPI
|
|||
/// </summary>
|
||||
public static readonly TSPlayer All = new TSPlayer("All");
|
||||
|
||||
/// <summary>
|
||||
/// Finds a TSPlayer based on name or ID
|
||||
/// </summary>
|
||||
/// <param name="plr">Player name or ID</param>
|
||||
/// <returns>A list of matching players</returns>
|
||||
public static List<TSPlayer> FindByNameOrID(string plr)
|
||||
{
|
||||
var found = new List<TSPlayer>();
|
||||
// Avoid errors caused by null search
|
||||
if (plr == null)
|
||||
return found;
|
||||
|
||||
byte plrID;
|
||||
if (byte.TryParse(plr, out plrID) && plrID < Main.maxPlayers)
|
||||
{
|
||||
TSPlayer player = TShock.Players[plrID];
|
||||
if (player != null && player.Active)
|
||||
{
|
||||
return new List<TSPlayer> { player };
|
||||
}
|
||||
}
|
||||
|
||||
string plrLower = plr.ToLower();
|
||||
foreach (TSPlayer player in TShock.Players)
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
// Must be an EXACT match
|
||||
if (player.Name == plr)
|
||||
return new List<TSPlayer> { player };
|
||||
if (player.Name.ToLower().StartsWith(plrLower))
|
||||
found.Add(player);
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The amount of tiles that the player has killed in the last second.
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue