From 5706ee111fbf8da3eaa277135082f53fdf534915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=AE=87=E5=AE=87?= <3061196825@qq.com> Date: Sat, 28 Mar 2026 18:32:55 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E4=BC=9A=E8=AF=9D=E6=B6=88=E6=81=AF=E8=A2=AB=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=88=B0=E7=BE=A4=E8=81=8A=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- context.go | 58 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/context.go b/context.go index 8b91ee5f..095586b9 100644 --- a/context.go +++ b/context.go @@ -88,27 +88,65 @@ func (ctx *Ctx) CheckSession() Rule { // Send 快捷发送消息/合并转发 func (ctx *Ctx) Send(msg interface{}) message.ID { event := ctx.Event + m, ok := msg.(message.Message) if !ok { - var p *message.Message - p, ok = msg.(*message.Message) - if ok { + if p, ok2 := msg.(*message.Message); ok2 { m = *p + ok = true } } + + // 合并转发 if ok && len(m) > 0 && m[0].Type == "node" && event.DetailType != "guild" { - if event.GroupID != 0 { - return message.NewMessageIDFromInteger(ctx.SendGroupForwardMessage(event.GroupID, m).Get("message_id").Int()) + + switch event.MessageType { + case "group": + return message.NewMessageIDFromInteger( + ctx.SendGroupForwardMessage(event.GroupID, m).Get("message_id").Int(), + ) + + case "private": + return message.NewMessageIDFromInteger( + ctx.SendPrivateForwardMessage(event.UserID, m).Get("message_id").Int(), + ) + default: + if event.GroupID != 0 { + return message.NewMessageIDFromInteger( + ctx.SendGroupForwardMessage(event.GroupID, m).Get("message_id").Int(), + ) + } + return message.NewMessageIDFromInteger( + ctx.SendPrivateForwardMessage(event.UserID, m).Get("message_id").Int(), + ) } - return message.NewMessageIDFromInteger(ctx.SendPrivateForwardMessage(event.UserID, m).Get("message_id").Int()) } + if event.DetailType == "guild" { - return message.NewMessageIDFromString(ctx.SendGuildChannelMessage(event.GuildID, event.ChannelID, msg)) + return message.NewMessageIDFromString( + ctx.SendGuildChannelMessage(event.GuildID, event.ChannelID, msg), + ) } - if event.GroupID != 0 { - return message.NewMessageIDFromInteger(ctx.SendGroupMessage(event.GroupID, msg)) + + switch event.MessageType { + case "group": + return message.NewMessageIDFromInteger( + ctx.SendGroupMessage(event.GroupID, msg), + ) + case "private": + return message.NewMessageIDFromInteger( + ctx.SendPrivateMessage(event.UserID, msg), + ) + default: + if event.GroupID != 0 { + return message.NewMessageIDFromInteger( + ctx.SendGroupMessage(event.GroupID, msg), + ) + } + return message.NewMessageIDFromInteger( + ctx.SendPrivateMessage(event.UserID, msg), + ) } - return message.NewMessageIDFromInteger(ctx.SendPrivateMessage(event.UserID, msg)) } // SendChain 快捷发送消息/合并转发-消息链 From 034abc6519fa054463ed100294a778c02f8db61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=AE=87=E5=AE=87?= <3061196825@qq.com> Date: Sun, 29 Mar 2026 11:59:40 +0800 Subject: [PATCH 2/4] fix --- context.go | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/context.go b/context.go index 095586b9..db5a322b 100644 --- a/context.go +++ b/context.go @@ -110,16 +110,15 @@ func (ctx *Ctx) Send(msg interface{}) message.ID { return message.NewMessageIDFromInteger( ctx.SendPrivateForwardMessage(event.UserID, m).Get("message_id").Int(), ) - default: - if event.GroupID != 0 { - return message.NewMessageIDFromInteger( - ctx.SendGroupForwardMessage(event.GroupID, m).Get("message_id").Int(), - ) - } + } + if event.GroupID != 0 { return message.NewMessageIDFromInteger( - ctx.SendPrivateForwardMessage(event.UserID, m).Get("message_id").Int(), + ctx.SendGroupForwardMessage(event.GroupID, m).Get("message_id").Int(), ) } + return message.NewMessageIDFromInteger( + ctx.SendPrivateForwardMessage(event.UserID, m).Get("message_id").Int(), + ) } if event.DetailType == "guild" { @@ -137,16 +136,15 @@ func (ctx *Ctx) Send(msg interface{}) message.ID { return message.NewMessageIDFromInteger( ctx.SendPrivateMessage(event.UserID, msg), ) - default: - if event.GroupID != 0 { - return message.NewMessageIDFromInteger( - ctx.SendGroupMessage(event.GroupID, msg), - ) - } + } + if event.GroupID != 0 { return message.NewMessageIDFromInteger( - ctx.SendPrivateMessage(event.UserID, msg), + ctx.SendGroupMessage(event.GroupID, msg), ) } + return message.NewMessageIDFromInteger( + ctx.SendPrivateMessage(event.UserID, msg), + ) } // SendChain 快捷发送消息/合并转发-消息链 From a38456753c6d613dc11f45cfde412a6dd85df878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=7E?= <158024940+xyy0411@users.noreply.github.com> Date: Mon, 30 Mar 2026 20:45:09 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- context.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/context.go b/context.go index db5a322b..f23820ba 100644 --- a/context.go +++ b/context.go @@ -90,12 +90,13 @@ func (ctx *Ctx) Send(msg interface{}) message.ID { event := ctx.Event m, ok := msg.(message.Message) - if !ok { - if p, ok2 := msg.(*message.Message); ok2 { - m = *p - ok = true - } - } + if !ok { + var p *message.Message + p, ok = msg.(*message.Message) + if ok { + m = *p + } + } // 合并转发 if ok && len(m) > 0 && m[0].Type == "node" && event.DetailType != "guild" { From 4e145449d068cb9592cd5da203f1676a377acd65 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 1 Apr 2026 16:57:16 +0800 Subject: [PATCH 4/4] go fmt --- context.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/context.go b/context.go index f23820ba..c7e77f48 100644 --- a/context.go +++ b/context.go @@ -90,13 +90,13 @@ func (ctx *Ctx) Send(msg interface{}) message.ID { event := ctx.Event m, ok := msg.(message.Message) - if !ok { - var p *message.Message - p, ok = msg.(*message.Message) - if ok { - m = *p - } - } + if !ok { + var p *message.Message + p, ok = msg.(*message.Message) + if ok { + m = *p + } + } // 合并转发 if ok && len(m) > 0 && m[0].Type == "node" && event.DetailType != "guild" {