From df63c994e488fb2f66be1422164abdc39ed3dee5 Mon Sep 17 00:00:00 2001 From: fumiama Date: Thu, 24 Feb 2022 20:45:15 +0800 Subject: [PATCH] fix: send message to self error --- client/client.go | 6 ++++++ client/private_msg.go | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/client/client.go b/client/client.go index 12a8ce33..a5a3563d 100644 --- a/client/client.go +++ b/client/client.go @@ -609,6 +609,12 @@ func (c *QQClient) GetMemberInfo(groupCode, memberUin int64) (*GroupMemberInfo, } func (c *QQClient) FindFriend(uin int64) *FriendInfo { + if uin == c.Uin { + return &FriendInfo{ + Uin: uin, + Nickname: c.Nickname, + } + } for _, t := range c.FriendList { f := t if f.Uin == uin { diff --git a/client/private_msg.go b/client/private_msg.go index be1d1b66..e467c67d 100644 --- a/client/private_msg.go +++ b/client/private_msg.go @@ -29,7 +29,7 @@ func (c *QQClient) SendPrivateMessage(target int64, m *message.SendingMessage) * if msgLen > message.MaxMessageSize || imgCount > 50 { return nil } - if frag && (msgLen > 300 || imgCount > 2) { + if frag && (msgLen > 300 || imgCount > 2) && target == c.Uin { div := int32(rand.Uint32()) fragmented := m.ToFragmented() for i, elems := range fragmented { @@ -42,8 +42,10 @@ func (c *QQClient) SendPrivateMessage(target int64, m *message.SendingMessage) * } } else { seq = c.nextFriendSeq() - _, pkt := c.buildFriendSendingPacket(target, seq, mr, 1, 0, 0, t, m.Elements) - _ = c.sendPacket(pkt) + if target != c.Uin { + _, pkt := c.buildFriendSendingPacket(target, seq, mr, 1, 0, 0, t, m.Elements) + _ = c.sendPacket(pkt) + } } c.stat.MessageSent.Add(1) ret := &message.PrivateMessage{