diff --git a/qq_message/cq_message.go b/qq_message/cq_message.go index 00e3b5a..1f14767 100644 --- a/qq_message/cq_message.go +++ b/qq_message/cq_message.go @@ -11,6 +11,7 @@ import ( type QQMessage interface { ToCQString() string GetMessageType() string + SetData(data json.RawMessage) error } // RawMessage 用于初始解析 JSON 的通用结构 @@ -67,14 +68,9 @@ func ParseStructMessages(msgData any) []QQMessage { } dataByte, _ := json.Marshal(rawMap["data"]) // 使用类型断言获取具体类型的Data字段 - if v, ok := msg.(interface{ SetData(json.RawMessage) error }); ok { - if err := v.SetData(dataByte); err != nil { - // return nil, fmt.Errorf("解析消息数据失败: %v", err) - log.Println("❎解析消息数据失败:", err) - continue - } - } else { - log.Printf("❎消息类型 %s 未实现 SetData 方法\n", rawMap["type"]) + if err := msg.SetData(dataByte); err != nil { + // return nil, fmt.Errorf("解析消息数据失败: %v", err) + log.Println("❎解析消息数据失败:", err) continue }