add message context support
This commit is contained in:
parent
abb90789aa
commit
e3639eb1f3
20
message.go
20
message.go
@ -4,6 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -41,6 +42,8 @@ type Message struct {
|
|||||||
VoiceLength int
|
VoiceLength int
|
||||||
Bot *Bot
|
Bot *Bot
|
||||||
senderInGroupUserName string
|
senderInGroupUserName string
|
||||||
|
mu sync.RWMutex
|
||||||
|
item map[string]interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取消息的发送者
|
// 获取消息的发送者
|
||||||
@ -156,6 +159,23 @@ func (m *Message) IsSystem() bool {
|
|||||||
return m.MsgType == 10000
|
return m.MsgType == 10000
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 用在多个messageHandler之间传递信息
|
||||||
|
func (m *Message) Set(key string, value interface{}) {
|
||||||
|
m.mu.Lock()
|
||||||
|
defer m.mu.Unlock()
|
||||||
|
if m.item == nil {
|
||||||
|
m.item = make(map[string]interface{})
|
||||||
|
}
|
||||||
|
m.item[key] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Message) Get(key string) (value interface{}, exist bool) {
|
||||||
|
m.mu.RLock()
|
||||||
|
defer m.mu.RUnlock()
|
||||||
|
value, exist = m.item[key]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
//func (m *Message) Agree() error {
|
//func (m *Message) Agree() error {
|
||||||
// if !m.IsFriendAdd() {
|
// if !m.IsFriendAdd() {
|
||||||
// return fmt.Errorf("the excepted message type is 37, but got %d", m.MsgType)
|
// return fmt.Errorf("the excepted message type is 37, but got %d", m.MsgType)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user