refactor: 重构消息类型的初始化逻辑,新增各消息类型的构造函数以提高代码可读性和可维护性
This commit is contained in:
parent
10eba59c63
commit
144034939c
@ -18,10 +18,14 @@ type AtMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeAt, func() CQMessage {
|
||||
return &AtMessage{Type: TypeAt}
|
||||
return NewAtMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewAtMessage() *AtMessage {
|
||||
return &AtMessage{Type: TypeAt}
|
||||
}
|
||||
|
||||
func (msg *AtMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -19,10 +19,14 @@ type ContactMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeContact, func() CQMessage {
|
||||
return &ContactMessage{Type: TypeContact}
|
||||
return NewContactMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewContactMessage() *ContactMessage {
|
||||
return &ContactMessage{Type: TypeContact}
|
||||
}
|
||||
|
||||
func (msg *ContactMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -18,10 +18,14 @@ type FaceMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeFace, func() CQMessage {
|
||||
return &FaceMessage{Type: TypeFace}
|
||||
return NewFaceMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewFaceMessage() *FaceMessage {
|
||||
return &FaceMessage{Type: TypeFace}
|
||||
}
|
||||
|
||||
func (msg *FaceMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -24,10 +24,14 @@ type FileMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeFile, func() CQMessage {
|
||||
return &FileMessage{Type: TypeFile}
|
||||
return NewFileMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewFileMessage() *FileMessage {
|
||||
return &FileMessage{Type: TypeFile}
|
||||
}
|
||||
|
||||
func (msg *FileMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -32,18 +32,26 @@ type NodeMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeForward, func() CQMessage {
|
||||
return &ForwardMessage{Type: TypeForward}
|
||||
return NewForwardMessage()
|
||||
})
|
||||
RegisterMessageType(TypeNode, func() CQMessage {
|
||||
return &NodeMessage{Type: TypeNode}
|
||||
return NewNodeMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewForwardMessage() *ForwardMessage {
|
||||
return &ForwardMessage{Type: TypeForward}
|
||||
}
|
||||
|
||||
// ForwardMessage methods
|
||||
func (msg *ForwardMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
||||
func NewNodeMessage() *NodeMessage {
|
||||
return &NodeMessage{Type: TypeNode}
|
||||
}
|
||||
|
||||
func (msg *ForwardMessage) ToCQString() string {
|
||||
return fmt.Sprintf("[CQ:forward,id=%s]", msg.Data.ID)
|
||||
}
|
||||
|
@ -29,13 +29,17 @@ type ImageMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeImage, func() CQMessage {
|
||||
return &ImageMessage{
|
||||
Type: TypeImage,
|
||||
Data: ImageMessageData{},
|
||||
}
|
||||
return NewImageMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewImageMessage() *ImageMessage {
|
||||
return &ImageMessage{
|
||||
Type: TypeImage,
|
||||
Data: ImageMessageData{},
|
||||
}
|
||||
}
|
||||
|
||||
func (msg *ImageMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -18,10 +18,14 @@ type JsonMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeJson, func() CQMessage {
|
||||
return &JsonMessage{Type: TypeJson}
|
||||
return NewJsonMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewJsonMessage() *JsonMessage {
|
||||
return &JsonMessage{Type: TypeJson}
|
||||
}
|
||||
|
||||
func (msg *JsonMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -18,10 +18,14 @@ type LightappMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeLightapp, func() CQMessage {
|
||||
return &LightappMessage{Type: TypeLightapp}
|
||||
return NewLightappMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewLightappMessage() *LightappMessage {
|
||||
return &LightappMessage{Type: TypeLightapp}
|
||||
}
|
||||
|
||||
func (msg *LightappMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -21,10 +21,14 @@ type LocationMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeLocation, func() CQMessage {
|
||||
return &LocationMessage{Type: TypeLocation}
|
||||
return NewLocationMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewLocationMessage() *LocationMessage {
|
||||
return &LocationMessage{Type: TypeLocation}
|
||||
}
|
||||
|
||||
func (msg *LocationMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -21,10 +21,14 @@ type MfaceMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeMface, func() CQMessage {
|
||||
return &MfaceMessage{Type: TypeMface}
|
||||
return NewMfaceMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewMfaceMessage() *MfaceMessage {
|
||||
return &MfaceMessage{Type: TypeMface}
|
||||
}
|
||||
|
||||
func (msg *MfaceMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -24,10 +24,14 @@ type MusicMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeMusic, func() CQMessage {
|
||||
return &MusicMessage{Type: TypeMusic}
|
||||
return NewMusicMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewMusicMessage() *MusicMessage {
|
||||
return &MusicMessage{Type: TypeMusic}
|
||||
}
|
||||
|
||||
func (msg *MusicMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -24,10 +24,14 @@ type RecordMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeRecord, func() CQMessage {
|
||||
return &RecordMessage{Type: TypeRecord}
|
||||
return NewRecordMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewRecordMessage() *RecordMessage {
|
||||
return &RecordMessage{Type: TypeRecord}
|
||||
}
|
||||
|
||||
func (msg *RecordMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -18,10 +18,14 @@ type ReplyMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeReply, func() CQMessage {
|
||||
return &ReplyMessage{Type: TypeReply}
|
||||
return NewReplyMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewReplyMessage() *ReplyMessage {
|
||||
return &ReplyMessage{Type: TypeReply}
|
||||
}
|
||||
|
||||
func (msg *ReplyMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -21,10 +21,14 @@ type ShareMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeShare, func() CQMessage {
|
||||
return &ShareMessage{Type: TypeShare}
|
||||
return NewShareMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewShareMessage() *ShareMessage {
|
||||
return &ShareMessage{Type: TypeShare}
|
||||
}
|
||||
|
||||
func (msg *ShareMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -16,10 +16,14 @@ type TextMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeText, func() CQMessage {
|
||||
return &TextMessage{Type: TypeText}
|
||||
return NewTextMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewTextMessage() *TextMessage {
|
||||
return &TextMessage{Type: TypeText}
|
||||
}
|
||||
|
||||
func (msg *TextMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
@ -25,10 +25,14 @@ type VideoMessageData struct {
|
||||
|
||||
func init() {
|
||||
RegisterMessageType(TypeVideo, func() CQMessage {
|
||||
return &VideoMessage{Type: TypeVideo}
|
||||
return NewVideoMessage()
|
||||
})
|
||||
}
|
||||
|
||||
func NewVideoMessage() *VideoMessage {
|
||||
return &VideoMessage{Type: TypeVideo}
|
||||
}
|
||||
|
||||
func (msg *VideoMessage) SetData(data json.RawMessage) error {
|
||||
return json.Unmarshal(data, &msg.Data)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user