Jelajahi Sumber

Merge remote-tracking branch 'bwmarrin/develop' into voice

Chris Rhodes 9 tahun lalu
induk
melakukan
b2c76de22e
1 mengubah file dengan 6 tambahan dan 6 penghapusan
  1. 6 6
      wsapi.go

+ 6 - 6
wsapi.go

@@ -316,6 +316,9 @@ func (s *Session) event(messageType int, message []byte) {
 			return
 		}
 	case "VOICE_SERVER_UPDATE":
+		if s.Voice == nil && s.OnVoiceServerUpdate == nil {
+			break
+		}
 		var st *VoiceServerUpdate
 		if err = unmarshalEvent(e, &st); err == nil {
 			s.onVoiceServerUpdate(st)
@@ -327,6 +330,9 @@ func (s *Session) event(messageType int, message []byte) {
 			return
 		}
 	case "VOICE_STATE_UPDATE":
+		if s.Voice == nil && s.OnVoiceStateUpdate == nil {
+			break
+		}
 		var st *VoiceState
 		if err = unmarshalEvent(e, &st); err == nil {
 			s.onVoiceStateUpdate(st)
@@ -757,12 +763,6 @@ func (s *Session) ChannelVoiceJoin(gID, cID string, mute, deaf bool) (err error)
 // for the session user.
 func (s *Session) onVoiceStateUpdate(st *VoiceState) {
 
-	// If s.Voice is nil, we must not have even requested to join
-	// a voice channel yet, so this shouldn't be processed.
-	if s.Voice == nil {
-		return
-	}
-
 	// Need to have this happen at login and store it in the Session
 	// TODO : This should be done upon connecting to Discord, or
 	// be moved to a small helper function