Ejemplo n.º 1
0
        private void Meow_OnFriendMsgs(object sender, ObjectEvent.ObjectEventArgs e)
        {
            #region 私聊报头 -- Private Info Head --
            var prop = new QQRecieveMessage(
                MessageIOType.Friend,
                new IOBody(
                    e.Data["FromUin"].ToObject <long>(),
                    e.Data["ToUin"].ToObject <long>(),
                    null,
                    null,
                    null
                    ),
                new MsgProperty(
                    null,
                    e.Data["MsgSeq"].ToObject <long?>(),
                    null,
                    null,
                    e.Data["RedBaginfo"].ToString(),
                    null
                    ),
                e.CurrentQQ
                );
            #endregion
            //文本
            var content = e.Data["Content"].ToString();
            //触发对应操作信息
            switch (e.Data["MsgType"].ToString())
            {
            case "TextMsg":
            {
                var msg = new TextMsg(content);
                _FriendTextMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"好友文本信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}] \n" +
                               $"内容:{msg.Content}", LogType.ClientMessage, ConsoleColor.Magenta);
            }
            break;

            case "PicMsg":
            {
                var msg = new PicMsg(content);
                _FriendPicMsgRecieve.Invoke(prop, msg);
                if (msg._isSnapPic)
                {
                    ServerUtil.Log($"好友闪照信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}]", LogType.ClientMessage, ConsoleColor.Yellow);
                }
                else
                {
                    ServerUtil.Log($"好友图片信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}] \n" +
                                   $"内容:{msg.Content} | 图片共 {msg.PicList.Length} 张", LogType.ClientMessage, ConsoleColor.Yellow);
                }
            }
            break;

            case "VoiceMsg":
            {
                var msg = new VoiceMsg(content);
                _FriendVocMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"好友语音信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}]"
                               , LogType.ClientMessage, ConsoleColor.DarkMagenta);
            }
            break;

            case "VideoMsg":
            {
                var msg = new VideoMsg(content);
                _FriendVidMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"好友视频信息 [{prop.IOBody.MsgFromQQ}->{prop.IOBody.MsgRecvQQ}]"
                               , LogType.ClientMessage, ConsoleColor.Green);
            }
            break;
            }
            ;
        }
Ejemplo n.º 2
0
        private void Meow_OnGroupMsgs(object sender, ObjectEvent.ObjectEventArgs e)
        {
            #region 群聊报头 -- Group Info Head --
            var prop = new QQRecieveMessage(
                MessageIOType.Friend,
                new IOBody(
                    e.Data["FromUserId"].ToObject <long>(),
                    0,
                    e.Data["FromNickName"].ToString(),
                    e.Data["FromGroupId"].ToObject <long>(),
                    e.Data["FromGroupName"].ToString()
                    ),
                new MsgProperty(
                    null,
                    e.Data["MsgSeq"].ToObject <long?>(),
                    e.Data["MsgRandom"].ToObject <long?>(),
                    null,
                    e.Data["RedBaginfo"].ToString(),
                    e.Data["MsgTime"].ToObject <long?>()
                    ),
                e.CurrentQQ
                );
            #endregion
            //文本
            var content = e.Data["Content"].ToString();
            //触发对应操作信息
            switch (e.Data["MsgType"].ToString())
            {
            case "TextMsg":
            {
                var msg = new TextMsg(content);
                _GroupTextMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"群文本信息 [{prop.IOBody.MsgFromQQ}] " +
                               $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}] \n" +
                               $"内容:{msg.Content}", LogType.ClientMessage, ConsoleColor.Magenta);
            }
            break;

            case "AtMsg":
            {
                var msg = new AtTextMsg(content);
                _GroupAtTextMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"群At文本信息 [{prop.IOBody.MsgFromQQ}] " +
                               $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}] \n" +
                               $"内容:{msg.Content}", LogType.ClientMessage, ConsoleColor.Magenta, ConsoleColor.Cyan);
            }
            break;

            case "PicMsg":
            {
                var msg = new PicMsg(content);
                var d   = "图片";
                if (msg.AtedQQ != null)
                {
                    _GroupAtPicMsgRecieve.Invoke(prop, msg);
                    d = "At图片";
                }
                if (msg._isSnapPic)
                {
                    d = "闪照";
                }
                _GroupPicMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"群{d} [{prop.IOBody.MsgFromQQ}] " +
                               $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}] \n" +
                               $"内容:{msg.Content} | 图片共 {msg.PicList.Length} 张", LogType.ClientMessage, ConsoleColor.Yellow);
            }
            break;

            case "VoiceMsg":
            {
                var msg = new VoiceMsg(content);
                _GroupVocMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"群语音信息 [{prop.IOBody.MsgFromQQ}] " +
                               $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}]"
                               , LogType.ClientMessage, ConsoleColor.DarkMagenta);
            }
            break;

            case "VideoMsg":
            {
                var msg = new VideoMsg(content);
                _GroupVidMsgRecieve.Invoke(prop, msg);
                ServerUtil.Log($"群视频信息 [{prop.IOBody.MsgFromQQ}] " +
                               $"在群聊 [{prop.IOBody.FromGroupId} :: {prop.IOBody.FromGroupName}]"
                               , LogType.ClientMessage, ConsoleColor.Green);
            }
            break;
            }
            ;
        }