From ae53248299e03df0e678d7946010bc7e49a0bf47 Mon Sep 17 00:00:00 2001 From: Snowflake107 Date: Sat, 26 Jun 2021 12:25:24 +0545 Subject: [PATCH] feat(Queue): mute/unmute --- src/Structures/Queue.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Structures/Queue.ts b/src/Structures/Queue.ts index 64ae509..ffe2987 100644 --- a/src/Structures/Queue.ts +++ b/src/Structures/Queue.ts @@ -24,6 +24,7 @@ class Queue { public _cooldownsTimeout = new Collection(); private _activeFilters: any[] = []; // eslint-disable-line @typescript-eslint/no-explicit-any private _filtersUpdate = false; + #lastVolume = 0; #destroyed = false; /** @@ -265,6 +266,7 @@ class Queue { setVolume(amount: number) { this.#watchDestroyed(); if (!this.connection) return false; + this.#lastVolume = amount; this.options.initialVolume = amount; return this.connection.setVolume(amount); } @@ -300,7 +302,17 @@ class Queue { * @returns {void} */ mute() { + const lv = this.#lastVolume; this.volume = 0; + this.#lastVolume = lv; + } + + /** + * Unmutes the playback. If the last volume was set to 0, unmute will produce no effect. + * @returns {void} + */ + unmute() { + this.volume = this.#lastVolume; } /** @@ -623,7 +635,7 @@ class Queue { this._filtersUpdate = options.filtersUpdate; this.connection.playStream(resource).then(() => { - this.connection.setVolume(this.options.initialVolume); + this.setVolume(this.options.initialVolume); }); }