aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/bwmarrin/discordgo/state.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bwmarrin/discordgo/state.go')
-rw-r--r--vendor/github.com/bwmarrin/discordgo/state.go33
1 files changed, 29 insertions, 4 deletions
diff --git a/vendor/github.com/bwmarrin/discordgo/state.go b/vendor/github.com/bwmarrin/discordgo/state.go
index 6404b71..d0c7b42 100644
--- a/vendor/github.com/bwmarrin/discordgo/state.go
+++ b/vendor/github.com/bwmarrin/discordgo/state.go
@@ -207,6 +207,15 @@ func (s *State) presenceAdd(guildID string, presence *Presence) error {
if presence.Status != "" {
guild.Presences[i].Status = presence.Status
}
+ if presence.ClientStatus.Desktop != "" {
+ guild.Presences[i].ClientStatus.Desktop = presence.ClientStatus.Desktop
+ }
+ if presence.ClientStatus.Mobile != "" {
+ guild.Presences[i].ClientStatus.Mobile = presence.ClientStatus.Mobile
+ }
+ if presence.ClientStatus.Web != "" {
+ guild.Presences[i].ClientStatus.Web = presence.ClientStatus.Web
+ }
//Update the optionally sent user information
//ID Is a mandatory field so you should not need to check if it is empty
@@ -909,9 +918,11 @@ func (s *State) onReady(se *Session, r *Ready) (err error) {
// if state is disabled, store the bare essentials.
if !se.StateEnabled {
ready := Ready{
- Version: r.Version,
- SessionID: r.SessionID,
- User: r.User,
+ Version: r.Version,
+ SessionID: r.SessionID,
+ User: r.User,
+ Shard: r.Shard,
+ Application: r.Application,
}
s.Ready = ready
@@ -981,6 +992,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:
@@ -1023,7 +1041,14 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) {
}
case *GuildEmojisUpdate:
if s.TrackEmojis {
- err = s.EmojisAdd(t.GuildID, t.Emojis)
+ var guild *Guild
+ guild, err = s.Guild(t.GuildID)
+ if err != nil {
+ return err
+ }
+ s.Lock()
+ defer s.Unlock()
+ guild.Emojis = t.Emojis
}
case *ChannelCreate:
if s.TrackChannels {