Provide previous Member state for GuildMemberUpdate events (#1304)

This commit is contained in:
Yannis Matezki 2022-12-27 19:23:54 +01:00 committed by GitHub
parent 5e7e320c89
commit f184824b8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View file

@ -150,6 +150,7 @@ type GuildMemberAdd struct {
// GuildMemberUpdate is the data for a GuildMemberUpdate event.
type GuildMemberUpdate struct {
*Member
BeforeUpdate *Member `json:"-"`
}
// GuildMemberRemove is the data for a GuildMemberRemove event.

View file

@ -983,6 +983,13 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) {
}
case *GuildMemberUpdate:
if s.TrackMembers {
var old *Member
old, err = s.Member(t.GuildID, t.User.ID)
if err == nil {
oldCopy := *old
t.BeforeUpdate = &oldCopy
}
err = s.MemberAdd(t.Member)
}
case *GuildMemberRemove: