@persian-caesar/discord-player
Version:
Type definitions and helpers for a Discord music player (MusicPlayer) without external dependencies
86 lines (85 loc) • 2.23 kB
TypeScript
export declare enum MusicPlayerEvent {
Start = "start",
QueueAdd = "queueAdd",
Pause = "pause",
Resume = "resume",
Stop = "stop",
Skip = "skip",
Previous = "previous",
Shuffle = "shuffle",
LoopQueue = "loopQueue",
LoopTrack = "loopTrack",
VolumeChange = "volumeChange",
Finish = "finish",
Disconnect = "disconnect",
Error = "error"
}
export interface StartPayload {
metadata: TrackMetadata;
queue: TrackMetadata[];
}
export interface QueueAddPayload {
metadata: TrackMetadata;
queue: TrackMetadata[];
}
export interface VolumeChangePayload {
volume: number;
}
export interface SkipPayload {
queue: TrackMetadata[];
history: string[];
}
export interface PreviousPayload {
metadata: TrackMetadata;
queue: TrackMetadata[];
history: string[];
}
export interface ShufflePayload {
queue: TrackMetadata[];
}
export interface LoopTogglePayload {
enabled: boolean;
}
export interface FinishPayload {
queue: TrackMetadata[];
history: string[];
}
export type TypedEmitter = {
"start": [StartPayload];
"queueAdd": [QueueAddPayload];
"pause": [void];
"resume": [void];
"stop": [void];
"skip": [SkipPayload];
"previous": [PreviousPayload];
"shuffle": [ShufflePayload];
"loopQueue": [LoopTogglePayload];
"loopTrack": [LoopTogglePayload];
"volumeChange": [VolumeChangePayload];
"finish": [FinishPayload];
"disconnect": [void];
"error": [Error];
};
export interface VoiceChannel {
id: string;
guild: {
id: string;
voiceAdapterCreator: any;
};
}
export interface TrackMetadata {
title: string | undefined;
author: string | undefined;
duration: number | undefined;
thumbnail: string | undefined;
source: "youtube" | "soundcloud" | "spotify" | "deezer" | "unknown";
url: string;
}
/**
* @copyright
* Code by Sobhan-SRZA (mr.sinre) | https://github.com/Sobhan-SRZA
* Developed for Persian Caesar | https://github.com/Persian-Caesar | https://dsc.gg/persian-caesar
*
* If you encounter any issues or need assistance with this code,
* please make sure to credit "Persian Caesar" in your documentation or communications.
*/