public override async void ShowHelpMessage(AcceptedMessage message, string[] args)
        {
            var str = "=== Vtuber天狗机器人使用指南 === (指令中的参数如果需要空格请使用%代替空格)\r\n";

            str += string.Join("\r\n",
                               Observer.Processors.Where(v => v != this && !string.IsNullOrEmpty(v.HelpMessage))
                               .Select(v => v.HelpMessage));
            str += "\r\n机器人进入维护状态,将不会增加新功能,如有问题请使用!留言 告知";
            if (message.IsGroupMessage)
            {
                await SendingService.SendGroupMessageAsync(message.FromGroup, str);
            }
            else
            {
                await SendingService.SendPrivateMessageAsync(message.FromUser, str);
            }
        }
        public virtual void Process(AcceptedMessage message)
        {
            if (!message.IsGroupMessage)
            {
                SendingService.SendPrivateMessageAsync(message.FromUser, "暂不支持私聊互动");
                return;
            }
            var methods = GetType().GetMethods().Where(v => v.IsDefined(typeof(BotCommandAttribute), false));
            var atts    = methods.Select(v =>
                                         v.GetCustomAttributes(false).First(att => att.GetType() == typeof(BotCommandAttribute)))
                          .Select(v => (BotCommandAttribute)v);
            var handled = false;
            var args    = message.Content.Trim().Split(' ').Select(v => v.Replace("%", " ")).ToArray();

            foreach (var method in methods)
            {
                var attr              = method.GetCustomAttributes(false);
                var commandAttr       = attr.FirstOrDefault(v => v.GetType() == typeof(BotCommandAttribute));
                var commandPermission = attr.FirstOrDefault(v => v.GetType() == typeof(CommandPermissionsAttribute));
                if (commandAttr != null)
                {
                    var info = (BotCommandAttribute)commandAttr;
                    if (args.Length == info.ProcessLength || info.ProcessLength == 0)
                    {
                        if (!string.IsNullOrEmpty(info.SubCommandName))
                        {
                            if (args.Length <= info.SubCommandOffset)
                            {
                                continue;
                            }
                            if (!args[info.SubCommandOffset].EqualsIgnoreCase(info.SubCommandName))
                            {
                                continue;
                            }
                        }
                        else
                        {
                            if (atts.Any(v => !string.IsNullOrEmpty(v.SubCommandName) && args.Length > v.SubCommandOffset && args[v.SubCommandOffset] == v.SubCommandName))
                            {
                                continue;
                            }
                        }
                        try
                        {
                            handled = true;
                            if (commandPermission != null)
                            {
                                var config =
                                    Config.DefaultConfig.GroupConfigs.FirstOrDefault(
                                        v => v.GroupId == message.FromGroup);
                                var permissionInfo = (CommandPermissionsAttribute)commandPermission;
                                if (config == null || permissionInfo.Permissions.Any(v => config.Permissions.Contains(v)))
                                {
                                    SendingService.SendGroupMessageAsync(message.FromGroup, $"您没有权限执行这个操作.")
                                    .GetAwaiter().GetResult();
                                    return;
                                }
                            }
                            method.Invoke(this, new object[]
                            {
                                message,
                                args
                            });
                        }
                        catch (Exception ex)
                        {
                            LogHelper.Error("处理消息时出现未知异常 包名:" + GetType() + " 函数名: " + method.Name, true, ex);
                            SendingService.SendGroupMessageAsync(message.FromGroup, $"处理请求时出现未知异常,处理函数: {method.Name}");
                        }
                    }
                }
            }
            if (!handled)
            {
                ShowHelpMessage(message, args);
            }
        }