diff --git a/bot.js b/bot.js index 0a1464d..09cac10 100644 --- a/bot.js +++ b/bot.js @@ -16,6 +16,7 @@ let presences = [], function main() { utils.Cleanup(() => { + guilding.destroyAll(); client.destroy(); }); cmd.setLogger(logger); diff --git a/lib/guilding.js b/lib/guilding.js index 49ae75e..26f9111 100644 --- a/lib/guilding.js +++ b/lib/guilding.js @@ -33,6 +33,11 @@ exports.GuildHandler = class { this.registerMusicCommands(); } + destroy(){ + this.dj.stop(); + this.db.close(); + } + /** * Creates all tables needed in the Database. * These are at the moment: @@ -299,4 +304,15 @@ exports.GuildHandler = class { exports.getHandler = function (guild, prefix) { if (!handlers[guild.id]) handlers[guild.id] = new this.GuildHandler(guild, prefix); return handlers[guild.id]; +}; + +/** + * Destroy all handlers to safely end all sql3-clients. + */ +exports.destroyAll = function () { + logger.debug('Destroying all handlers...'); + for (let key in Object.keys(handlers)) { + if (handlers[key]) + handlers[key].destroy(); + } }; \ No newline at end of file diff --git a/lib/music.js b/lib/music.js index aa8938f..05984dc 100644 --- a/lib/music.js +++ b/lib/music.js @@ -22,6 +22,7 @@ exports.DJ = class { this.repeat = false; this.volume = 0.5; this.voiceChannel = voiceChannel; + this.quality = 'lowest'; } /** @@ -130,8 +131,10 @@ exports.DJ = class { if (!this.playing || !this.disp) { logger.debug(`Playing ${url}`); this.disp = this.conn.playStream(ytdl(url, { - filter: "audioonly" - }), {seek: 0, volume: this.volume}); + filter: 'audioonly', + quality: this.quality, + liveBuffer: 40000 + }), {volume: this.volume}); this.disp.on('end', (reason) => { if (reason !== 'stop') { this.playing = false; diff --git a/package.json b/package.json index 5fa768c..3b16f26 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,10 @@ "ffmpeg-binaries": "4.0.0", "get-youtube-title": "1.0.0", "opusscript": "0.0.6", - "sqlite3": "^4.0.6", + "sqlite3": "4.0.6", "winston": "3.1.0", - "winston-daily-rotate-file": "3.5.1", + "winston-daily-rotate-file": "3.6.0", "youtube-playlist-info": "1.1.2", - "ytdl-core": "0.28.3" + "ytdl-core": "0.29.1" } }