refactor: 在 QQMessage 接口中添加 SetData 方法,并优化 ParseStructMessages 函数中的数据设置逻辑
This commit is contained in:
parent
6d30136f48
commit
652647bdc0
@ -11,6 +11,7 @@ import (
|
|||||||
type QQMessage interface {
|
type QQMessage interface {
|
||||||
ToCQString() string
|
ToCQString() string
|
||||||
GetMessageType() string
|
GetMessageType() string
|
||||||
|
SetData(data json.RawMessage) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// RawMessage 用于初始解析 JSON 的通用结构
|
// RawMessage 用于初始解析 JSON 的通用结构
|
||||||
@ -67,14 +68,9 @@ func ParseStructMessages(msgData any) []QQMessage {
|
|||||||
}
|
}
|
||||||
dataByte, _ := json.Marshal(rawMap["data"])
|
dataByte, _ := json.Marshal(rawMap["data"])
|
||||||
// 使用类型断言获取具体类型的Data字段
|
// 使用类型断言获取具体类型的Data字段
|
||||||
if v, ok := msg.(interface{ SetData(json.RawMessage) error }); ok {
|
if err := msg.SetData(dataByte); err != nil {
|
||||||
if err := v.SetData(dataByte); err != nil {
|
// return nil, fmt.Errorf("解析消息数据失败: %v", err)
|
||||||
// return nil, fmt.Errorf("解析消息数据失败: %v", err)
|
log.Println("❎解析消息数据失败:", err)
|
||||||
log.Println("❎解析消息数据失败:", err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
log.Printf("❎消息类型 %s 未实现 SetData 方法\n", rawMap["type"])
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user