diff --git a/lib/Voice/VoiceConnection.js b/lib/Voice/VoiceConnection.js index 243c68c5e..0d5168acc 100644 --- a/lib/Voice/VoiceConnection.js +++ b/lib/Voice/VoiceConnection.js @@ -233,15 +233,13 @@ var VoiceConnection = (function (_EventEmitter) { try { if (!self.encoder.opus) { self.playing = false; - self.emit("error", "No Opus!"); - self.client.emit("debug", "Tried to use node-opus, but opus not available - install it!"); + throw new Error("node-opus not found! Perhaps you didn't install it."); return; } if (!self.encoder.sanityCheck()) { self.playing = false; - self.emit("error", "Opus sanity check failed!"); - self.client.emit("debug", "Opus sanity check failed - opus is installed but not correctly! Please reinstall opus and make sure it's installed correctly."); + throw new Error("node-opus sanity check failed! Try re-installing node-opus."); return; } diff --git a/lib/Voice/VoicePacket.js b/lib/Voice/VoicePacket.js index 6ab65a535..df10e3c68 100644 --- a/lib/Voice/VoicePacket.js +++ b/lib/Voice/VoicePacket.js @@ -2,13 +2,14 @@ exports.__esModule = true; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _tweetnacl = require("tweetnacl"); - -var _tweetnacl2 = _interopRequireDefault(_tweetnacl); +var nacl; +try { + nacl = require("tweetnacl"); +} catch (e) { + // no tweetnacl! +} var nonce = new Buffer(24); nonce.fill(0); @@ -16,6 +17,9 @@ nonce.fill(0); var VoicePacket = function VoicePacket(data, sequence, time, ssrc, secret) { _classCallCheck(this, VoicePacket); + if (!nacl) { + throw new Error("tweetnacl not found! Perhaps you didn't install it."); + } var mac = secret ? 16 : 0; var packetLength = data.length + 12 + mac; @@ -33,7 +37,7 @@ var VoicePacket = function VoicePacket(data, sequence, time, ssrc, secret) { if (secret) { // copy first 12 bytes returnBuffer.copy(nonce, 0, 0, 12); - audioBuffer = _tweetnacl2["default"].secretbox(data, nonce, secret); + audioBuffer = nacl.secretbox(data, nonce, secret); } for (var i = 0; i < audioBuffer.length; i++) { diff --git a/src/Voice/VoiceConnection.js b/src/Voice/VoiceConnection.js index 80216e8af..b35711f28 100644 --- a/src/Voice/VoiceConnection.js +++ b/src/Voice/VoiceConnection.js @@ -197,15 +197,13 @@ export default class VoiceConnection extends EventEmitter { try { if (!self.encoder.opus){ self.playing=false; - self.emit("error", "No Opus!"); - self.client.emit("debug", "Tried to use node-opus, but opus not available - install it!"); + throw new Error("node-opus not found! Perhaps you didn't install it."); return; } if (!self.encoder.sanityCheck()) { self.playing = false; - self.emit("error", "Opus sanity check failed!"); - self.client.emit("debug", "Opus sanity check failed - opus is installed but not correctly! Please reinstall opus and make sure it's installed correctly."); + throw new Error("node-opus sanity check failed! Try re-installing node-opus."); return; } diff --git a/src/Voice/VoicePacket.js b/src/Voice/VoicePacket.js index d3bed4b16..c1714c7c8 100644 --- a/src/Voice/VoicePacket.js +++ b/src/Voice/VoicePacket.js @@ -1,12 +1,20 @@ "use strict"; -import nacl from "tweetnacl"; +var nacl; +try { + nacl = require("tweetnacl"); +} catch (e) { + // no tweetnacl! +} const nonce = new Buffer(24); nonce.fill(0); export default class VoicePacket { constructor(data, sequence, time, ssrc, secret){ + if(!nacl) { + throw new Error("tweetnacl not found! Perhaps you didn't install it."); + } var mac = secret ? 16 : 0; var packetLength = data.length + 12 + mac;