Beispiel #1
0
        protected override void Executed(Params args, IConsoleOutput target)
        {
            Command[] enabledCommands = AllCommandsInternal.Where(i => i.IsEnabled).ToArray();

            if (args.Count == 0)
            {
                Executed(new Params(new string[] { 1.ToString() }), target);
                return;
            }

            if (args.IsInteger(0))
            {
                target.WriteLine("Listing commands at page " + args.ToInt(0) + " of " + GetPageCount());

                for (int i = (args.ToInt(0) - 1) * 5; i < (args.ToInt(0) - 1) * 5 + 5 && i < enabledCommands.Length; i++)
                {
                    target.WriteLine("* " + enabledCommands[i].Name + ": " + enabledCommands[i].HelpDescription);
                }
            }
            else
            {
                Command cmd = GetByName(args.JoinEnd(0));

                target.WriteLine(cmd.Name);
                target.WriteLine("* " + cmd.HelpDescription);

                string sstring = cmd.GetSyntax(new Params(new string[0])).CreateSyntaxString();
                target.WriteWarning("* Syntax: ");

                foreach (string i in sstring.Split('\n'))
                {
                    target.WriteWarning("*   " + i);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Finds and returns a command by name
        /// </summary>
        /// <param name="name">Name of command</param>
        /// <param name="includeDisabled">Will the search include commands that have been disabled?</param>
        /// <returns></returns>
        public static Command GetByName(string name, bool includeDisabled)
        {
            if (!includeDisabled)
            {
                return(GetByName(name));
            }

            name = name.Trim();
            return(AllCommandsInternal.Where(i => i.Name.ToUpper() == name.ToUpper()).LastOrDefault());
        }
Beispiel #3
0
 public override Syntax GetSyntax(Params args)
 {
     if (args.Count == 0)
     {
         return(Syntax.Begin().Add("Command name", AllCommandsInternal.Select(i => i.Name).ToArray()).Or().Add("Page number", Range.From(1).To(GetPageCount()), true).Or());
     }
     else if (args.Count == 1 && args.IsDouble(0))
     {
         return(Syntax.Begin().Add("Page number", Range.From(1).To(GetPageCount()), true));
     }
     else
     {
         return(Syntax.Begin().Add("Command name", AllCommandsInternal.Select(i => i.Name).ToArray()));
     }
 }
Beispiel #4
0
 static int GetPageCount()
 {
     return(AllCommandsInternal.Count(i => i.IsEnabled) / 5 + (AllCommandsInternal.Count(i => i.IsEnabled) % 5 == 0 ? 0 : 1));
 }
Beispiel #5
0
 /// <summary>
 /// Finds and returns a command by its typecode
 /// </summary>
 /// <typeparam name="C">Type of command to find</typeparam>
 /// <returns></returns>
 public static Command GetByType <C>() where C : Command
 {
     return(AllCommandsInternal.Where(i => i.GetType() == typeof(C)).LastOrDefault());
 }
Beispiel #6
0
 /// <summary>
 /// Finds and returns a command by name
 /// </summary>
 /// <param name="name">Name of command</param>
 /// <returns></returns>
 public static Command GetByName(string name)
 {
     name = name.Trim();
     return(AllCommandsInternal.Where(i => i.Name.ToUpper() == name.ToUpper() && i.IsEnabled).LastOrDefault());
 }
Beispiel #7
0
 /// <summary>
 /// Registers a command in this command collection
 /// </summary>
 /// <param name="command">Command to register</param>
 public static void Register(Command command)
 {
     AllCommandsInternal.Add(command);
     command.IsEnabled = true;
 }