From 6991af8500bb337f1bec92f84925b0f1bc5e6654 Mon Sep 17 00:00:00 2001 From: Bruce Marriner Date: Tue, 29 Dec 2015 12:45:30 -0600 Subject: [PATCH] Added support for USER_SETTINGS_UPDATE websocket event, closes #11 --- structs.go | 1 + wsapi.go | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/structs.go b/structs.go index a9896f1..3715c90 100644 --- a/structs.go +++ b/structs.go @@ -53,6 +53,7 @@ type Session struct { OnGuildRoleUpdate func(*Session, GuildRole) OnGuildRoleDelete func(*Session, GuildRoleDelete) OnGuildIntegrationsUpdate func(*Session, GuildIntegrationsUpdate) + OnUserSettingsUpdate func(*Session, map[string]interface{}) // TODO: Find better way? // Exposed but should not be modified by User. SessionID string // from websocket READY packet diff --git a/wsapi.go b/wsapi.go index 7fb5f9b..1fc28e3 100644 --- a/wsapi.go +++ b/wsapi.go @@ -406,6 +406,18 @@ func (s *Session) event(messageType int, message []byte) (err error) { s.OnGuildIntegrationsUpdate(s, st) return } + + case "USER_SETTINGS_UPDATE": + if s.OnUserSettingsUpdate != nil { + var st map[string]interface{} + if err := json.Unmarshal(e.RawData, &st); err != nil { + fmt.Println(e.Type, err) + printJSON(e.RawData) // TODO: Better error logginEventg + return err + } + s.OnUserSettingsUpdate(s, st) + return + } default: fmt.Println("UNKNOWN EVENT: ", e.Type) // TODO learn the log package