Fixed switching voice channels

This commit is contained in:
hydrabolt
2015-11-08 10:45:49 +00:00
parent 04c3dbedac
commit c5fe16af5b
5 changed files with 7 additions and 18 deletions

View File

@@ -76,27 +76,22 @@ var InternalClient = (function () {
var session,
token,
server = channel.server,
endpoint,
fired = 0;
endpoint;
var check = function check(m) {
var data = JSON.parse(m);
if (data.t === "VOICE_STATE_UPDATE") {
session = data.d.session_id;
fired++;
} else if (data.t === "VOICE_SERVER_UPDATE") {
token = data.d.token;
endpoint = data.d.endpoint;
fired++;
var chan = self.voiceConnection = new VoiceConnection(channel, self.client, session, token, server, endpoint);
chan.on("ready", resolve);
chan.on("error", reject);
}
if (fired >= 2) {
self.client.emit("debug", "removed temporary voice websocket listeners");
self.websocket.removeListener('message', check);
self.websocket.removeListener("message", check);
}
};

View File

@@ -192,7 +192,6 @@ var VoiceConnection = (function (_EventEmitter) {
var self = this;
return new Promise(function (resolve, reject) {
_this.encoder.encodeFile(stream)["catch"](error).then(function (data) {
self.streamProc = data.proc;
var intent = self.playRawStream(data.stream);
resolve(intent);

View File

@@ -70,29 +70,24 @@ class InternalClient {
self.leaveVoiceChannel().then(next);
function next(){
var session, token, server = channel.server, endpoint, fired = 0;
var session, token, server = channel.server, endpoint;
var check = (m) => {
var data = JSON.parse(m);
if(data.t === "VOICE_STATE_UPDATE"){
session = data.d.session_id;
fired++;
}else if(data.t === "VOICE_SERVER_UPDATE"){
token = data.d.token;
endpoint = data.d.endpoint;
fired++;
var chan = self.voiceConnection = new VoiceConnection(channel, self.client, session, token, server, endpoint);
chan.on("ready", resolve);
chan.on("error", reject);
}
if(fired >= 2){
self.client.emit("debug", "removed temporary voice websocket listeners");
self.websocket.removeListener('message', check);
self.websocket.removeListener("message", check);
}
};
self.websocket.on("message", check);

View File

@@ -190,7 +190,6 @@ class VoiceConnection extends EventEmitter {
.encodeFile(stream)
.catch(error)
.then(data => {
self.streamProc = data.proc;
var intent = self.playRawStream(data.stream);
resolve(intent);

View File

@@ -24,6 +24,7 @@ client.on("message", m => {
rest.splice(0, 1);
rest = rest.join(" ");
if(client.internal.voiceConnection){
client.reply(m, "ok, I'll play that for you");
var connection = client.internal.voiceConnection;
connection.playFile("C:/users/amish/desktop/"+rest);
}