public List <string> TabComplete(ICommandSender sender, string alias, string[] args) { Debug.Assert(sender != null, "Sender cannot be null"); Debug.Assert(args != null, "Arguments cannot be null"); Debug.Assert(alias != null, "Alias cannot be null"); if (!(sender is IPlayer) || args.Length == 0) { return(new List <string>()); } string lastWord = args[args.Length - 1]; IPlayer senderPlayer = (IPlayer)sender; List <string> matchedPlayers = new List <string>(); foreach (IPlayer player in sender.GetServer().GetOnlinePlayers()) { string name = player.GetName(); if (senderPlayer.CanSee(player) && StringUtil.StartsWithIgnoreCase(name, lastWord)) { matchedPlayers.Add(name); } } matchedPlayers.Sort(StringComparer.OrdinalIgnoreCase); return(matchedPlayers); }