mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 20:13:30 +01:00
Fixed switching voice channels
This commit is contained in:
@@ -76,27 +76,22 @@ var InternalClient = (function () {
|
|||||||
var session,
|
var session,
|
||||||
token,
|
token,
|
||||||
server = channel.server,
|
server = channel.server,
|
||||||
endpoint,
|
endpoint;
|
||||||
fired = 0;
|
|
||||||
|
|
||||||
var check = function check(m) {
|
var check = function check(m) {
|
||||||
var data = JSON.parse(m);
|
var data = JSON.parse(m);
|
||||||
|
|
||||||
if (data.t === "VOICE_STATE_UPDATE") {
|
if (data.t === "VOICE_STATE_UPDATE") {
|
||||||
session = data.d.session_id;
|
session = data.d.session_id;
|
||||||
fired++;
|
|
||||||
} else if (data.t === "VOICE_SERVER_UPDATE") {
|
} else if (data.t === "VOICE_SERVER_UPDATE") {
|
||||||
token = data.d.token;
|
token = data.d.token;
|
||||||
endpoint = data.d.endpoint;
|
endpoint = data.d.endpoint;
|
||||||
fired++;
|
|
||||||
var chan = self.voiceConnection = new VoiceConnection(channel, self.client, session, token, server, endpoint);
|
var chan = self.voiceConnection = new VoiceConnection(channel, self.client, session, token, server, endpoint);
|
||||||
|
|
||||||
chan.on("ready", resolve);
|
chan.on("ready", resolve);
|
||||||
chan.on("error", reject);
|
chan.on("error", reject);
|
||||||
}
|
|
||||||
if (fired >= 2) {
|
|
||||||
self.client.emit("debug", "removed temporary voice websocket listeners");
|
self.client.emit("debug", "removed temporary voice websocket listeners");
|
||||||
self.websocket.removeListener('message', check);
|
self.websocket.removeListener("message", check);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -192,7 +192,6 @@ var VoiceConnection = (function (_EventEmitter) {
|
|||||||
var self = this;
|
var self = this;
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
_this.encoder.encodeFile(stream)["catch"](error).then(function (data) {
|
_this.encoder.encodeFile(stream)["catch"](error).then(function (data) {
|
||||||
|
|
||||||
self.streamProc = data.proc;
|
self.streamProc = data.proc;
|
||||||
var intent = self.playRawStream(data.stream);
|
var intent = self.playRawStream(data.stream);
|
||||||
resolve(intent);
|
resolve(intent);
|
||||||
|
|||||||
@@ -70,29 +70,24 @@ class InternalClient {
|
|||||||
self.leaveVoiceChannel().then(next);
|
self.leaveVoiceChannel().then(next);
|
||||||
|
|
||||||
function next(){
|
function next(){
|
||||||
var session, token, server = channel.server, endpoint, fired = 0;
|
var session, token, server = channel.server, endpoint;
|
||||||
|
|
||||||
var check = (m) => {
|
var check = (m) => {
|
||||||
var data = JSON.parse(m);
|
var data = JSON.parse(m);
|
||||||
|
|
||||||
if(data.t === "VOICE_STATE_UPDATE"){
|
if(data.t === "VOICE_STATE_UPDATE"){
|
||||||
session = data.d.session_id;
|
session = data.d.session_id;
|
||||||
fired++;
|
|
||||||
}else if(data.t === "VOICE_SERVER_UPDATE"){
|
}else if(data.t === "VOICE_SERVER_UPDATE"){
|
||||||
token = data.d.token;
|
token = data.d.token;
|
||||||
endpoint = data.d.endpoint;
|
endpoint = data.d.endpoint;
|
||||||
fired++;
|
|
||||||
var chan = self.voiceConnection = new VoiceConnection(channel, self.client, session, token, server, endpoint);
|
var chan = self.voiceConnection = new VoiceConnection(channel, self.client, session, token, server, endpoint);
|
||||||
|
|
||||||
chan.on("ready", resolve);
|
chan.on("ready", resolve);
|
||||||
chan.on("error", reject);
|
chan.on("error", reject);
|
||||||
|
|
||||||
}
|
|
||||||
if(fired >= 2){
|
|
||||||
self.client.emit("debug", "removed temporary voice websocket listeners");
|
self.client.emit("debug", "removed temporary voice websocket listeners");
|
||||||
self.websocket.removeListener('message', check);
|
self.websocket.removeListener("message", check);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.websocket.on("message", check);
|
self.websocket.on("message", check);
|
||||||
|
|||||||
@@ -190,7 +190,6 @@ class VoiceConnection extends EventEmitter {
|
|||||||
.encodeFile(stream)
|
.encodeFile(stream)
|
||||||
.catch(error)
|
.catch(error)
|
||||||
.then(data => {
|
.then(data => {
|
||||||
|
|
||||||
self.streamProc = data.proc;
|
self.streamProc = data.proc;
|
||||||
var intent = self.playRawStream(data.stream);
|
var intent = self.playRawStream(data.stream);
|
||||||
resolve(intent);
|
resolve(intent);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ client.on("message", m => {
|
|||||||
rest.splice(0, 1);
|
rest.splice(0, 1);
|
||||||
rest = rest.join(" ");
|
rest = rest.join(" ");
|
||||||
if(client.internal.voiceConnection){
|
if(client.internal.voiceConnection){
|
||||||
|
client.reply(m, "ok, I'll play that for you");
|
||||||
var connection = client.internal.voiceConnection;
|
var connection = client.internal.voiceConnection;
|
||||||
connection.playFile("C:/users/amish/desktop/"+rest);
|
connection.playFile("C:/users/amish/desktop/"+rest);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user