diff --git a/structs.go b/structs.go index 70c4844..2b57062 100644 --- a/structs.go +++ b/structs.go @@ -170,13 +170,14 @@ type Guild struct { // A Role stores information about Discord guild member roles. type Role struct { - ID string `json:"id"` - Name string `json:"name"` - Managed bool `json:"managed"` - Hoist bool `json:"hoist"` - Color int `json:"color"` - Position int `json:"position"` - Permissions int `json:"permissions"` + ID string `json:"id"` + Name string `json:"name"` + Managed bool `json:"managed"` + Hoist bool `json:"hoist"` + // This is coming back as an int or string, for now do not parse. + Color int `json:"-"` + Position int `json:"position"` + Permissions int `json:"permissions"` } // A VoiceState stores the voice states of Guilds @@ -274,7 +275,7 @@ type RateLimit struct { // A ReadState stores data on the read state of channels. type ReadState struct { - MentionCount int + MentionCount int `json:"mention_count"` LastMessageID string `json:"last_message_id"` ID string `json:"id"` } diff --git a/wsapi.go b/wsapi.go index 2337916..7e4ad19 100644 --- a/wsapi.go +++ b/wsapi.go @@ -284,8 +284,11 @@ func (s *Session) event(messageType int, message []byte) { // Attempt to unmarshal our event. // If there is an error we should handle the event itself. if err = unmarshal(e.RawData, i); err != nil { - fmt.Println("Unable to unmarshal event data.") - i = e + fmt.Println("Unable to unmarshal event data.", err) + // Ready events must fire, even if they are empty. + if e.Type != "READY" { + i = e + } } } else { fmt.Println("Unknown event.")