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. // GuildMemberUpdate is the data for a GuildMemberUpdate event.
type GuildMemberUpdate struct { type GuildMemberUpdate struct {
*Member *Member
BeforeUpdate *Member `json:"-"`
} }
// GuildMemberRemove is the data for a GuildMemberRemove event. // 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: case *GuildMemberUpdate:
if s.TrackMembers { 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) err = s.MemberAdd(t.Member)
} }
case *GuildMemberRemove: case *GuildMemberRemove: