1
0
mirror of https://github.com/fumiama/NanoBot.git synced 2026-06-11 13:40:26 +08:00

QQサポートを追加

This commit is contained in:
源文雨
2023-11-16 01:31:07 +09:00
parent 57b0a7c52c
commit af82abd3b0
14 changed files with 476 additions and 39 deletions

View File

@@ -47,10 +47,14 @@ func (bot *Bot) processEvent(payload *WebsocketPayload) {
caller: bot,
}
switch tp {
case "DirectMessageCreate":
case "C2cMessageCreate", "GroupAtMessageCreate":
ctx.IsQQ = true
}
switch tp {
case "DirectMessageCreate", "C2cMessageCreate":
ctx.IsToMe = true
fallthrough
case "MessageCreate", "AtMessageCreate":
case "MessageCreate", "AtMessageCreate", "GroupAtMessageCreate":
tp = "Message"
case "DirectMessageDelete":
ctx.IsToMe = true
@@ -78,9 +82,27 @@ func (bot *Bot) processEvent(payload *WebsocketPayload) {
ctx.value = x
switch tp {
case "Message":
ctx.Message = (*Message)(x.UnsafePointer())
if ctx.Message.MentionEveryone {
ctx.IsToMe = true
if ctx.IsQQ {
msgv2 := (*MessageV2)(x.UnsafePointer())
ctx.Message = &Message{
ID: msgv2.ID,
Content: msgv2.Content,
ChannelID: msgv2.GroupOpenID,
GuildID: payload.T,
Timestamp: msgv2.Timestamp,
Attachments: msgv2.Attachments,
Author: &User{},
}
if msgv2.Author.UserOpenID != "" {
ctx.Message.Author.ID = msgv2.Author.UserOpenID
} else if msgv2.Author.MemberOpenID != "" {
ctx.Message.Author.ID = msgv2.Author.MemberOpenID
}
} else {
ctx.Message = (*Message)(x.UnsafePointer())
if ctx.Message.MentionEveryone {
ctx.IsToMe = true
}
}
log.Infoln(getLogHeader(), "=>", ctx.Message)
case "MessageDelete":