diff --git a/wsapi.go b/wsapi.go index 1c50981..9fd0bed 100644 --- a/wsapi.go +++ b/wsapi.go @@ -251,6 +251,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { return } case "CHANNEL_CREATE": + if !s.StateEnabled && s.OnChannelCreate == nil { + break + } var st *Channel if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -262,6 +265,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "CHANNEL_UPDATE": + if !s.StateEnabled && s.OnChannelUpdate == nil { + break + } var st *Channel if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -273,6 +279,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "CHANNEL_DELETE": + if !s.StateEnabled && s.OnChannelDelete == nil { + break + } var st *Channel if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -284,6 +293,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "GUILD_CREATE": + if !s.StateEnabled && s.OnGuildCreate == nil { + break + } var st *Guild if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -295,6 +307,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "GUILD_UPDATE": + if !s.StateEnabled && s.OnGuildUpdate == nil { + break + } var st *Guild if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -306,6 +321,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "GUILD_DELETE": + if !s.StateEnabled && s.OnGuildDelete == nil { + break + } var st *Guild if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -317,6 +335,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "GUILD_MEMBER_ADD": + if !s.StateEnabled && s.OnGuildMemberAdd == nil { + break + } var st *Member if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -328,6 +349,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "GUILD_MEMBER_REMOVE": + if !s.StateEnabled && s.OnGuildMemberRemove == nil { + break + } var st *Member if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -339,6 +363,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { } return case "GUILD_MEMBER_UPDATE": + if !s.StateEnabled && s.OnGuildMemberUpdate == nil { + break + } var st *Member if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -398,6 +425,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { return } case "GUILD_EMOJIS_UPDATE": + if !s.StateEnabled && s.OnGuildEmojisUpdate == nil { + break + } var st *GuildEmojisUpdate if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled {