diff --git a/wsapi.go b/wsapi.go index dd7837f..c0b6e33 100644 --- a/wsapi.go +++ b/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