public static Player[] FindPlayers([NotNull] Player player, [NotNull] string name, bool raiseEvent) { if (player == null) throw new ArgumentNullException("player"); if (name == null) throw new ArgumentNullException("name"); if (name == "-") { if (player.LastUsedPlayerName != null) { name = player.LastUsedPlayerName; } else { return new Player[0]; } } player.LastUsedPlayerName = name; List<Player> results = new List<Player>(); Player[] tempList = Players; for (int i = 0; i < tempList.Length; i++) { if (tempList[i] == null || !player.CanSee(tempList[i])) continue; if (tempList[i].Name.Equals(name, StringComparison.OrdinalIgnoreCase)) { results.Clear(); results.Add(tempList[i]); break; } else if (tempList[i].Name.StartsWith(name, StringComparison.OrdinalIgnoreCase)) { results.Add(tempList[i]); } } if (raiseEvent) { var h = SearchingForPlayer; if (h != null) { var e = new SearchingForPlayerEventArgs(player, name, results); h(null, e); } } if (results.Count == 1) { player.LastUsedPlayerName = results[0].Name; } return results.ToArray(); }
public static Player[] FindPlayers([NotNull] string name, bool raiseEvent) { if (name == null) throw new ArgumentNullException("name"); Player[] tempList = Players; List<Player> results = new List<Player>(); for (int i = 0; i < tempList.Length; i++) { if (tempList[i] == null) continue; if (tempList[i].Name.Equals(name, StringComparison.OrdinalIgnoreCase)) { results.Clear(); results.Add(tempList[i]); break; } else if (tempList[i].Name.StartsWith(name, StringComparison.OrdinalIgnoreCase)) { results.Add(tempList[i]); } } if (raiseEvent) { var h = SearchingForPlayer; if (h != null) { var e = new SearchingForPlayerEventArgs(null, name, results); h(null, e); } } return results.ToArray(); }