Просмотр исходного кода

Don't unmarshall if it won't be used.

Chris Rhodes 9 лет назад
Родитель
Сommit
c842676deb
1 измененных файлов с 30 добавлено и 0 удалено
  1. 30 0
      wsapi.go

+ 30 - 0
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 {