refactor: 重构消息类型的初始化逻辑,新增各消息类型的构造函数以提高代码可读性和可维护性
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user