UNPKG

damonjs

Version:

A modified Shoukaku wrapper with enhanced queue support.

90 lines (89 loc) 3.14 kB
import { EventEmitter } from 'events'; import { CreatePlayerOptions, DamonJsEvents, DamonJsOptions as DamonJsOptionsOwO, DamonJsSearchOptions, DamonJsSearchResult, SearchResultTypes } from './Modules/Interfaces'; import { Node, Shoukaku } from 'shoukaku'; import { DamonJsPlayer } from './Managers/DamonJsPlayer'; import { DamonJsTrack } from './Managers/Supports/DamonJsTrack'; import { Snowflake } from 'discord.js'; export declare class DamonJs extends EventEmitter { DamonJsOptions: DamonJsOptionsOwO; /** Shoukaku instance */ shoukaku: Shoukaku; /** DamonJs players */ readonly players: Map<string, DamonJsPlayer>; skipSpam: { rule: { maxhits: number; timeFrame: number; cooldown: number; }; destroy: { timeFrame: number; maxhits: number; }; }; trackEnd: { skip: boolean; }; trackException: { skip: boolean; }; trackStuck: { skip: boolean; }; trackResolveError: { skip: boolean; }; /** * Initialize a DamonJs instance. * @param DamonJsOptions DamonJsOptions * @param connector Connector * @param nodes NodeOption[] * @param options ShoukakuOptions */ constructor(DamonJsOptions: DamonJsOptionsOwO, shoukaku: Shoukaku); on<K extends keyof DamonJsEvents>(event: K, listener: (...args: DamonJsEvents[K]) => void): this; once<K extends keyof DamonJsEvents>(event: K, listener: (...args: DamonJsEvents[K]) => void): this; off<K extends keyof DamonJsEvents>(event: K, listener: (...args: DamonJsEvents[K]) => void): this; emit<K extends keyof DamonJsEvents>(event: K, ...data: DamonJsEvents[K]): boolean; /** * Create a player. * @param options CreatePlayerOptions * @returns Promise<DamonJsPlayer> */ createPlayer<T extends DamonJsPlayer>(options: CreatePlayerOptions): Promise<T | DamonJsPlayer>; /** * Get a player by guildId. * @param guildId Guild ID * @returns DamonJsPlayer | undefined */ getPlayer<T extends DamonJsPlayer>(guildId: Snowflake): (T | DamonJsPlayer) | undefined; /** * Destroy a player. * @param guildId Guild ID * @returns void */ destroyPlayer<T extends DamonJsPlayer>(guildId: Snowflake): void; /** * Search a track by query or uri. * @param player DamonJs Player * @param query Query * @param options DamonJsOptions * @returns Promise<DamonJsSearchResult> */ search(query: string, options: DamonJsSearchOptions, player?: DamonJsPlayer): Promise<DamonJsSearchResult>; /** * Retrieves the least used node from the list of nodes. * inspired from kazagumo * @return {Promise<Node>} The least used node */ getLeastUsedNode(): Promise<Node>; buildSearch(playlistInfo?: { encoded: string; info: { name: string; selectedTrack: number; }; pluginInfo: unknown; }, tracks?: DamonJsTrack[], type?: SearchResultTypes): DamonJsSearchResult; private joinVoiceChannel; }