Allow calling ChannelVoiceJoin even after connected to voice, closes

This commit is contained in:
Bruce Marriner 2016-02-18 02:24:29 -06:00
parent 22bb771120
commit 60149f70bb

View file

@ -378,18 +378,12 @@ type voiceChannelJoinOp struct {
// deaf : If true, you will be set to deafened upon joining.
func (s *Session) ChannelVoiceJoin(gID, cID string, mute, deaf bool) (err error) {
if s.wsConn == nil {
return fmt.Errorf("no websocket connection exists")
}
// Create new voice{} struct if one does not exist.
// If you create this prior to calling this func then you can manually
// set some variables if needed, such as to enable debugging.
if s.Voice == nil {
s.Voice = &Voice{}
}
// TODO : Determine how to properly change channels and change guild
// and channel when you are already connected to an existing channel.
// Send the request to Discord that we want to join the voice channel
data := voiceChannelJoinOp{4, voiceChannelJoinData{gID, cID, mute, deaf}}
@ -434,6 +428,10 @@ func (s *Session) onVoiceStateUpdate(se *Session, st *VoiceStateUpdate) {
// onVoiceServerUpdate handles the Voice Server Update data websocket event.
// This event tells us the information needed to open a voice websocket
// connection and should happen after the VOICE_STATE event.
//
// This is also fired if the Guild's voice region changes while connected
// to a voice channel. In that case, need to re-establish connection to
// the new region endpoint.
func (s *Session) onVoiceServerUpdate(se *Session, st *VoiceServerUpdate) {
// Store values for later use