Пример #1
0
        private async ValueTask <TResult> InvokeEvent <T, TResult>(EventCallBackHandler <T, TResult> handler, T args,
                                                                   IOneBotApi api, string rawMsg)
            where T : System.EventArgs where TResult : BaseEventReturn
        {
            TResult replay = null;

            foreach (var @delegate in handler.GetInvocationList())
            {
                var func = (EventCallBackHandler <T, TResult>)@delegate;
                var code = 0;
                try
                {
                    var result = await func(args, api);

                    if (result == null)
                    {
                        continue;
                    }
                    replay = result;
                    code   = result.Code;
                }
                catch (Exception e)
                {
                    _logger.LogError(e, "消息处理出现未知错误:{Msg}", rawMsg);
                }

                if (code == 1)
                {
                    break;
                }
            }

            return(replay);
        }
Пример #2
0
        private async ValueTask InvokeEvent <T>(EventCallBackHandler <T> handler, T args, IOneBotApi api, string rawMsg)
            where T : System.EventArgs
        {
            foreach (var @delegate in handler.GetInvocationList())
            {
                var func = (EventCallBackHandler <T>)@delegate;
                var code = 0;
                try
                {
                    code = await func(args, api);
                }
                catch (Exception e)
                {
                    _logger.LogError(e, "消息处理出现未知错误:{Msg}", rawMsg);
                }

                if (code == 1)
                {
                    break;
                }
            }
        }