Merge message contents in state. Fixes #192
This commit is contained in:
parent
aede29500f
commit
0c7562440e
1 changed files with 19 additions and 4 deletions
23
state.go
23
state.go
|
@ -324,7 +324,7 @@ func (s *State) Channel(channelID string) (*Channel, error) {
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return nil, ErrNilState
|
return nil, ErrNilState
|
||||||
}
|
}
|
||||||
|
|
||||||
s.RLock()
|
s.RLock()
|
||||||
defer s.RUnlock()
|
defer s.RUnlock()
|
||||||
|
|
||||||
|
@ -413,10 +413,25 @@ func (s *State) MessageAdd(message *Message) error {
|
||||||
s.Lock()
|
s.Lock()
|
||||||
defer s.Unlock()
|
defer s.Unlock()
|
||||||
|
|
||||||
// If the message exists, replace it.
|
// If the message exists, merge in the new message contents.
|
||||||
for i, m := range c.Messages {
|
for _, m := range c.Messages {
|
||||||
if m.ID == message.ID {
|
if m.ID == message.ID {
|
||||||
c.Messages[i] = message
|
if message.Content != "" {
|
||||||
|
m.Content = message.Content
|
||||||
|
}
|
||||||
|
if message.EditedTimestamp != "" {
|
||||||
|
m.EditedTimestamp = message.EditedTimestamp
|
||||||
|
}
|
||||||
|
if message.Mentions != nil {
|
||||||
|
m.Mentions = message.Mentions
|
||||||
|
}
|
||||||
|
if message.Embeds != nil {
|
||||||
|
m.Embeds = message.Embeds
|
||||||
|
}
|
||||||
|
if message.Attachments != nil {
|
||||||
|
m.Attachments = message.Attachments
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue