emit audio resource

This commit is contained in:
Snowflake107 2021-06-22 16:35:31 +05:45
parent 817bfdc9b5
commit f0259b39ce
2 changed files with 8 additions and 8 deletions

View file

@ -141,16 +141,17 @@ class Queue<T = unknown> {
this.player.emit("connectionCreate", this, this.connection);
this.connection.on("start", () => {
this.connection.on("start", (resource) => {
this.playing = true;
if (!this._filtersUpdate) this.player.emit("trackStart", this, this.current);
if (!this._filtersUpdate) this.player.emit("trackStart", this, resource.metadata);
this._filtersUpdate = false;
});
this.connection.on("finish", async () => {
this.connection.on("finish", async (resource) => {
this.playing = false;
if (this._filtersUpdate) return;
this._streamTime = 0;
this.previousTracks.push(resource.metadata);
if (!this.tracks.length && this.repeatMode === QueueRepeatMode.OFF) {
if (this.options.leaveOnEnd) this.destroy();
@ -405,7 +406,6 @@ class Queue<T = unknown> {
if (!options.filtersUpdate) {
this.previousTracks = this.previousTracks.filter((x) => x._trackID !== track._trackID);
this.previousTracks.push(track);
}
let stream;

View file

@ -20,8 +20,8 @@ import { Util } from "../utils/Util";
export interface VoiceEvents {
error: (error: AudioPlayerError) => any; // eslint-disable-line @typescript-eslint/no-explicit-any
debug: (message: string) => any; // eslint-disable-line @typescript-eslint/no-explicit-any
start: () => any; // eslint-disable-line @typescript-eslint/no-explicit-any
finish: () => any; // eslint-disable-line @typescript-eslint/no-explicit-any
start: (resource: AudioResource<Track>) => any; // eslint-disable-line @typescript-eslint/no-explicit-any
finish: (resource: AudioResource<Track>) => any; // eslint-disable-line @typescript-eslint/no-explicit-any
}
class StreamDispatcher extends EventEmitter<VoiceEvents> {
@ -89,11 +89,11 @@ class StreamDispatcher extends EventEmitter<VoiceEvents> {
this.audioPlayer.on("stateChange", (oldState, newState) => {
if (newState.status === AudioPlayerStatus.Idle && oldState.status !== AudioPlayerStatus.Idle) {
if (!this.paused) {
void this.emit("finish", this.audioResource);
this.audioResource = null;
void this.emit("finish");
}
} else if (newState.status === AudioPlayerStatus.Playing) {
if (!this.paused) void this.emit("start");
if (!this.paused) void this.emit("start", this.audioResource);
}
});