Exemple #1
0
        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);
        }