Exemple #1
0
        private static IEnumerable <CommandModuleInfo> ReflectModuleInfos(IEnumerable <Type> _modules)
        {
            var result = new List <CommandModuleInfo>();

            foreach (var item in _modules)
            {
                var attribute = Helpers.AttributeHelper.GetAttribute(item);

                if (attribute == null)
                {
                    continue;
                }

                var info = new CommandModuleInfo
                {
                    ClassType   = item,
                    Alias       = attribute.Alias,
                    Description = attribute.Description
                };

                result.Add(info);
            }

            return(result);
        }
Exemple #2
0
        private static void FillMethods(CommandModuleInfo item)
        {
            var methods = item.ClassType.GetMethods()
                          .Select(x => new { Method = x, Attr = (CommandMethodAttribute)x.GetCustomAttribute(typeof(CommandMethodAttribute), false) })
                          .Where(x => x.Attr != null);

            foreach (var method in methods)
            {
                var methodInfo = new CommandMethodInfo
                {
                    Alias       = method.Attr.Alias,
                    Description = method.Attr.Description,
                    Method      = method.Method
                };

                item.Methods.Add(methodInfo);
            }
        }