Пример #1
0
        public static void WriteCommand <C>(TextWriter writer, BaseCommand <C> cmd, string indent)
            where C : ICmdArgs
        {
            writer.WriteLine(indent + cmd.Name);
            indent += "\t";
            writer.WriteLine(indent + "Aliases: {0}", cmd.Aliases.ToString(", "));

            writer.WriteLine(indent + "Usage: {0}", cmd.CreateUsage());
            writer.WriteLine(indent + "Description: {0}", cmd.GetDescription(null));

            var command = cmd as RealmServerCommand;

            if (command != null)
            {
                writer.WriteLine(indent + "Needs Char: {0}", command.RequiresCharacter);
                writer.WriteLine(indent + "Required Targets: {0}", command.TargetTypes);
            }
            writer.WriteLine();

            if (cmd.SubCommands.Count > 0)
            {
                writer.WriteLine(indent + "SubCommands:");
                writer.WriteLine();
                indent += "\t";
                foreach (var subCmd in cmd.SubCommands)
                {
                    WriteCommand(writer, subCmd, indent);
                }
            }
        }