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); }); }