Пример #1
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="connectionGuid">服务器链接标识</param>
 /// <param name="eventName">事件名</param>
 /// <param name="privateMsgArgs">私聊消息事件参数</param>
 internal PrivateMessageEventArgs(Guid connectionGuid, string eventName, ApiPrivateMsgEventArgs privateMsgArgs)
     : base(connectionGuid, eventName, privateMsgArgs.SelfID, privateMsgArgs.Time)
 {
     this.Message = new Message(connectionGuid, privateMsgArgs.MessageId, privateMsgArgs.RawMessage,
                                MessageParse.ParseMessageList(privateMsgArgs.MessageList),
                                privateMsgArgs.Time, privateMsgArgs.Font);
     this.Sender     = new User(connectionGuid, privateMsgArgs.UserId);
     this.SenderInfo = privateMsgArgs.SenderInfo;
 }
Пример #2
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="connectionGuid">服务器链接标识</param>
 /// <param name="eventName">事件名</param>
 /// <param name="privateMsgArgs">私聊消息事件参数</param>
 internal PrivateMessageEventArgs(Guid connectionGuid, string eventName, ApiPrivateMsgEventArgs privateMsgArgs)
     : base(connectionGuid, eventName, privateMsgArgs.SelfID, privateMsgArgs.Time)
 {
     //将api消息段转换为CQ码
     this.Message = new Message(connectionGuid, privateMsgArgs.MessageId, privateMsgArgs.RawMessage,
                                MessageParse.Parse(privateMsgArgs.MessageList),
                                privateMsgArgs.Time, privateMsgArgs.Font, null);
     this.Sender             = new User(connectionGuid, privateMsgArgs.UserId);
     this.SenderInfo         = privateMsgArgs.SenderInfo;
     this.IsTemporaryMessage = privateMsgArgs.SenderInfo.GroupId != null;
 }
Пример #3
0
        /// <summary>
        /// 消息事件处理和分发
        /// </summary>
        /// <param name="messageJson">消息</param>
        /// <param name="connection">连接GUID</param>
        private async void MessageAdapter(JObject messageJson, Guid connection)
        {
            switch (GetMessageType(messageJson))
            {
            //私聊事件
            case "private":
                ApiPrivateMsgEventArgs privateMsg = messageJson.ToObject <ApiPrivateMsgEventArgs>();
                if (privateMsg == null)
                {
                    break;
                }
                ConsoleLog.Debug("Sora",
                                 $"Private msg {privateMsg.SenderInfo.Nick}({privateMsg.UserId}) : {privateMsg.RawMessage}");
                //执行回调函数
                if (OnPrivateMessage == null)
                {
                    break;
                }
                await OnPrivateMessage(typeof(EventInterface),
                                       new PrivateMessageEventArgs(connection, "private", privateMsg));

                break;

            //群聊事件
            case "group":
                ApiGroupMsgEventArgs groupMsg = messageJson.ToObject <ApiGroupMsgEventArgs>();
                if (groupMsg == null)
                {
                    break;
                }
                ConsoleLog.Debug("Sora",
                                 $"Group msg[{groupMsg.GroupId}] form {groupMsg.SenderInfo.Nick}[{groupMsg.UserId}] : {groupMsg.RawMessage}");
                //执行回调函数
                if (OnGroupMessage == null)
                {
                    break;
                }
                await OnGroupMessage(typeof(EventInterface),
                                     new GroupMessageEventArgs(connection, "group", groupMsg));

                break;

            default:
                ConsoleLog.Warning("Sora", $"接收到未知事件[{GetMessageType(messageJson)}]");
                break;
            }
        }