diff --git a/events.go b/events.go index c416813..accad7e 100644 --- a/events.go +++ b/events.go @@ -169,6 +169,7 @@ type MessageUpdate struct { // MessageDelete is the data for a MessageDelete event. type MessageDelete struct { *Message + BeforeDelete *Message `json:"-"` } // MessageReactionAdd is the data for a MessageReactionAdd event. diff --git a/state.go b/state.go index 7babc11..55619ef 100644 --- a/state.go +++ b/state.go @@ -893,6 +893,13 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) { } case *MessageDelete: if s.MaxMessageCount != 0 { + var old *Message + old, err = s.Message(t.ChannelID, t.ID) + if err == nil { + oldCopy := *old + t.BeforeDelete = &oldCopy + } + err = s.MessageRemove(t.Message) } case *MessageDeleteBulk: