From c842676deb9b1d2cae60ae9133463520501ca635 Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Fri, 8 Jan 2016 10:24:29 -0800 Subject: [PATCH] Don't unmarshall if it won't be used. --- wsapi.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/wsapi.go b/wsapi.go index b5b76af..611aaf2 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 { + return + } 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 { + return + } 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 { + return + } 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 { + return + } 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 { + return + } 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 { + return + } 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 { + return + } var st Member if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { @@ -329,6 +350,9 @@ func (s *Session) event(messageType int, message []byte) (err error) { return case "GUILD_MEMBER_REMOVE": var st Member + if !s.StateEnabled && s.OnGuildMemberRemove == nil { + return + } if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled { s.State.MemberRemove(&st) @@ -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 { + return + } 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 { + return + } var st GuildEmojisUpdate if err = unmarshalEvent(e, &st); err == nil { if s.StateEnabled {