Raphix 2241136729
Some checks failed
Subsonics - Web/pipeline/head There was a failure building this commit
Subsonics - Web/pipeline/pr-main This commit looks good
Version 2.1.0 - Passage sur Lavalink V4 et Moonlink.js
2024-04-16 16:05:21 +02:00

268 lines
6.3 KiB
TypeScript

import { MoonlinkManager, MoonlinkPlayer, MoonlinkFilters, MoonlinkDatabase, MoonlinkRestFul, MoonlinkQueue, MoonlinkNode, MoonlinkTrack, PlayerManager, NodeManager, Plugin } from "../../index";
export type Constructor<T> = new (...args: any[]) => T;
export interface createOptions {
guildId: string;
textChannel: string;
voiceChannel: string;
autoPlay?: boolean;
autoLeave?: boolean;
notBackup?: boolean;
loop?: number;
volume?: number;
node?: string;
}
export type SortType = "memory" | "cpuLavalink" | "cpuSystem" | "calls" | "playingPlayers" | "players";
export interface VoiceState {
op: "voiceUpdate";
guildId: string;
event: VoiceServer;
sessionId?: string;
}
export interface VoiceServer {
token: string;
guild_id: string;
endpoint: string;
}
export interface VoiceState {
guild_id: string;
user_id: string;
session_id: string;
channel_id: string;
}
export interface VoicePacket {
t?: "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATE";
d: VoiceState | VoiceServer;
}
export type LoadType = "track" | "playlist" | "search" | "empty" | "error";
export interface TrackData {
encoded?: string;
info: TrackDataInfo;
pluginInfo: object;
}
export interface TrackDataInfo {
title: string;
identifier: string;
author: string;
length: number;
position: number;
isSeekable: boolean;
isStream: boolean;
uri: string;
}
export type SearchPlatform = "youtube" | "youtubemusic" | "soundcloud" | string;
export interface SearchQuery {
source?: SearchPlatform | string | undefined | null;
query: string | string[];
requester?: string | object | any;
node?: string;
}
export interface SearchResult {
loadType: LoadType;
tracks: MoonlinkTrack[];
playlistInfo?: PlaylistInfo;
exception?: {
message: string;
severity: string;
};
}
export interface INodeStats {
players: number;
playingPlayers: number;
uptime: number;
memory: {
reservable: number;
used: number;
free: number;
allocated: number;
};
frameStats: {
sent: number;
deficit: number;
nulled: number;
};
cpu: {
cores: number;
systemLoad: number;
lavalinkLoad: number;
};
}
export interface INode {
host: string;
identifier?: string;
password: string;
port: number;
secure: boolean;
regions?: string[];
retryAmount?: number;
retryDelay?: number;
sessionId?: string;
}
export interface IOptions {
clientId?: string;
clientName?: string;
sortNode?: SortType;
autoResume?: boolean;
resume?: boolean;
plugins?: Plugin[];
http2?: boolean;
doNotSaveToFiles?: boolean;
switchPlayersAnotherNode?: boolean;
destroyPlayersStopped?: boolean;
balancingPlayersByRegion?: boolean;
previousTracksInArray?: boolean;
}
export interface IHeaders {
Authorization: string;
"User-Id": string;
"Client-Name": string;
}
export interface Extendable {
MoonlinkManager: typeof MoonlinkManager;
MoonlinkPlayer: typeof MoonlinkPlayer;
MoonlinkDatabase: typeof MoonlinkDatabase;
MoonlinkFilters: typeof MoonlinkFilters;
MoonlinkRestFul: typeof MoonlinkRestFul;
MoonlinkQueue: typeof MoonlinkQueue;
MoonlinkNode: typeof MoonlinkNode;
MoonlinkTrack: typeof MoonlinkTrack;
PlayerManager: typeof PlayerManager;
NodeManager: typeof NodeManager;
}
export interface PlaylistInfo {
name: string;
selectedTrack?: MoonlinkTrack;
duration: number;
}
export interface LavalinkResult {
data: TrackData[];
loadType: LoadType;
exception?: {
message: string;
severity: string;
};
playlistInfo: {
name: string;
selectedTrack?: number;
};
}
export interface VoiceOptions {
endpoint: string;
token: string;
sessionId: string;
connected?: boolean;
ping?: number;
}
export type Endpoint = string;
export interface objectTrack {
encoded: string;
}
export interface PreviousInfosPlayer {
voiceChannel?: string;
textChannel?: string;
guildId?: string;
volume?: number;
autoPlay?: boolean;
autoLeave?: boolean;
previous?: object | MoonlinkTrack;
loop?: number;
current?: Record<string, any>;
}
export interface RestOptions {
guildId: string;
data: {
track?: objectTrack;
identifier?: string;
startTime?: number;
endTime?: number;
volume?: number;
position?: number;
paused?: Boolean;
filters?: Object;
voice?: VoiceOptions;
};
}
export interface connectOptions {
setMute?: boolean;
setDeaf?: boolean;
}
export interface IPlayerData {
guildId: string;
textChannel: string | null;
voiceChannel: string | null;
voiceRegion?: string | null;
autoPlay?: boolean | null;
autoLeave?: boolean | null;
connected?: boolean | null;
playing?: boolean | null;
paused?: boolean | null;
shuffled?: boolean | null;
loop?: number | null;
volume?: number | null;
notBackup?: boolean;
ping?: number;
node?: string;
}
export interface TrackInfo {
identifier: string;
isSeekable: boolean;
author: string;
isStream: boolean;
length: number;
position: number;
title: string;
uri?: string;
artworkUrl?: string;
sourceName: string;
isrc?: string;
}
export interface MoonlinkTrackOptions {
info: TrackInfo;
encoded?: string;
pluginInfo?: object;
}
export interface Equalizer {
band: number;
gain: number;
}
export interface Karaoke {
level?: number;
monoLevel?: number;
filterBand?: number;
filterWidth?: number;
}
export interface Timescale {
speed?: number;
pitch?: number;
rate?: number;
}
export interface Tremolo {
frequency?: number;
depth?: number;
}
export interface Vibrato {
frequency?: number;
depth?: number;
}
export interface Rotation {
rotationHz?: number;
}
export interface Distortion {
sinOffset?: number;
sinScale?: number;
cosOffset?: number;
cosScale?: number;
tanOffset?: number;
tanScale?: number;
offset?: number;
scale?: number;
}
export interface ChannelMix {
leftToLeft?: number;
leftToRight?: number;
rightToLeft?: number;
rightToRight?: number;
}
export interface LowPass {
smoothing?: number;
}