/// <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; }
/// <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; }
/// <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; } }