From a3903aaa5095bbcacd0f503d9bd6f6c3feb5f362 Mon Sep 17 00:00:00 2001 From: Bruce Marriner Date: Sat, 14 Nov 2015 21:23:01 -0600 Subject: [PATCH] Fixes to GuildRole events --- session.go | 6 +++--- wsapi.go | 40 +++++++++++++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/session.go b/session.go index 157186c..6a4eddd 100644 --- a/session.go +++ b/session.go @@ -42,9 +42,9 @@ type Session struct { OnGuildMemberRemove func(*Session, Member) OnGuildMemberDelete func(*Session, Member) // which is it? OnGuildMemberUpdate func(*Session, Member) - OnGuildRoleCreate func(*Session, Role) - OnGuildRoleUpdate func(*Session, GuildRoleUpdate) - OnGuildRoleDelete func(*Session, Role) + OnGuildRoleCreate func(*Session, GuildRole) + OnGuildRoleUpdate func(*Session, GuildRole) + OnGuildRoleDelete func(*Session, GuildRoleDelete) OnGuildIntegrationsUpdate func(*Session, GuildIntegrationsUpdate) // OnMessageCreate func(Session, Event, Message) diff --git a/wsapi.go b/wsapi.go index ee6ce40..2037dc4 100644 --- a/wsapi.go +++ b/wsapi.go @@ -76,9 +76,14 @@ type GuildIntegrationsUpdate struct { GuildId string `json:"guild_id"` } -type GuildRoleUpdate struct { - Role Role `json:"role"` - GuildId int `json:"guild_id,int"` +type GuildRole struct { + Role Role `json:"role"` + GuildId string `json:"guild_id"` +} + +type GuildRoleDelete struct { + RoleId string `json:"role_id"` + GuildId string `json:"guild_id"` } // Open a websocket connection to Discord @@ -359,8 +364,19 @@ func (s *Session) event(messageType int, message []byte) (err error) { return } case "GUILD_ROLE_CREATE": + if s.OnGuildRoleCreate != nil { + var st GuildRole + if err := json.Unmarshal(e.RawData, &st); err != nil { + fmt.Println(e.Type, err) + printJSON(e.RawData) // TODO: Better error logginEventg + return err + } + s.OnGuildRoleCreate(s, st) + return + } + case "GUILD_ROLE_UPDATE": if s.OnGuildRoleUpdate != nil { - var st GuildRoleUpdate + var st GuildRole if err := json.Unmarshal(e.RawData, &st); err != nil { fmt.Println(e.Type, err) printJSON(e.RawData) // TODO: Better error logginEventg @@ -369,11 +385,17 @@ func (s *Session) event(messageType int, message []byte) (err error) { s.OnGuildRoleUpdate(s, st) return } - /* - case "GUILD_ROLE_DELETE": - if s.OnGuildRoleDelete != nil { - } - */ + case "GUILD_ROLE_DELETE": + if s.OnGuildRoleDelete != nil { + var st GuildRoleDelete + if err := json.Unmarshal(e.RawData, &st); err != nil { + fmt.Println(e.Type, err) + printJSON(e.RawData) // TODO: Better error logginEventg + return err + } + s.OnGuildRoleDelete(s, st) + return + } case "GUILD_INTEGRATIONS_UPDATE": if s.OnGuildIntegrationsUpdate != nil { var st GuildIntegrationsUpdate