damonjs
Version:
A modified Shoukaku wrapper with enhanced queue support.
90 lines (89 loc) • 3.14 kB
TypeScript
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;
}