From 11c78cc5032ddfeb62cd3e09dc196fbaba07cc7d Mon Sep 17 00:00:00 2001 From: Emmanuel Lobo <76094069+UnschooledGamer@users.noreply.github.com> Date: Thu, 18 Jan 2024 19:56:04 +0530 Subject: [PATCH] docs(Filters): :pencil2: Fix spelling mistakes --- dist/cjs/structures/Filters.d.ts | 16 +- dist/cjs/structures/Filters.js | 16 +- dist/cjs/structures/LavalinkManager.d.ts | 169 +++++++++++++++++- dist/cjs/structures/LavalinkManager.js | 167 ++++++++++++++++- dist/cjs/structures/Player.d.ts | 2 +- dist/esm/structures/Filters.d.ts | 16 +- dist/esm/structures/Filters.js | 16 +- dist/esm/structures/LavalinkManager.d.ts | 169 +++++++++++++++++- dist/esm/structures/LavalinkManager.js | 167 ++++++++++++++++- dist/esm/structures/Player.d.ts | 2 +- dist/types/structures/Filters.d.ts | 16 +- dist/types/structures/LavalinkManager.d.ts | 169 +++++++++++++++++- dist/types/structures/Player.d.ts | 2 +- src/structures/Filters.ts | 16 +- tsDocs/assets/search.js | 2 +- tsDocs/classes/Filters.FilterManager.html | 54 +++--- .../LavalinkManager.LavalinkManager.html | 34 ++-- tsDocs/classes/Node.LavalinkNode.html | 62 +++---- tsDocs/classes/NodeManager.NodeManager.html | 14 +- tsDocs/classes/Player.Player.html | 68 +++---- tsDocs/classes/Queue.DefaultQueueStore.html | 14 +- tsDocs/classes/Queue.Queue.html | 12 +- tsDocs/classes/Queue.QueueSaver.html | 4 +- tsDocs/classes/Utils.ManagerUtils.html | 16 +- tsDocs/classes/Utils.MiniMap.html | 10 +- ...earches_BandCampSearch.bandCampSearch.html | 2 +- .../functions/Utils.parseLavalinkConnUrl.html | 2 +- tsDocs/functions/Utils.queueTrackEnd.html | 2 +- tsDocs/index.html | 4 +- .../interfaces/Filters.ChannelMixFilter.html | 10 +- .../interfaces/Filters.DistortionFilter.html | 4 +- tsDocs/interfaces/Filters.EQBand.html | 6 +- tsDocs/interfaces/Filters.FilterData.html | 4 +- tsDocs/interfaces/Filters.KaraokeFilter.html | 10 +- .../Filters.LavalinkFilterData.html | 4 +- tsDocs/interfaces/Filters.LowPassFilter.html | 4 +- tsDocs/interfaces/Filters.PlayerFilters.html | 24 +-- tsDocs/interfaces/Filters.RotationFilter.html | 4 +- .../interfaces/Filters.TimescaleFilter.html | 8 +- tsDocs/interfaces/Filters.TremoloFilter.html | 6 +- tsDocs/interfaces/Filters.VibratoFilter.html | 6 +- .../LavalinkManager.BotClientOptions.html | 6 +- .../LavalinkManager.ManagerOptions.html | 26 +-- .../LavalinkManager.ManagerPlayerOptions.html | 16 +- tsDocs/interfaces/Node.BaseNodeStats.html | 14 +- tsDocs/interfaces/Node.CPUStats.html | 8 +- tsDocs/interfaces/Node.FrameStats.html | 8 +- tsDocs/interfaces/Node.GitObject.html | 8 +- tsDocs/interfaces/Node.LavalinkInfo.html | 18 +- .../interfaces/Node.LavalinkNodeOptions.html | 24 +-- tsDocs/interfaces/Node.MemoryStats.html | 10 +- tsDocs/interfaces/Node.NodeStats.html | 14 +- tsDocs/interfaces/Node.PluginObject.html | 6 +- tsDocs/interfaces/Node.VersionObject.html | 14 +- tsDocs/interfaces/Player.BasePlayOptions.html | 14 +- .../Player.LavalinkPlayOptions.html | 16 +- tsDocs/interfaces/Player.PlayOptions.html | 20 +-- tsDocs/interfaces/Player.PlayerJson.html | 4 +- tsDocs/interfaces/Player.PlayerOptions.html | 22 +-- .../interfaces/Queue.ManagerQueueOptions.html | 8 +- .../interfaces/Queue.QueueChangesWatcher.html | 8 +- .../interfaces/Queue.QueueStoreManager.html | 12 +- tsDocs/interfaces/Queue.StoredQueue.html | 4 +- tsDocs/interfaces/Track.LavalinkTrack.html | 10 +- .../interfaces/Track.LavalinkTrackInfo.html | 22 +-- tsDocs/interfaces/Track.PluginInfo.html | 30 ++-- tsDocs/interfaces/Track.Track.html | 12 +- tsDocs/interfaces/Track.TrackInfo.html | 22 +-- tsDocs/interfaces/Track.UnresolvedQuery.html | 24 +-- tsDocs/interfaces/Track.UnresolvedTrack.html | 14 +- .../interfaces/Track.UnresolvedTrackInfo.html | 22 +-- .../interfaces/Utils.ChannelDeletePacket.html | 6 +- tsDocs/interfaces/Utils.Exception.html | 4 +- tsDocs/interfaces/Utils.FailingAddress.html | 8 +- .../interfaces/Utils.GuildShardPayload.html | 6 +- .../Utils.InvalidLavalinkRestRequest.html | 14 +- .../Utils.LavaSearchFilteredResponse.html | 8 +- .../interfaces/Utils.LavaSearchResponse.html | 14 +- tsDocs/interfaces/Utils.LavalinkPlayer.html | 16 +- .../interfaces/Utils.LavalinkPlayerVoice.html | 12 +- .../Utils.LavalinkPlayerVoiceOptions.html | 8 +- .../interfaces/Utils.MiniMapConstructor.html | 4 +- tsDocs/interfaces/Utils.NodeMessage.html | 20 +-- tsDocs/interfaces/Utils.PlayerEvent.html | 4 +- tsDocs/interfaces/Utils.PlayerUpdateInfo.html | 8 +- tsDocs/interfaces/Utils.PlaylistInfo.html | 16 +- tsDocs/interfaces/Utils.RoutePlanner.html | 6 +- tsDocs/interfaces/Utils.SearchResult.html | 4 +- tsDocs/interfaces/Utils.Session.html | 6 +- .../Utils.SponsorBlockChapterStarted.html | 4 +- .../Utils.SponsorBlockChaptersLoaded.html | 4 +- .../Utils.SponsorBlockSegmentSkipped.html | 4 +- .../Utils.SponsorBlockSegmentsLoaded.html | 4 +- tsDocs/interfaces/Utils.TrackEndEvent.html | 4 +- .../interfaces/Utils.TrackExceptionEvent.html | 4 +- tsDocs/interfaces/Utils.TrackStartEvent.html | 4 +- tsDocs/interfaces/Utils.TrackStuckEvent.html | 4 +- .../Utils.UnresolvedSearchResult.html | 4 +- tsDocs/interfaces/Utils.VoicePacket.html | 6 +- tsDocs/interfaces/Utils.VoiceServer.html | 8 +- tsDocs/interfaces/Utils.VoiceState.html | 18 +- .../Utils.WebSocketClosedEvent.html | 4 +- .../CustomSearches_BandCampSearch.html | 2 +- tsDocs/modules/Filters.html | 2 +- tsDocs/modules/LavalinkManager.html | 2 +- tsDocs/modules/LavalinkManagerStatics.html | 2 +- tsDocs/modules/Node.html | 2 +- tsDocs/modules/NodeManager.html | 2 +- tsDocs/modules/Player.html | 2 +- tsDocs/modules/Queue.html | 2 +- tsDocs/modules/Track.html | 2 +- tsDocs/modules/Utils.html | 2 +- tsDocs/types/Filters.AudioOutputs.html | 2 +- tsDocs/types/Node.ModifyRequest.html | 2 +- tsDocs/types/Node.SponsorBlockSegment.html | 2 +- tsDocs/types/Player.DestroyReasonsType.html | 2 +- tsDocs/types/Player.RepeatMode.html | 2 +- tsDocs/types/Player.anyObject.html | 2 +- ...ck.LavalinkPlugin_LavaSrc_SourceNames.html | 2 +- tsDocs/types/Track.LavalinkSourceNames.html | 2 +- tsDocs/types/Track.SourceNames.html | 2 +- tsDocs/types/Utils.Base64.html | 2 +- ...Utils.ClientCustomSearchPlatformUtils.html | 2 +- tsDocs/types/Utils.ClientSearchPlatform.html | 2 +- tsDocs/types/Utils.DuncteSearchPlatform.html | 2 +- tsDocs/types/Utils.FloatNumber.html | 2 +- tsDocs/types/Utils.IntegerNumber.html | 2 +- tsDocs/types/Utils.LavaSearchQuery.html | 2 +- tsDocs/types/Utils.LavaSearchType.html | 2 +- tsDocs/types/Utils.LavaSrcSearchPlatform.html | 2 +- .../Utils.LavaSrcSearchPlatformBase.html | 2 +- .../Utils.LavalinkClientSearchPlatform.html | 2 +- ...s.LavalinkClientSearchPlatformResolve.html | 2 +- .../types/Utils.LavalinkSearchPlatform.html | 2 +- tsDocs/types/Utils.LoadTypes.html | 2 +- tsDocs/types/Utils.PlayerEventType.html | 2 +- tsDocs/types/Utils.PlayerEvents.html | 2 +- tsDocs/types/Utils.SearchPlatform.html | 2 +- tsDocs/types/Utils.SearchQuery.html | 2 +- tsDocs/types/Utils.Severity.html | 2 +- tsDocs/types/Utils.SourcesRegex.html | 2 +- .../Utils.SponsorBlockSegmentEventType.html | 2 +- .../Utils.SponsorBlockSegmentEvents.html | 2 +- tsDocs/types/Utils.State.html | 2 +- tsDocs/types/Utils.TrackEndReason.html | 2 +- tsDocs/variables/Filters.EQList.html | 2 +- .../variables/Filters.audioOutputsData.html | 2 +- ...LavalinkManagerStatics.DefaultSources.html | 2 +- ...avalinkManagerStatics.LavalinkPlugins.html | 2 +- ...linkManagerStatics.SourceLinksRegexes.html | 2 +- tsDocs/variables/Node.validSponsorBlocks.html | 2 +- tsDocs/variables/Player.DestroyReasons.html | 2 +- tsDocs/variables/Utils.NodeSymbol.html | 2 +- tsDocs/variables/Utils.QueueSymbol.html | 2 +- tsDocs/variables/Utils.TrackSymbol.html | 2 +- .../Utils.UnresolvedTrackSymbol.html | 2 +- 156 files changed, 1436 insertions(+), 677 deletions(-) diff --git a/dist/cjs/structures/Filters.d.ts b/dist/cjs/structures/Filters.d.ts index cea16e1..fdb2e11 100644 --- a/dist/cjs/structures/Filters.d.ts +++ b/dist/cjs/structures/Filters.d.ts @@ -61,27 +61,27 @@ export declare class FilterManager { */ setRate(rate?: number): Promise; /** - * Enabels / Disables the rotation effect, (Optional: provide your Own Data) + * Enables / Disables the rotation effect, (Optional: provide your Own Data) * @param rotationHz * @returns */ toggleRotation(rotationHz?: number): Promise; /** - * Enabels / Disables the Vibrato effect, (Optional: provide your Own Data) + * Enables / Disables the Vibrato effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleVibrato(frequency?: number, depth?: number): Promise; /** - * Enabels / Disables the Tremolo effect, (Optional: provide your Own Data) + * Enables / Disables the Tremolo effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleTremolo(frequency?: number, depth?: number): Promise; /** - * Enabels / Disables the LowPass effect, (Optional: provide your Own Data) + * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param smoothing * @returns */ @@ -94,14 +94,14 @@ export declare class FilterManager { }; lavalinkFilterPlugin: { /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delay * @param decay * @returns */ toggleEcho: (delay?: number, decay?: number) => Promise; /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delays * @param gains * @returns @@ -109,7 +109,7 @@ export declare class FilterManager { toggleReverb: (delays?: number[], gains?: number[]) => Promise; }; /** - * Enables / Disabels a Nightcore-like filter Effect. Disables/Overwrides both: custom and Vaporwave Filter + * Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter * @param speed * @param pitch * @param rate @@ -117,7 +117,7 @@ export declare class FilterManager { */ toggleNightcore(speed?: number, pitch?: number, rate?: number): Promise; /** - * Enables / Disabels a Vaporwave-like filter Effect. Disables/Overwrides both: custom and nightcore Filter + * Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter * @param speed * @param pitch * @param rate diff --git a/dist/cjs/structures/Filters.js b/dist/cjs/structures/Filters.js index 6e15389..9da9990 100644 --- a/dist/cjs/structures/Filters.js +++ b/dist/cjs/structures/Filters.js @@ -374,7 +374,7 @@ class FilterManager { return this.filters.custom; } /** - * Enabels / Disables the rotation effect, (Optional: provide your Own Data) + * Enables / Disables the rotation effect, (Optional: provide your Own Data) * @param rotationHz * @returns */ @@ -386,7 +386,7 @@ class FilterManager { return await this.applyPlayerFilters(), this.filters.rotation; } /** - * Enabels / Disables the Vibrato effect, (Optional: provide your Own Data) + * Enables / Disables the Vibrato effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns @@ -401,7 +401,7 @@ class FilterManager { return this.filters.vibrato; } /** - * Enabels / Disables the Tremolo effect, (Optional: provide your Own Data) + * Enables / Disables the Tremolo effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns @@ -416,7 +416,7 @@ class FilterManager { return this.filters.tremolo; } /** - * Enabels / Disables the LowPass effect, (Optional: provide your Own Data) + * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param smoothing * @returns */ @@ -528,7 +528,7 @@ class FilterManager { }; lavalinkFilterPlugin = { /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delay * @param decay * @returns @@ -553,7 +553,7 @@ class FilterManager { return this.filters.lavalinkFilterPlugin.echo; }, /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delays * @param gains * @returns @@ -579,7 +579,7 @@ class FilterManager { } }; /** - * Enables / Disabels a Nightcore-like filter Effect. Disables/Overwrides both: custom and Vaporwave Filter + * Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter * @param speed * @param pitch * @param rate @@ -598,7 +598,7 @@ class FilterManager { return this.filters.nightcore; } /** - * Enables / Disabels a Vaporwave-like filter Effect. Disables/Overwrides both: custom and nightcore Filter + * Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter * @param speed * @param pitch * @param rate diff --git a/dist/cjs/structures/LavalinkManager.d.ts b/dist/cjs/structures/LavalinkManager.d.ts index 1a524fa..c1cc103 100644 --- a/dist/cjs/structures/LavalinkManager.d.ts +++ b/dist/cjs/structures/LavalinkManager.d.ts @@ -6,10 +6,6 @@ import { DestroyReasonsType, Player, PlayerJson, PlayerOptions } from "./Player" import { ManagerQueueOptions } from "./Queue"; import { Track, UnresolvedTrack } from "./Track"; import { ChannelDeletePacket, GuildShardPayload, ManagerUtils, MiniMap, SearchPlatform, SponsorBlockChaptersLoaded, SponsorBlockChapterStarted, SponsorBlockSegmentSkipped, SponsorBlockSegmentsLoaded, TrackEndEvent, TrackExceptionEvent, TrackStartEvent, TrackStuckEvent, VoicePacket, VoiceServer, VoiceState, WebSocketClosedEvent } from "./Utils"; -export interface LavalinkManager { - nodeManager: NodeManager; - utils: ManagerUtils; -} export interface BotClientOptions { /** Bot Client Id */ id: string; @@ -168,31 +164,186 @@ interface LavalinkManagerEvents { "ChaptersLoaded": (player: Player, track: Track | UnresolvedTrack, payload: SponsorBlockChaptersLoaded) => void; } export interface LavalinkManager { - options: ManagerOptions; + /** @private */ on(event: U, listener: LavalinkManagerEvents[U]): this; + /** @private */ emit(event: U, ...args: Parameters): boolean; } export declare class LavalinkManager extends EventEmitter { - static DefaultSources: Record; - static SourceLinksRegexes: Record; + /** The Options of LavalinkManager (changeable) */ + options: ManagerOptions; + /** LavalinkManager's NodeManager to manage all Nodes */ + nodeManager: NodeManager; + /** LavalinkManager's Utils Class */ + utils: ManagerUtils; + /** Wether the manager was initiated or not */ initiated: boolean; + /** All Players stored in a MiniMap */ readonly players: MiniMap; + /** + * Applies the options provided by the User + * @param options + * @returns + */ private applyOptions; + /** + * Validates the current manager's options + * @param options + */ private validateOptions; + /** + * Create the Lavalink Manager + * @param options + * + * @example + * ```ts + * //const client = new Client({...}); // create your BOT Client (e.g. via discord.js) + * client.lavalink = new LavalinkManager({ + * nodes: [ + * { + * authorization: "yourverystrongpassword", + * host: "localhost", + * port: 2333, + * id: "testnode" + * }, + * sendToShard(guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload), + * client: { + * id: process.env.CLIENT_ID, + * username: "TESTBOT" + * }, + * // optional Options: + * autoSkip: true, + * playerOptions: { + * applyVolumeAsFilter: false, + * clientBasedPositionUpdateInterval: 150, + * defaultSearchPlatform: "ytmsearch", + * volumeDecrementer: 0.75, + * //requesterTransformer: YourRequesterTransformerFunction, + * onDisconnect: { + * autoReconnect: true, + * destroyPlayer: false + * }, + * onEmptyQueue: { + * destroyAfterMs: 30_000, + * //autoPlayFunction: YourAutoplayFunction, + * }, + * useUnresolvedData: true + * }, + * queueOptions: { + * maxPreviousTracks: 25, + * //queueStore: yourCustomQueueStoreManagerClass, + * //queueChangesWatcher: yourCustomQueueChangesWatcherClass + * }, + * linksBlacklist: [], + * linksWhitelist: [], + * advancedOptions: { + * debugOptions: { + * noAudio: false, + * playerDestroy: { + * dontThrowError: false, + * debugLogs: false + * } + * } + * } + * ] + * }) + * ``` + */ constructor(options: ManagerOptions); - createPlayer(options: PlayerOptions): Player; + /** + * Get a Player from Lava + * @param guildId The guildId of the player + * + * @example + * ```ts + * const player = client.lavalink.getPlayer(interaction.guildId); + * ``` + * A quicker and easier way than doing: + * ```ts + * const player = client.lavalink.players.get(interaction.guildId); + * ``` + * @returns + */ getPlayer(guildId: string): Player; + /** + * Create a Music-Player. If a player exists, then it returns it before creating a new one + * @param options + * @returns + * + * @example + * ```ts + * const player = client.lavalink.createPlayer({ + * guildId: interaction.guildId, + * voiceChannelId: interaction.member.voice.channelId, + * // everything below is optional + * textChannelId: interaction.channelId, + * volume: 100, + * selfDeaf: true, + * selfMute: false, + * instaUpdateFiltersFix: true, + * applyVolumeAsFilter: false + * //only needed if you want to autopick node by region (configured by you) + * // vcRegion: interaction.member.voice.rtcRegion, + * // provide a specific node + * // node: client.lavalink.nodeManager.leastUsedNodes("memory")[0] + * }); + * ``` + */ + createPlayer(options: PlayerOptions): Player; + /** + * Destroy a player with optional destroy reason and disconnect it from the voice channel + * @param guildId + * @param destroyReason + * @returns + * + * @example + * ```ts + * client.lavalink.destroyPlayer(interaction.guildId, "forcefully destroyed the player"); + * // recommend to do it on the player tho: player.destroy("forcefully destroyed the player"); + * ``` + */ destroyPlayer(guildId: string, destroyReason?: string): Promise; + /** + * Delete's a player from the cache without destroying it on lavalink (only works when it's disconnected) + * @param guildId + * @returns + */ deletePlayer(guildId: string): boolean; + /** + * Checks wether the the lib is useable based on if any node is connected + */ get useable(): boolean; /** - * Initiates the Manager. + * Initiates the Manager, creates all nodes and connects all of them * @param clientData + * + * @example + * + * ```ts + * // on the bot ready event + * client.on("ready", () => { + * client.lavalink.init({ + * id: client.user.id, + * username: client.user.username + * }); + * }); + * ``` */ init(clientData: BotClientOptions): Promise; /** * Sends voice data to the Lavalink server. + * ! Without this the library won't work * @param data + * + * @example + * + * ```ts + * // on the bot "raw" event + * client.on("raw", (d) => { + * // required in order to send audio updates and register channel deletion etc. + * client.lavalink.sendRawData(d) + * }) + * ``` */ sendRawData(data: VoicePacket | VoiceServer | VoiceState | ChannelDeletePacket): Promise; } diff --git a/dist/cjs/structures/LavalinkManager.js b/dist/cjs/structures/LavalinkManager.js index a181a3a..3ea58b1 100644 --- a/dist/cjs/structures/LavalinkManager.js +++ b/dist/cjs/structures/LavalinkManager.js @@ -2,16 +2,26 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.LavalinkManager = void 0; const events_1 = require("events"); -const LavalinkManagerStatics_1 = require("./LavalinkManagerStatics"); const NodeManager_1 = require("./NodeManager"); const Player_1 = require("./Player"); const Queue_1 = require("./Queue"); const Utils_1 = require("./Utils"); class LavalinkManager extends events_1.EventEmitter { - static DefaultSources = LavalinkManagerStatics_1.DefaultSources; - static SourceLinksRegexes = LavalinkManagerStatics_1.SourceLinksRegexes; + /** The Options of LavalinkManager (changeable) */ + options; + /** LavalinkManager's NodeManager to manage all Nodes */ + nodeManager; + /** LavalinkManager's Utils Class */ + utils; + /** Wether the manager was initiated or not */ initiated = false; + /** All Players stored in a MiniMap */ players = new Utils_1.MiniMap(); + /** + * Applies the options provided by the User + * @param options + * @returns + */ applyOptions(options) { this.options = { client: { @@ -59,6 +69,10 @@ class LavalinkManager extends events_1.EventEmitter { }; return; } + /** + * Validates the current manager's options + * @param options + */ validateOptions(options) { if (typeof options?.sendToShard !== "function") throw new SyntaxError("ManagerOption.sendToShard was not provided, which is required!"); @@ -89,6 +103,64 @@ class LavalinkManager extends events_1.EventEmitter { if (typeof options?.queueOptions?.maxPreviousTracks !== "number" || options?.queueOptions?.maxPreviousTracks < 0) options.queueOptions.maxPreviousTracks = 25; } + /** + * Create the Lavalink Manager + * @param options + * + * @example + * ```ts + * //const client = new Client({...}); // create your BOT Client (e.g. via discord.js) + * client.lavalink = new LavalinkManager({ + * nodes: [ + * { + * authorization: "yourverystrongpassword", + * host: "localhost", + * port: 2333, + * id: "testnode" + * }, + * sendToShard(guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload), + * client: { + * id: process.env.CLIENT_ID, + * username: "TESTBOT" + * }, + * // optional Options: + * autoSkip: true, + * playerOptions: { + * applyVolumeAsFilter: false, + * clientBasedPositionUpdateInterval: 150, + * defaultSearchPlatform: "ytmsearch", + * volumeDecrementer: 0.75, + * //requesterTransformer: YourRequesterTransformerFunction, + * onDisconnect: { + * autoReconnect: true, + * destroyPlayer: false + * }, + * onEmptyQueue: { + * destroyAfterMs: 30_000, + * //autoPlayFunction: YourAutoplayFunction, + * }, + * useUnresolvedData: true + * }, + * queueOptions: { + * maxPreviousTracks: 25, + * //queueStore: yourCustomQueueStoreManagerClass, + * //queueChangesWatcher: yourCustomQueueChangesWatcherClass + * }, + * linksBlacklist: [], + * linksWhitelist: [], + * advancedOptions: { + * debugOptions: { + * noAudio: false, + * playerDestroy: { + * dontThrowError: false, + * debugLogs: false + * } + * } + * } + * ] + * }) + * ``` + */ constructor(options) { super(); if (!options) @@ -100,6 +172,47 @@ class LavalinkManager extends events_1.EventEmitter { // create classes this.nodeManager = new NodeManager_1.NodeManager(this); } + /** + * Get a Player from Lava + * @param guildId The guildId of the player + * + * @example + * ```ts + * const player = client.lavalink.getPlayer(interaction.guildId); + * ``` + * A quicker and easier way than doing: + * ```ts + * const player = client.lavalink.players.get(interaction.guildId); + * ``` + * @returns + */ + getPlayer(guildId) { + return this.players.get(guildId); + } + /** + * Create a Music-Player. If a player exists, then it returns it before creating a new one + * @param options + * @returns + * + * @example + * ```ts + * const player = client.lavalink.createPlayer({ + * guildId: interaction.guildId, + * voiceChannelId: interaction.member.voice.channelId, + * // everything below is optional + * textChannelId: interaction.channelId, + * volume: 100, + * selfDeaf: true, + * selfMute: false, + * instaUpdateFiltersFix: true, + * applyVolumeAsFilter: false + * //only needed if you want to autopick node by region (configured by you) + * // vcRegion: interaction.member.voice.rtcRegion, + * // provide a specific node + * // node: client.lavalink.nodeManager.leastUsedNodes("memory")[0] + * }); + * ``` + */ createPlayer(options) { const oldPlayer = this.getPlayer(options?.guildId); if (oldPlayer) @@ -108,15 +221,29 @@ class LavalinkManager extends events_1.EventEmitter { this.players.set(newPlayer.guildId, newPlayer); return newPlayer; } - getPlayer(guildId) { - return this.players.get(guildId); - } + /** + * Destroy a player with optional destroy reason and disconnect it from the voice channel + * @param guildId + * @param destroyReason + * @returns + * + * @example + * ```ts + * client.lavalink.destroyPlayer(interaction.guildId, "forcefully destroyed the player"); + * // recommend to do it on the player tho: player.destroy("forcefully destroyed the player"); + * ``` + */ destroyPlayer(guildId, destroyReason) { const oldPlayer = this.getPlayer(guildId); if (!oldPlayer) return; return oldPlayer.destroy(destroyReason); } + /** + * Delete's a player from the cache without destroying it on lavalink (only works when it's disconnected) + * @param guildId + * @returns + */ deletePlayer(guildId) { const oldPlayer = this.getPlayer(guildId); if (!oldPlayer) @@ -130,12 +257,27 @@ class LavalinkManager extends events_1.EventEmitter { } return this.players.delete(guildId); } + /** + * Checks wether the the lib is useable based on if any node is connected + */ get useable() { return this.nodeManager.nodes.filter(v => v.connected).size > 0; } /** - * Initiates the Manager. + * Initiates the Manager, creates all nodes and connects all of them * @param clientData + * + * @example + * + * ```ts + * // on the bot ready event + * client.on("ready", () => { + * client.lavalink.init({ + * id: client.user.id, + * username: client.user.username + * }); + * }); + * ``` */ async init(clientData) { if (this.initiated) @@ -165,7 +307,18 @@ class LavalinkManager extends events_1.EventEmitter { } /** * Sends voice data to the Lavalink server. + * ! Without this the library won't work * @param data + * + * @example + * + * ```ts + * // on the bot "raw" event + * client.on("raw", (d) => { + * // required in order to send audio updates and register channel deletion etc. + * client.lavalink.sendRawData(d) + * }) + * ``` */ async sendRawData(data) { if (!this.initiated) { diff --git a/dist/cjs/structures/Player.d.ts b/dist/cjs/structures/Player.d.ts index ebf8c44..fbbd7ad 100644 --- a/dist/cjs/structures/Player.d.ts +++ b/dist/cjs/structures/Player.d.ts @@ -172,7 +172,7 @@ export declare class Player { * @param query Query for your data * @param requestUser */ - search(query: SearchQuery, requestUser: unknown): Promise; + search(query: SearchQuery, requestUser: unknown): Promise; /** * Pause the player */ diff --git a/dist/esm/structures/Filters.d.ts b/dist/esm/structures/Filters.d.ts index cea16e1..fdb2e11 100644 --- a/dist/esm/structures/Filters.d.ts +++ b/dist/esm/structures/Filters.d.ts @@ -61,27 +61,27 @@ export declare class FilterManager { */ setRate(rate?: number): Promise; /** - * Enabels / Disables the rotation effect, (Optional: provide your Own Data) + * Enables / Disables the rotation effect, (Optional: provide your Own Data) * @param rotationHz * @returns */ toggleRotation(rotationHz?: number): Promise; /** - * Enabels / Disables the Vibrato effect, (Optional: provide your Own Data) + * Enables / Disables the Vibrato effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleVibrato(frequency?: number, depth?: number): Promise; /** - * Enabels / Disables the Tremolo effect, (Optional: provide your Own Data) + * Enables / Disables the Tremolo effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleTremolo(frequency?: number, depth?: number): Promise; /** - * Enabels / Disables the LowPass effect, (Optional: provide your Own Data) + * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param smoothing * @returns */ @@ -94,14 +94,14 @@ export declare class FilterManager { }; lavalinkFilterPlugin: { /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delay * @param decay * @returns */ toggleEcho: (delay?: number, decay?: number) => Promise; /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delays * @param gains * @returns @@ -109,7 +109,7 @@ export declare class FilterManager { toggleReverb: (delays?: number[], gains?: number[]) => Promise; }; /** - * Enables / Disabels a Nightcore-like filter Effect. Disables/Overwrides both: custom and Vaporwave Filter + * Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter * @param speed * @param pitch * @param rate @@ -117,7 +117,7 @@ export declare class FilterManager { */ toggleNightcore(speed?: number, pitch?: number, rate?: number): Promise; /** - * Enables / Disabels a Vaporwave-like filter Effect. Disables/Overwrides both: custom and nightcore Filter + * Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter * @param speed * @param pitch * @param rate diff --git a/dist/esm/structures/Filters.js b/dist/esm/structures/Filters.js index 9285d7e..5a9113c 100644 --- a/dist/esm/structures/Filters.js +++ b/dist/esm/structures/Filters.js @@ -371,7 +371,7 @@ export class FilterManager { return this.filters.custom; } /** - * Enabels / Disables the rotation effect, (Optional: provide your Own Data) + * Enables / Disables the rotation effect, (Optional: provide your Own Data) * @param rotationHz * @returns */ @@ -383,7 +383,7 @@ export class FilterManager { return await this.applyPlayerFilters(), this.filters.rotation; } /** - * Enabels / Disables the Vibrato effect, (Optional: provide your Own Data) + * Enables / Disables the Vibrato effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns @@ -398,7 +398,7 @@ export class FilterManager { return this.filters.vibrato; } /** - * Enabels / Disables the Tremolo effect, (Optional: provide your Own Data) + * Enables / Disables the Tremolo effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns @@ -413,7 +413,7 @@ export class FilterManager { return this.filters.tremolo; } /** - * Enabels / Disables the LowPass effect, (Optional: provide your Own Data) + * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param smoothing * @returns */ @@ -525,7 +525,7 @@ export class FilterManager { }; lavalinkFilterPlugin = { /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delay * @param decay * @returns @@ -550,7 +550,7 @@ export class FilterManager { return this.filters.lavalinkFilterPlugin.echo; }, /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delays * @param gains * @returns @@ -576,7 +576,7 @@ export class FilterManager { } }; /** - * Enables / Disabels a Nightcore-like filter Effect. Disables/Overwrides both: custom and Vaporwave Filter + * Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter * @param speed * @param pitch * @param rate @@ -595,7 +595,7 @@ export class FilterManager { return this.filters.nightcore; } /** - * Enables / Disabels a Vaporwave-like filter Effect. Disables/Overwrides both: custom and nightcore Filter + * Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter * @param speed * @param pitch * @param rate diff --git a/dist/esm/structures/LavalinkManager.d.ts b/dist/esm/structures/LavalinkManager.d.ts index 1a524fa..c1cc103 100644 --- a/dist/esm/structures/LavalinkManager.d.ts +++ b/dist/esm/structures/LavalinkManager.d.ts @@ -6,10 +6,6 @@ import { DestroyReasonsType, Player, PlayerJson, PlayerOptions } from "./Player" import { ManagerQueueOptions } from "./Queue"; import { Track, UnresolvedTrack } from "./Track"; import { ChannelDeletePacket, GuildShardPayload, ManagerUtils, MiniMap, SearchPlatform, SponsorBlockChaptersLoaded, SponsorBlockChapterStarted, SponsorBlockSegmentSkipped, SponsorBlockSegmentsLoaded, TrackEndEvent, TrackExceptionEvent, TrackStartEvent, TrackStuckEvent, VoicePacket, VoiceServer, VoiceState, WebSocketClosedEvent } from "./Utils"; -export interface LavalinkManager { - nodeManager: NodeManager; - utils: ManagerUtils; -} export interface BotClientOptions { /** Bot Client Id */ id: string; @@ -168,31 +164,186 @@ interface LavalinkManagerEvents { "ChaptersLoaded": (player: Player, track: Track | UnresolvedTrack, payload: SponsorBlockChaptersLoaded) => void; } export interface LavalinkManager { - options: ManagerOptions; + /** @private */ on(event: U, listener: LavalinkManagerEvents[U]): this; + /** @private */ emit(event: U, ...args: Parameters): boolean; } export declare class LavalinkManager extends EventEmitter { - static DefaultSources: Record; - static SourceLinksRegexes: Record; + /** The Options of LavalinkManager (changeable) */ + options: ManagerOptions; + /** LavalinkManager's NodeManager to manage all Nodes */ + nodeManager: NodeManager; + /** LavalinkManager's Utils Class */ + utils: ManagerUtils; + /** Wether the manager was initiated or not */ initiated: boolean; + /** All Players stored in a MiniMap */ readonly players: MiniMap; + /** + * Applies the options provided by the User + * @param options + * @returns + */ private applyOptions; + /** + * Validates the current manager's options + * @param options + */ private validateOptions; + /** + * Create the Lavalink Manager + * @param options + * + * @example + * ```ts + * //const client = new Client({...}); // create your BOT Client (e.g. via discord.js) + * client.lavalink = new LavalinkManager({ + * nodes: [ + * { + * authorization: "yourverystrongpassword", + * host: "localhost", + * port: 2333, + * id: "testnode" + * }, + * sendToShard(guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload), + * client: { + * id: process.env.CLIENT_ID, + * username: "TESTBOT" + * }, + * // optional Options: + * autoSkip: true, + * playerOptions: { + * applyVolumeAsFilter: false, + * clientBasedPositionUpdateInterval: 150, + * defaultSearchPlatform: "ytmsearch", + * volumeDecrementer: 0.75, + * //requesterTransformer: YourRequesterTransformerFunction, + * onDisconnect: { + * autoReconnect: true, + * destroyPlayer: false + * }, + * onEmptyQueue: { + * destroyAfterMs: 30_000, + * //autoPlayFunction: YourAutoplayFunction, + * }, + * useUnresolvedData: true + * }, + * queueOptions: { + * maxPreviousTracks: 25, + * //queueStore: yourCustomQueueStoreManagerClass, + * //queueChangesWatcher: yourCustomQueueChangesWatcherClass + * }, + * linksBlacklist: [], + * linksWhitelist: [], + * advancedOptions: { + * debugOptions: { + * noAudio: false, + * playerDestroy: { + * dontThrowError: false, + * debugLogs: false + * } + * } + * } + * ] + * }) + * ``` + */ constructor(options: ManagerOptions); - createPlayer(options: PlayerOptions): Player; + /** + * Get a Player from Lava + * @param guildId The guildId of the player + * + * @example + * ```ts + * const player = client.lavalink.getPlayer(interaction.guildId); + * ``` + * A quicker and easier way than doing: + * ```ts + * const player = client.lavalink.players.get(interaction.guildId); + * ``` + * @returns + */ getPlayer(guildId: string): Player; + /** + * Create a Music-Player. If a player exists, then it returns it before creating a new one + * @param options + * @returns + * + * @example + * ```ts + * const player = client.lavalink.createPlayer({ + * guildId: interaction.guildId, + * voiceChannelId: interaction.member.voice.channelId, + * // everything below is optional + * textChannelId: interaction.channelId, + * volume: 100, + * selfDeaf: true, + * selfMute: false, + * instaUpdateFiltersFix: true, + * applyVolumeAsFilter: false + * //only needed if you want to autopick node by region (configured by you) + * // vcRegion: interaction.member.voice.rtcRegion, + * // provide a specific node + * // node: client.lavalink.nodeManager.leastUsedNodes("memory")[0] + * }); + * ``` + */ + createPlayer(options: PlayerOptions): Player; + /** + * Destroy a player with optional destroy reason and disconnect it from the voice channel + * @param guildId + * @param destroyReason + * @returns + * + * @example + * ```ts + * client.lavalink.destroyPlayer(interaction.guildId, "forcefully destroyed the player"); + * // recommend to do it on the player tho: player.destroy("forcefully destroyed the player"); + * ``` + */ destroyPlayer(guildId: string, destroyReason?: string): Promise; + /** + * Delete's a player from the cache without destroying it on lavalink (only works when it's disconnected) + * @param guildId + * @returns + */ deletePlayer(guildId: string): boolean; + /** + * Checks wether the the lib is useable based on if any node is connected + */ get useable(): boolean; /** - * Initiates the Manager. + * Initiates the Manager, creates all nodes and connects all of them * @param clientData + * + * @example + * + * ```ts + * // on the bot ready event + * client.on("ready", () => { + * client.lavalink.init({ + * id: client.user.id, + * username: client.user.username + * }); + * }); + * ``` */ init(clientData: BotClientOptions): Promise; /** * Sends voice data to the Lavalink server. + * ! Without this the library won't work * @param data + * + * @example + * + * ```ts + * // on the bot "raw" event + * client.on("raw", (d) => { + * // required in order to send audio updates and register channel deletion etc. + * client.lavalink.sendRawData(d) + * }) + * ``` */ sendRawData(data: VoicePacket | VoiceServer | VoiceState | ChannelDeletePacket): Promise; } diff --git a/dist/esm/structures/LavalinkManager.js b/dist/esm/structures/LavalinkManager.js index 5dc6bf0..2ca8413 100644 --- a/dist/esm/structures/LavalinkManager.js +++ b/dist/esm/structures/LavalinkManager.js @@ -1,14 +1,24 @@ import { EventEmitter } from "events"; -import { DefaultSources, SourceLinksRegexes } from "./LavalinkManagerStatics"; import { NodeManager } from "./NodeManager"; import { DestroyReasons, Player } from "./Player"; import { DefaultQueueStore } from "./Queue"; import { ManagerUtils, MiniMap } from "./Utils"; export class LavalinkManager extends EventEmitter { - static DefaultSources = DefaultSources; - static SourceLinksRegexes = SourceLinksRegexes; + /** The Options of LavalinkManager (changeable) */ + options; + /** LavalinkManager's NodeManager to manage all Nodes */ + nodeManager; + /** LavalinkManager's Utils Class */ + utils; + /** Wether the manager was initiated or not */ initiated = false; + /** All Players stored in a MiniMap */ players = new MiniMap(); + /** + * Applies the options provided by the User + * @param options + * @returns + */ applyOptions(options) { this.options = { client: { @@ -56,6 +66,10 @@ export class LavalinkManager extends EventEmitter { }; return; } + /** + * Validates the current manager's options + * @param options + */ validateOptions(options) { if (typeof options?.sendToShard !== "function") throw new SyntaxError("ManagerOption.sendToShard was not provided, which is required!"); @@ -86,6 +100,64 @@ export class LavalinkManager extends EventEmitter { if (typeof options?.queueOptions?.maxPreviousTracks !== "number" || options?.queueOptions?.maxPreviousTracks < 0) options.queueOptions.maxPreviousTracks = 25; } + /** + * Create the Lavalink Manager + * @param options + * + * @example + * ```ts + * //const client = new Client({...}); // create your BOT Client (e.g. via discord.js) + * client.lavalink = new LavalinkManager({ + * nodes: [ + * { + * authorization: "yourverystrongpassword", + * host: "localhost", + * port: 2333, + * id: "testnode" + * }, + * sendToShard(guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload), + * client: { + * id: process.env.CLIENT_ID, + * username: "TESTBOT" + * }, + * // optional Options: + * autoSkip: true, + * playerOptions: { + * applyVolumeAsFilter: false, + * clientBasedPositionUpdateInterval: 150, + * defaultSearchPlatform: "ytmsearch", + * volumeDecrementer: 0.75, + * //requesterTransformer: YourRequesterTransformerFunction, + * onDisconnect: { + * autoReconnect: true, + * destroyPlayer: false + * }, + * onEmptyQueue: { + * destroyAfterMs: 30_000, + * //autoPlayFunction: YourAutoplayFunction, + * }, + * useUnresolvedData: true + * }, + * queueOptions: { + * maxPreviousTracks: 25, + * //queueStore: yourCustomQueueStoreManagerClass, + * //queueChangesWatcher: yourCustomQueueChangesWatcherClass + * }, + * linksBlacklist: [], + * linksWhitelist: [], + * advancedOptions: { + * debugOptions: { + * noAudio: false, + * playerDestroy: { + * dontThrowError: false, + * debugLogs: false + * } + * } + * } + * ] + * }) + * ``` + */ constructor(options) { super(); if (!options) @@ -97,6 +169,47 @@ export class LavalinkManager extends EventEmitter { // create classes this.nodeManager = new NodeManager(this); } + /** + * Get a Player from Lava + * @param guildId The guildId of the player + * + * @example + * ```ts + * const player = client.lavalink.getPlayer(interaction.guildId); + * ``` + * A quicker and easier way than doing: + * ```ts + * const player = client.lavalink.players.get(interaction.guildId); + * ``` + * @returns + */ + getPlayer(guildId) { + return this.players.get(guildId); + } + /** + * Create a Music-Player. If a player exists, then it returns it before creating a new one + * @param options + * @returns + * + * @example + * ```ts + * const player = client.lavalink.createPlayer({ + * guildId: interaction.guildId, + * voiceChannelId: interaction.member.voice.channelId, + * // everything below is optional + * textChannelId: interaction.channelId, + * volume: 100, + * selfDeaf: true, + * selfMute: false, + * instaUpdateFiltersFix: true, + * applyVolumeAsFilter: false + * //only needed if you want to autopick node by region (configured by you) + * // vcRegion: interaction.member.voice.rtcRegion, + * // provide a specific node + * // node: client.lavalink.nodeManager.leastUsedNodes("memory")[0] + * }); + * ``` + */ createPlayer(options) { const oldPlayer = this.getPlayer(options?.guildId); if (oldPlayer) @@ -105,15 +218,29 @@ export class LavalinkManager extends EventEmitter { this.players.set(newPlayer.guildId, newPlayer); return newPlayer; } - getPlayer(guildId) { - return this.players.get(guildId); - } + /** + * Destroy a player with optional destroy reason and disconnect it from the voice channel + * @param guildId + * @param destroyReason + * @returns + * + * @example + * ```ts + * client.lavalink.destroyPlayer(interaction.guildId, "forcefully destroyed the player"); + * // recommend to do it on the player tho: player.destroy("forcefully destroyed the player"); + * ``` + */ destroyPlayer(guildId, destroyReason) { const oldPlayer = this.getPlayer(guildId); if (!oldPlayer) return; return oldPlayer.destroy(destroyReason); } + /** + * Delete's a player from the cache without destroying it on lavalink (only works when it's disconnected) + * @param guildId + * @returns + */ deletePlayer(guildId) { const oldPlayer = this.getPlayer(guildId); if (!oldPlayer) @@ -127,12 +254,27 @@ export class LavalinkManager extends EventEmitter { } return this.players.delete(guildId); } + /** + * Checks wether the the lib is useable based on if any node is connected + */ get useable() { return this.nodeManager.nodes.filter(v => v.connected).size > 0; } /** - * Initiates the Manager. + * Initiates the Manager, creates all nodes and connects all of them * @param clientData + * + * @example + * + * ```ts + * // on the bot ready event + * client.on("ready", () => { + * client.lavalink.init({ + * id: client.user.id, + * username: client.user.username + * }); + * }); + * ``` */ async init(clientData) { if (this.initiated) @@ -162,7 +304,18 @@ export class LavalinkManager extends EventEmitter { } /** * Sends voice data to the Lavalink server. + * ! Without this the library won't work * @param data + * + * @example + * + * ```ts + * // on the bot "raw" event + * client.on("raw", (d) => { + * // required in order to send audio updates and register channel deletion etc. + * client.lavalink.sendRawData(d) + * }) + * ``` */ async sendRawData(data) { if (!this.initiated) { diff --git a/dist/esm/structures/Player.d.ts b/dist/esm/structures/Player.d.ts index ebf8c44..fbbd7ad 100644 --- a/dist/esm/structures/Player.d.ts +++ b/dist/esm/structures/Player.d.ts @@ -172,7 +172,7 @@ export declare class Player { * @param query Query for your data * @param requestUser */ - search(query: SearchQuery, requestUser: unknown): Promise; + search(query: SearchQuery, requestUser: unknown): Promise; /** * Pause the player */ diff --git a/dist/types/structures/Filters.d.ts b/dist/types/structures/Filters.d.ts index cea16e1..fdb2e11 100644 --- a/dist/types/structures/Filters.d.ts +++ b/dist/types/structures/Filters.d.ts @@ -61,27 +61,27 @@ export declare class FilterManager { */ setRate(rate?: number): Promise; /** - * Enabels / Disables the rotation effect, (Optional: provide your Own Data) + * Enables / Disables the rotation effect, (Optional: provide your Own Data) * @param rotationHz * @returns */ toggleRotation(rotationHz?: number): Promise; /** - * Enabels / Disables the Vibrato effect, (Optional: provide your Own Data) + * Enables / Disables the Vibrato effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleVibrato(frequency?: number, depth?: number): Promise; /** - * Enabels / Disables the Tremolo effect, (Optional: provide your Own Data) + * Enables / Disables the Tremolo effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns */ toggleTremolo(frequency?: number, depth?: number): Promise; /** - * Enabels / Disables the LowPass effect, (Optional: provide your Own Data) + * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param smoothing * @returns */ @@ -94,14 +94,14 @@ export declare class FilterManager { }; lavalinkFilterPlugin: { /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delay * @param decay * @returns */ toggleEcho: (delay?: number, decay?: number) => Promise; /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delays * @param gains * @returns @@ -109,7 +109,7 @@ export declare class FilterManager { toggleReverb: (delays?: number[], gains?: number[]) => Promise; }; /** - * Enables / Disabels a Nightcore-like filter Effect. Disables/Overwrides both: custom and Vaporwave Filter + * Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter * @param speed * @param pitch * @param rate @@ -117,7 +117,7 @@ export declare class FilterManager { */ toggleNightcore(speed?: number, pitch?: number, rate?: number): Promise; /** - * Enables / Disabels a Vaporwave-like filter Effect. Disables/Overwrides both: custom and nightcore Filter + * Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter * @param speed * @param pitch * @param rate diff --git a/dist/types/structures/LavalinkManager.d.ts b/dist/types/structures/LavalinkManager.d.ts index 1a524fa..c1cc103 100644 --- a/dist/types/structures/LavalinkManager.d.ts +++ b/dist/types/structures/LavalinkManager.d.ts @@ -6,10 +6,6 @@ import { DestroyReasonsType, Player, PlayerJson, PlayerOptions } from "./Player" import { ManagerQueueOptions } from "./Queue"; import { Track, UnresolvedTrack } from "./Track"; import { ChannelDeletePacket, GuildShardPayload, ManagerUtils, MiniMap, SearchPlatform, SponsorBlockChaptersLoaded, SponsorBlockChapterStarted, SponsorBlockSegmentSkipped, SponsorBlockSegmentsLoaded, TrackEndEvent, TrackExceptionEvent, TrackStartEvent, TrackStuckEvent, VoicePacket, VoiceServer, VoiceState, WebSocketClosedEvent } from "./Utils"; -export interface LavalinkManager { - nodeManager: NodeManager; - utils: ManagerUtils; -} export interface BotClientOptions { /** Bot Client Id */ id: string; @@ -168,31 +164,186 @@ interface LavalinkManagerEvents { "ChaptersLoaded": (player: Player, track: Track | UnresolvedTrack, payload: SponsorBlockChaptersLoaded) => void; } export interface LavalinkManager { - options: ManagerOptions; + /** @private */ on(event: U, listener: LavalinkManagerEvents[U]): this; + /** @private */ emit(event: U, ...args: Parameters): boolean; } export declare class LavalinkManager extends EventEmitter { - static DefaultSources: Record; - static SourceLinksRegexes: Record; + /** The Options of LavalinkManager (changeable) */ + options: ManagerOptions; + /** LavalinkManager's NodeManager to manage all Nodes */ + nodeManager: NodeManager; + /** LavalinkManager's Utils Class */ + utils: ManagerUtils; + /** Wether the manager was initiated or not */ initiated: boolean; + /** All Players stored in a MiniMap */ readonly players: MiniMap; + /** + * Applies the options provided by the User + * @param options + * @returns + */ private applyOptions; + /** + * Validates the current manager's options + * @param options + */ private validateOptions; + /** + * Create the Lavalink Manager + * @param options + * + * @example + * ```ts + * //const client = new Client({...}); // create your BOT Client (e.g. via discord.js) + * client.lavalink = new LavalinkManager({ + * nodes: [ + * { + * authorization: "yourverystrongpassword", + * host: "localhost", + * port: 2333, + * id: "testnode" + * }, + * sendToShard(guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload), + * client: { + * id: process.env.CLIENT_ID, + * username: "TESTBOT" + * }, + * // optional Options: + * autoSkip: true, + * playerOptions: { + * applyVolumeAsFilter: false, + * clientBasedPositionUpdateInterval: 150, + * defaultSearchPlatform: "ytmsearch", + * volumeDecrementer: 0.75, + * //requesterTransformer: YourRequesterTransformerFunction, + * onDisconnect: { + * autoReconnect: true, + * destroyPlayer: false + * }, + * onEmptyQueue: { + * destroyAfterMs: 30_000, + * //autoPlayFunction: YourAutoplayFunction, + * }, + * useUnresolvedData: true + * }, + * queueOptions: { + * maxPreviousTracks: 25, + * //queueStore: yourCustomQueueStoreManagerClass, + * //queueChangesWatcher: yourCustomQueueChangesWatcherClass + * }, + * linksBlacklist: [], + * linksWhitelist: [], + * advancedOptions: { + * debugOptions: { + * noAudio: false, + * playerDestroy: { + * dontThrowError: false, + * debugLogs: false + * } + * } + * } + * ] + * }) + * ``` + */ constructor(options: ManagerOptions); - createPlayer(options: PlayerOptions): Player; + /** + * Get a Player from Lava + * @param guildId The guildId of the player + * + * @example + * ```ts + * const player = client.lavalink.getPlayer(interaction.guildId); + * ``` + * A quicker and easier way than doing: + * ```ts + * const player = client.lavalink.players.get(interaction.guildId); + * ``` + * @returns + */ getPlayer(guildId: string): Player; + /** + * Create a Music-Player. If a player exists, then it returns it before creating a new one + * @param options + * @returns + * + * @example + * ```ts + * const player = client.lavalink.createPlayer({ + * guildId: interaction.guildId, + * voiceChannelId: interaction.member.voice.channelId, + * // everything below is optional + * textChannelId: interaction.channelId, + * volume: 100, + * selfDeaf: true, + * selfMute: false, + * instaUpdateFiltersFix: true, + * applyVolumeAsFilter: false + * //only needed if you want to autopick node by region (configured by you) + * // vcRegion: interaction.member.voice.rtcRegion, + * // provide a specific node + * // node: client.lavalink.nodeManager.leastUsedNodes("memory")[0] + * }); + * ``` + */ + createPlayer(options: PlayerOptions): Player; + /** + * Destroy a player with optional destroy reason and disconnect it from the voice channel + * @param guildId + * @param destroyReason + * @returns + * + * @example + * ```ts + * client.lavalink.destroyPlayer(interaction.guildId, "forcefully destroyed the player"); + * // recommend to do it on the player tho: player.destroy("forcefully destroyed the player"); + * ``` + */ destroyPlayer(guildId: string, destroyReason?: string): Promise; + /** + * Delete's a player from the cache without destroying it on lavalink (only works when it's disconnected) + * @param guildId + * @returns + */ deletePlayer(guildId: string): boolean; + /** + * Checks wether the the lib is useable based on if any node is connected + */ get useable(): boolean; /** - * Initiates the Manager. + * Initiates the Manager, creates all nodes and connects all of them * @param clientData + * + * @example + * + * ```ts + * // on the bot ready event + * client.on("ready", () => { + * client.lavalink.init({ + * id: client.user.id, + * username: client.user.username + * }); + * }); + * ``` */ init(clientData: BotClientOptions): Promise; /** * Sends voice data to the Lavalink server. + * ! Without this the library won't work * @param data + * + * @example + * + * ```ts + * // on the bot "raw" event + * client.on("raw", (d) => { + * // required in order to send audio updates and register channel deletion etc. + * client.lavalink.sendRawData(d) + * }) + * ``` */ sendRawData(data: VoicePacket | VoiceServer | VoiceState | ChannelDeletePacket): Promise; } diff --git a/dist/types/structures/Player.d.ts b/dist/types/structures/Player.d.ts index ebf8c44..fbbd7ad 100644 --- a/dist/types/structures/Player.d.ts +++ b/dist/types/structures/Player.d.ts @@ -172,7 +172,7 @@ export declare class Player { * @param query Query for your data * @param requestUser */ - search(query: SearchQuery, requestUser: unknown): Promise; + search(query: SearchQuery, requestUser: unknown): Promise; /** * Pause the player */ diff --git a/src/structures/Filters.ts b/src/structures/Filters.ts index 5f63ea6..a6b403f 100644 --- a/src/structures/Filters.ts +++ b/src/structures/Filters.ts @@ -376,7 +376,7 @@ export class FilterManager { return this.filters.custom; } /** - * Enabels / Disables the rotation effect, (Optional: provide your Own Data) + * Enables / Disables the rotation effect, (Optional: provide your Own Data) * @param rotationHz * @returns */ @@ -390,7 +390,7 @@ export class FilterManager { } /** - * Enabels / Disables the Vibrato effect, (Optional: provide your Own Data) + * Enables / Disables the Vibrato effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns @@ -405,7 +405,7 @@ export class FilterManager { return this.filters.vibrato; } /** - * Enabels / Disables the Tremolo effect, (Optional: provide your Own Data) + * Enables / Disables the Tremolo effect, (Optional: provide your Own Data) * @param frequency * @param depth * @returns @@ -420,7 +420,7 @@ export class FilterManager { return this.filters.tremolo; } /** - * Enabels / Disables the LowPass effect, (Optional: provide your Own Data) + * Enables / Disables the LowPass effect, (Optional: provide your Own Data) * @param smoothing * @returns */ @@ -513,7 +513,7 @@ export class FilterManager { } lavalinkFilterPlugin = { /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delay * @param decay * @returns @@ -537,7 +537,7 @@ export class FilterManager { }, /** - * Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) + * Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data) * @param delays * @param gains * @returns @@ -558,7 +558,7 @@ export class FilterManager { } } /** - * Enables / Disabels a Nightcore-like filter Effect. Disables/Overwrides both: custom and Vaporwave Filter + * Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter * @param speed * @param pitch * @param rate @@ -577,7 +577,7 @@ export class FilterManager { return this.filters.nightcore; } /** - * Enables / Disabels a Vaporwave-like filter Effect. Disables/Overwrides both: custom and nightcore Filter + * Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter * @param speed * @param pitch * @param rate diff --git a/tsDocs/assets/search.js b/tsDocs/assets/search.js index 7c58060..21b9e7a 100644 --- a/tsDocs/assets/search.js +++ b/tsDocs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/tsDocs/classes/Filters.FilterManager.html b/tsDocs/classes/Filters.FilterManager.html index 7087bc2..71f67ec 100644 --- a/tsDocs/classes/Filters.FilterManager.html +++ b/tsDocs/classes/Filters.FilterManager.html @@ -1,5 +1,5 @@ FilterManager | lavalink-client

The FilterManager for each player

-

Constructors

Constructors

Properties

data: FilterData = ...

The Filter Data sent to Lavalink, only if the filter is enabled (ofc.)

-
equalizerBands: EQBand[] = []

The Equalizer bands currently applied to the Lavalink Server

-
filterUpdatedState: number = 0

Private Util for the instaFix Filters option

-
filters: PlayerFilters = ...

All "Active" / "disabled" Player Filters

-
lavalinkFilterPlugin: {
    toggleEcho: ((delay?, decay?) => Promise<boolean>);
    toggleReverb: ((delays?, gains?) => Promise<boolean>);
} = ...

Type declaration

  • toggleEcho: ((delay?, decay?) => Promise<boolean>)
      • (delay?, decay?): Promise<boolean>
      • Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data)

        -

        Parameters

        • delay: number = 4
        • decay: number = 0.8

        Returns Promise<boolean>

  • toggleReverb: ((delays?, gains?) => Promise<boolean>)
      • (delays?, gains?): Promise<boolean>
      • Enabels / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data)

        -

        Parameters

        • delays: number[] = ...
        • gains: number[] = ...

        Returns Promise<boolean>

lavalinkLavaDspxPlugin: {
    toggleEcho: ((decay?, echoLength?) => Promise<boolean>);
    toggleHighPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>);
    toggleLowPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>);
    toggleNormalization: ((maxAmplitude?, adaptive?) => Promise<boolean>);
} = ...

Type declaration

  • toggleEcho: ((decay?, echoLength?) => Promise<boolean>)
      • (decay?, echoLength?): Promise<boolean>
      • Parameters

        • decay: number = 0.5
        • echoLength: number = 0.5

        Returns Promise<boolean>

  • toggleHighPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>)
      • (boostFactor?, cutoffFrequency?): Promise<boolean>
      • Parameters

        • boostFactor: number = 1.0
        • cutoffFrequency: number = 80

        Returns Promise<boolean>

  • toggleLowPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>)
      • (boostFactor?, cutoffFrequency?): Promise<boolean>
      • Parameters

        • boostFactor: number = 1.0
        • cutoffFrequency: number = 80

        Returns Promise<boolean>

  • toggleNormalization: ((maxAmplitude?, adaptive?) => Promise<boolean>)
      • (maxAmplitude?, adaptive?): Promise<boolean>
      • Parameters

        • maxAmplitude: number = 0.75
        • adaptive: boolean = true

        Returns Promise<boolean>

player: Player

The Player assigned to this Filter Manager

-

Methods

  • Apply Player filters for lavalink filter sending data, if the filter is enabled / not

    -

    Returns Promise<void>

  • Checks if the filters are correctly stated (active / not-active)

    -

    Parameters

    Returns boolean

  • Function to find out if currently there is a custom timescamle etc. filter applied

    -

    Returns boolean

  • Set custom filter.timescale#pitch . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal

    -

    Parameters

    • pitch: number = 1

    Returns Promise<boolean>

  • Set custom filter.timescale#rate . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal

    -

    Parameters

    • rate: number = 1

    Returns Promise<boolean>

  • Set custom filter.timescale#speed . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal

    -

    Parameters

    • speed: number = 1

    Returns Promise<boolean>

  • Set the Filter Volume

    -

    Parameters

    • volume: number

    Returns Promise<boolean>

  • Enable / Disables a Karaoke like Filter Effect

    -

    Parameters

    • level: number = 1
    • monoLevel: number = 1
    • filterBand: number = 220
    • filterWidth: number = 100

    Returns Promise<boolean>

  • Enabels / Disables the LowPass effect, (Optional: provide your Own Data)

    -

    Parameters

    • smoothing: number = 20

    Returns Promise<boolean>

  • Enables / Disabels a Nightcore-like filter Effect. Disables/Overwrides both: custom and Vaporwave Filter

    -

    Parameters

    • speed: number = 1.289999523162842
    • pitch: number = 1.289999523162842
    • rate: number = 0.9365999523162842

    Returns Promise<boolean>

  • Enabels / Disables the rotation effect, (Optional: provide your Own Data)

    -

    Parameters

    • rotationHz: number = 0.2

    Returns Promise<boolean>

  • Enabels / Disables the Tremolo effect, (Optional: provide your Own Data)

    -

    Parameters

    • frequency: number = 4
    • depth: number = 0.8

    Returns Promise<boolean>

  • Enables / Disabels a Vaporwave-like filter Effect. Disables/Overwrides both: custom and nightcore Filter

    -

    Parameters

    • speed: number = 0.8500000238418579
    • pitch: number = 0.800000011920929
    • rate: number = 1

    Returns Promise<boolean>

  • Enabels / Disables the Vibrato effect, (Optional: provide your Own Data)

    -

    Parameters

    • frequency: number = 10
    • depth: number = 1

    Returns Promise<boolean>

Generated using TypeDoc

\ No newline at end of file +

Parameters

Returns FilterManager

Properties

data: FilterData = ...

The Filter Data sent to Lavalink, only if the filter is enabled (ofc.)

+
equalizerBands: EQBand[] = []

The Equalizer bands currently applied to the Lavalink Server

+
filterUpdatedState: number = 0

Private Util for the instaFix Filters option

+
filters: PlayerFilters = ...

All "Active" / "disabled" Player Filters

+
lavalinkFilterPlugin: {
    toggleEcho: ((delay?, decay?) => Promise<boolean>);
    toggleReverb: ((delays?, gains?) => Promise<boolean>);
} = ...

Type declaration

  • toggleEcho: ((delay?, decay?) => Promise<boolean>)
      • (delay?, decay?): Promise<boolean>
      • Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data)

        +

        Parameters

        • delay: number = 4
        • decay: number = 0.8

        Returns Promise<boolean>

  • toggleReverb: ((delays?, gains?) => Promise<boolean>)
      • (delays?, gains?): Promise<boolean>
      • Enables / Disables the Echo effect, IMPORTANT! Only works with the correct Lavalink Plugin installed. (Optional: provide your Own Data)

        +

        Parameters

        • delays: number[] = ...
        • gains: number[] = ...

        Returns Promise<boolean>

lavalinkLavaDspxPlugin: {
    toggleEcho: ((decay?, echoLength?) => Promise<boolean>);
    toggleHighPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>);
    toggleLowPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>);
    toggleNormalization: ((maxAmplitude?, adaptive?) => Promise<boolean>);
} = ...

Type declaration

  • toggleEcho: ((decay?, echoLength?) => Promise<boolean>)
      • (decay?, echoLength?): Promise<boolean>
      • Parameters

        • decay: number = 0.5
        • echoLength: number = 0.5

        Returns Promise<boolean>

  • toggleHighPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>)
      • (boostFactor?, cutoffFrequency?): Promise<boolean>
      • Parameters

        • boostFactor: number = 1.0
        • cutoffFrequency: number = 80

        Returns Promise<boolean>

  • toggleLowPass: ((boostFactor?, cutoffFrequency?) => Promise<boolean>)
      • (boostFactor?, cutoffFrequency?): Promise<boolean>
      • Parameters

        • boostFactor: number = 1.0
        • cutoffFrequency: number = 80

        Returns Promise<boolean>

  • toggleNormalization: ((maxAmplitude?, adaptive?) => Promise<boolean>)
      • (maxAmplitude?, adaptive?): Promise<boolean>
      • Parameters

        • maxAmplitude: number = 0.75
        • adaptive: boolean = true

        Returns Promise<boolean>

player: Player

The Player assigned to this Filter Manager

+

Methods

  • Apply Player filters for lavalink filter sending data, if the filter is enabled / not

    +

    Returns Promise<void>

  • Checks if the filters are correctly stated (active / not-active)

    +

    Parameters

    Returns boolean

  • Function to find out if currently there is a custom timescamle etc. filter applied

    +

    Returns boolean

  • Set custom filter.timescale#pitch . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal

    +

    Parameters

    • pitch: number = 1

    Returns Promise<boolean>

  • Set custom filter.timescale#rate . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal

    +

    Parameters

    • rate: number = 1

    Returns Promise<boolean>

  • Set custom filter.timescale#speed . This method disabled both: nightcore & vaporwave. use 1 to reset it to normal

    +

    Parameters

    • speed: number = 1

    Returns Promise<boolean>

  • Set the Filter Volume

    +

    Parameters

    • volume: number

    Returns Promise<boolean>

  • Enable / Disables a Karaoke like Filter Effect

    +

    Parameters

    • level: number = 1
    • monoLevel: number = 1
    • filterBand: number = 220
    • filterWidth: number = 100

    Returns Promise<boolean>

  • Enables / Disables the LowPass effect, (Optional: provide your Own Data)

    +

    Parameters

    • smoothing: number = 20

    Returns Promise<boolean>

  • Enables / Disables a Nightcore-like filter Effect. Disables/Overrides both: custom and Vaporwave Filter

    +

    Parameters

    • speed: number = 1.289999523162842
    • pitch: number = 1.289999523162842
    • rate: number = 0.9365999523162842

    Returns Promise<boolean>

  • Enables / Disables the rotation effect, (Optional: provide your Own Data)

    +

    Parameters

    • rotationHz: number = 0.2

    Returns Promise<boolean>

  • Enables / Disables the Tremolo effect, (Optional: provide your Own Data)

    +

    Parameters

    • frequency: number = 4
    • depth: number = 0.8

    Returns Promise<boolean>

  • Enables / Disables a Vaporwave-like filter Effect. Disables/Overrides both: custom and nightcore Filter

    +

    Parameters

    • speed: number = 0.8500000238418579
    • pitch: number = 0.800000011920929
    • rate: number = 1

    Returns Promise<boolean>

  • Enables / Disables the Vibrato effect, (Optional: provide your Own Data)

    +

    Parameters

    • frequency: number = 10
    • depth: number = 1

    Returns Promise<boolean>

Generated using TypeDoc

\ No newline at end of file diff --git a/tsDocs/classes/LavalinkManager.LavalinkManager.html b/tsDocs/classes/LavalinkManager.LavalinkManager.html index 03f884b..e975385 100644 --- a/tsDocs/classes/LavalinkManager.LavalinkManager.html +++ b/tsDocs/classes/LavalinkManager.LavalinkManager.html @@ -1,4 +1,4 @@ -LavalinkManager | lavalink-client

Hierarchy

  • EventEmitter
    • LavalinkManager

Constructors

constructor +LavalinkManager | lavalink-client

Hierarchy

  • EventEmitter
    • LavalinkManager

Constructors

Properties

initiated nodeManager options @@ -41,12 +41,12 @@

Constructors

  • Create the Lavalink Manager

    Parameters

    Returns LavalinkManager

    Example

    //const client = new Client({...}); // create your BOT Client (e.g. via discord.js)
    client.lavalink = new LavalinkManager({
    nodes: [
    {
    authorization: "yourverystrongpassword",
    host: "localhost",
    port: 2333,
    id: "testnode"
    },
    sendToShard(guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload),
    client: {
    id: process.env.CLIENT_ID,
    username: "TESTBOT"
    },
    // optional Options:
    autoSkip: true,
    playerOptions: {
    applyVolumeAsFilter: false,
    clientBasedPositionUpdateInterval: 150,
    defaultSearchPlatform: "ytmsearch",
    volumeDecrementer: 0.75,
    //requesterTransformer: YourRequesterTransformerFunction,
    onDisconnect: {
    autoReconnect: true,
    destroyPlayer: false
    },
    onEmptyQueue: {
    destroyAfterMs: 30_000,
    //autoPlayFunction: YourAutoplayFunction,
    },
    useUnresolvedData: true
    },
    queueOptions: {
    maxPreviousTracks: 25,
    //queueStore: yourCustomQueueStoreManagerClass,
    //queueChangesWatcher: yourCustomQueueChangesWatcherClass
    },
    linksBlacklist: [],
    linksWhitelist: [],
    advancedOptions: {
    debugOptions: {
    noAudio: false,
    playerDestroy: {
    dontThrowError: false,
    debugLogs: false
    }
    }
    }
    ]
    })
    -

Properties

initiated: boolean = false

Wether the manager was initiated or not

-
nodeManager: NodeManager

LavalinkManager's NodeManager to manage all Nodes

-

The Options of LavalinkManager (changeable)

-
players: MiniMap<string, Player> = ...

All Players stored in a MiniMap

-

LavalinkManager's Utils Class

-
captureRejectionSymbol: typeof captureRejectionSymbol

Value: Symbol.for('nodejs.rejection')

+

Properties

initiated: boolean = false

Wether the manager was initiated or not

+
nodeManager: NodeManager

LavalinkManager's NodeManager to manage all Nodes

+

The Options of LavalinkManager (changeable)

+
players: MiniMap<string, Player> = ...

All Players stored in a MiniMap

+

LavalinkManager's Utils Class

+
captureRejectionSymbol: typeof captureRejectionSymbol

Value: Symbol.for('nodejs.rejection')

See how to write a custom rejection handler.

Since

v13.4.0, v12.16.0

captureRejections: boolean

Value: boolean

@@ -79,17 +79,17 @@ regular 'error' listener is installed.

Since

v13.6.0, v12.17.0

Accessors

Methods

Methods

  • Alias for emitter.on(eventName, listener).

    Parameters

    • eventName: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns LavalinkManager

    Since

    v0.1.26

  • Create a Music-Player. If a player exists, then it returns it before creating a new one

    Parameters

    Returns Player

    Example

    const player = client.lavalink.createPlayer({
    guildId: interaction.guildId,
    voiceChannelId: interaction.member.voice.channelId,
    // everything below is optional
    textChannelId: interaction.channelId,
    volume: 100,
    selfDeaf: true,
    selfMute: false,
    instaUpdateFiltersFix: true,
    applyVolumeAsFilter: false
    //only needed if you want to autopick node by region (configured by you)
    // vcRegion: interaction.member.voice.rtcRegion,
    // provide a specific node
    // node: client.lavalink.nodeManager.leastUsedNodes("memory")[0]
    });
    -
  • Delete's a player from the cache without destroying it on lavalink (only works when it's disconnected)

    -

    Parameters

    • guildId: string

    Returns boolean

  • Delete's a player from the cache without destroying it on lavalink (only works when it's disconnected)

    +

    Parameters

    • guildId: string

    Returns boolean

  • Destroy a player with optional destroy reason and disconnect it from the voice channel

    Parameters

    • guildId: string
    • Optional destroyReason: string

    Returns Promise<Player>

    Example

    client.lavalink.destroyPlayer(interaction.guildId, "forcefully destroyed the player");
    // recommend to do it on the player tho: player.destroy("forcefully destroyed the player");
    -
  • Private

    Type Parameters

    • U extends keyof LavalinkManagerEvents

    Parameters

    • event: U
    • Rest ...args: Parameters<LavalinkManagerEvents[U]>

    Returns boolean

  • Private

    Type Parameters

    • U extends keyof LavalinkManagerEvents

    Parameters

    • event: U
    • Rest ...args: Parameters<LavalinkManagerEvents[U]>

    Returns boolean

  • Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

    import { EventEmitter } from 'node:events';

    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ]
    @@ -104,10 +104,10 @@

    A quicker and easier way than doing:

    const player = client.lavalink.players.get(interaction.guildId);
     
    -
  • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

    Parameters

    • eventName: string | symbol

      The name of the event being listened for

      @@ -119,7 +119,7 @@

      Parameters

      • eventName: string | symbol

      Returns Function[]

      Since

      v0.1.26

  • Alias for emitter.removeListener().

    Parameters

    • eventName: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns LavalinkManager

    Since

    v10.0.0

    -
  • Adds a one-timelistener function for the event named eventName. The +

  • Adds a one-timelistener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

    server.once('connection', (stream) => {
    console.log('Ah, we have our first user!');
    });
    @@ -188,14 +188,14 @@ ! Without this the library won't work

    Returns Promise<void>

    Example

    // on the bot "raw" event
    client.on("raw", (d) => {
    // required in order to send audio updates and register channel deletion etc.
    client.lavalink.sendRawData(d)
    })
    -
  • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    Returns a reference to the EventEmitter, so that calls can be chained.

    Parameters

    • n: number

    Returns LavalinkManager

    Since

    v0.3.5

Returns LavalinkNode

Properties

NodeManager: NodeManager = null

The Node Manager of this Node

+
calls: number = 0

The amount of rest calls the node has made.

+
decode: {
    multipleTracks: ((encodeds, requester) => Promise<Track[]>);
    singleTrack: ((encoded, requester) => Promise<Track>);
} = ...

Decode Track or Tracks

Type declaration

  • multipleTracks: ((encodeds, requester) => Promise<Track[]>)
      • (encodeds, requester): Promise<Track[]>
      • Parameters

        • encodeds: string[]

          Decodes multiple tracks into their info

        • requester: unknown

        Returns Promise<Track[]>

  • singleTrack: ((encoded, requester) => Promise<Track>)
      • (encoded, requester): Promise<Track>
      • Decode a single track into its info, where BASE64 is the encoded base64 data.

        -

        Parameters

        • encoded: string
        • requester: unknown

        Returns Promise<Track>

info: LavalinkInfo = null

Actual Lavalink Information of the Node

-

The provided Options of the Node

-
reconnectAttempts: number = 1

The Reconnection Attempt counter

-
reconnectTimeout?: Timeout = undefined

The Reconnection Timeout

-
rest: Pool

The Rest Server for this Lavalink

-
resuming: {
    enabled: boolean;
    timeout: number;
} = ...

Wether the node resuming is enabled or not

-

Type declaration

  • enabled: boolean
  • timeout: number
routePlannerApi: {
    getStatus: (() => Promise<RoutePlanner>);
    unmarkAllFailedAddresses: (() => Promise<unknown>);
    unmarkFailedAddress: ((address) => Promise<void>);
} = ...

Lavalink's Route Planner Api

+

Parameters

  • encoded: string
  • requester: unknown

Returns Promise<Track>

info: LavalinkInfo = null

Actual Lavalink Information of the Node

+

The provided Options of the Node

+
reconnectAttempts: number = 1

The Reconnection Attempt counter

+
reconnectTimeout?: Timeout = undefined

The Reconnection Timeout

+
rest: Pool

The Rest Server for this Lavalink

+
resuming: {
    enabled: boolean;
    timeout: number;
} = ...

Wether the node resuming is enabled or not

+

Type declaration

  • enabled: boolean
  • timeout: number
routePlannerApi: {
    getStatus: (() => Promise<RoutePlanner>);
    unmarkAllFailedAddresses: (() => Promise<unknown>);
    unmarkFailedAddress: ((address) => Promise<void>);
} = ...

Lavalink's Route Planner Api

Type declaration

  • getStatus: (() => Promise<RoutePlanner>)
  • unmarkAllFailedAddresses: (() => Promise<unknown>)
      • (): Promise<unknown>
      • Release all blacklisted IP addresses into pool of IPs

        Returns Promise<unknown>

  • unmarkFailedAddress: ((address) => Promise<void>)
      • (address): Promise<void>
      • Release blacklisted IP address into pool of IPs

        Parameters

        • address: string

          IP address

          -

        Returns Promise<void>

sessionId?: string = null
socket: WebSocket = null

The Socket of the Lavalink

-
stats: NodeStats = ...
version: string = "v4"

Version of what the Lavalink Server should be

-

Accessors

Methods

  • Connect to the Lavalink Node

    +

Returns Promise<void>

sessionId?: string = null
socket: WebSocket = null

The Socket of the Lavalink

+
stats: NodeStats = ...
version: string = "v4"

Version of what the Lavalink Server should be

+

Accessors

Methods

  • Connect to the Lavalink Node

    Parameters

    • Optional sessionId: string

      Provide the Session Id of the previous connection, to resume the node and it's player(s)

      -

    Returns void

  • Destroys the Node-Connection (Websocket) and all player's of the node

    -

    Parameters

    • Optional destroyReason: string
    • deleteNode: boolean = true

    Returns void

  • Destroys the Player on the Lavalink Server

    -

    Parameters

    • guildId: any

    Returns Promise<unknown>

  • Parameters

    • payload: {
          guildId: string;
          length: number;
          op: "event";
          type: "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | "SegmentSkipped" | "SegmentsLoaded" | "ChaptersLoaded" | "ChapterStarted";
          [iterator](): IterableIterator<string>;
          anchor(name): string;
          at(index): string;
          big(): string;
          blink(): string;
          bold(): string;
          charAt(pos): string;
          charCodeAt(index): number;
          codePointAt(pos): number;
          concat(...strings): string;
          endsWith(searchString, endPosition?): boolean;
          fixed(): string;
          fontcolor(color): string;
          fontsize(size): string;
          fontsize(size): string;
          includes(searchString, position?): boolean;
          indexOf(searchString, position?): number;
          italics(): string;
          lastIndexOf(searchString, position?): number;
          link(url): string;
          localeCompare(that): number;
          localeCompare(that, locales?, options?): number;
          match(regexp): RegExpMatchArray;
          match(matcher): RegExpMatchArray;
          matchAll(regexp): IterableIterator<RegExpMatchArray>;
          normalize(form): string;
          normalize(form?): string;
          padEnd(maxLength, fillString?): string;
          padStart(maxLength, fillString?): string;
          repeat(count): string;
          replace(searchValue, replaceValue): string;
          replace(searchValue, replacer): string;
          replace(searchValue, replaceValue): string;
          replace(searchValue, replacer): string;
          replaceAll(searchValue, replaceValue): string;
          replaceAll(searchValue, replacer): string;
          search(regexp): number;
          search(searcher): number;
          slice(start?, end?): string;
          small(): string;
          split(separator, limit?): string[];
          split(splitter, limit?): string[];
          startsWith(searchString, position?): boolean;
          strike(): string;
          sub(): string;
          substr(from, length?): string;
          substring(start, end?): string;
          sup(): string;
          toLocaleLowerCase(locales?): string;
          toLocaleUpperCase(locales?): string;
          toLowerCase(): string;
          toString(): string;
          toUpperCase(): string;
          trim(): string;
          trimEnd(): string;
          trimLeft(): string;
          trimRight(): string;
          trimStart(): string;
          valueOf(): string;
          valueOf(): Object;
      }
      • guildId: string
      • Readonly length: number

        Returns the length of a String object.

        +

    Returns void

  • Destroys the Node-Connection (Websocket) and all player's of the node

    +

    Parameters

    • Optional destroyReason: string
    • deleteNode: boolean = true

    Returns void

  • Destroys the Player on the Lavalink Server

    +

    Parameters

    • guildId: any

    Returns Promise<unknown>

  • Parameters

    • payload: {
          guildId: string;
          length: number;
          op: "event";
          type: "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | "SegmentSkipped" | "SegmentsLoaded" | "ChaptersLoaded" | "ChapterStarted";
          [iterator](): IterableIterator<string>;
          anchor(name): string;
          at(index): string;
          big(): string;
          blink(): string;
          bold(): string;
          charAt(pos): string;
          charCodeAt(index): number;
          codePointAt(pos): number;
          concat(...strings): string;
          endsWith(searchString, endPosition?): boolean;
          fixed(): string;
          fontcolor(color): string;
          fontsize(size): string;
          fontsize(size): string;
          includes(searchString, position?): boolean;
          indexOf(searchString, position?): number;
          italics(): string;
          lastIndexOf(searchString, position?): number;
          link(url): string;
          localeCompare(that): number;
          localeCompare(that, locales?, options?): number;
          match(regexp): RegExpMatchArray;
          match(matcher): RegExpMatchArray;
          matchAll(regexp): IterableIterator<RegExpMatchArray>;
          normalize(form): string;
          normalize(form?): string;
          padEnd(maxLength, fillString?): string;
          padStart(maxLength, fillString?): string;
          repeat(count): string;
          replace(searchValue, replaceValue): string;
          replace(searchValue, replacer): string;
          replace(searchValue, replaceValue): string;
          replace(searchValue, replacer): string;
          replaceAll(searchValue, replaceValue): string;
          replaceAll(searchValue, replacer): string;
          search(regexp): number;
          search(searcher): number;
          slice(start?, end?): string;
          small(): string;
          split(separator, limit?): string[];
          split(splitter, limit?): string[];
          startsWith(searchString, position?): boolean;
          strike(): string;
          sub(): string;
          substr(from, length?): string;
          substring(start, end?): string;
          sup(): string;
          toLocaleLowerCase(locales?): string;
          toLocaleUpperCase(locales?): string;
          toLowerCase(): string;
          toString(): string;
          toUpperCase(): string;
          trim(): string;
          trimEnd(): string;
          trimLeft(): string;
          trimRight(): string;
          trimStart(): string;
          valueOf(): string;
          valueOf(): Object;
      }
      • guildId: string
      • Readonly length: number

        Returns the length of a String object.

      • op: "event"
      • type: "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | "SegmentSkipped" | "SegmentsLoaded" | "ChaptersLoaded" | "ChapterStarted"
      • [iterator]:function
        • Iterator

          Returns IterableIterator<string>

      • anchor:function
        • Returns an <a> HTML anchor element and sets the name attribute to the text value

          Parameters

          • name: string

          Returns string

          Deprecated

          A legacy feature for browser compatibility

          @@ -236,20 +236,20 @@
      • trimStart:function
        • Removes the leading white space and line terminator characters from a string.

          Returns string

      • valueOf:function
        • Returns the primitive value of the specified object.

          Returns string

        • Returns the primitive value of the specified object.

          -

          Returns Object

    Returns Promise<void>

  • Raw Request util function

    +

    Returns Object

Returns Promise<void>

  • Raw Request util function

    Parameters

    • endpoint: string

      endpoint string

    • Optional modify: ModifyRequest

      modify the request

      -

    Returns Promise<{
        options: RequestOptions;
        request: ResponseData;
    }>

  • Makes an API call to the Node

    +

Returns Promise<{
    options: RequestOptions;
    request: ResponseData;
}>

  • Makes an API call to the Node

    Parameters

    • endpoint: string

      The endpoint that we will make the call to

    • Optional modify: ModifyRequest

      Used to modify the request before being sent

    • parseAsText: boolean = false

    Returns Promise<unknown>

    The returned data

    -
  • Search something raw on the node, please note only add tracks to players of that node

    Parameters

    • query: SearchQuery

      SearchQuery Object

    • requestUser: unknown

      Request User for creating the player(s)

    Returns Promise<SearchResult>

    Searchresult

    -

Generated using TypeDoc

\ No newline at end of file +

Returns Promise<InvalidLavalinkRestRequest | Session>

Generated using TypeDoc

\ No newline at end of file diff --git a/tsDocs/classes/NodeManager.NodeManager.html b/tsDocs/classes/NodeManager.NodeManager.html index c6b6de1..9f61d0d 100644 --- a/tsDocs/classes/NodeManager.NodeManager.html +++ b/tsDocs/classes/NodeManager.NodeManager.html @@ -1,4 +1,4 @@ -NodeManager | lavalink-client

Hierarchy

  • EventEmitter
    • NodeManager

Constructors

constructor +NodeManager | lavalink-client

Hierarchy

  • EventEmitter
    • NodeManager

Constructors

Properties

LavalinkManager: LavalinkManager
nodes: MiniMap<string, LavalinkNode> = ...
captureRejectionSymbol: typeof captureRejectionSymbol

Value: Symbol.for('nodejs.rejection')

+

Constructors

Properties

LavalinkManager: LavalinkManager
nodes: MiniMap<string, LavalinkNode> = ...
captureRejectionSymbol: typeof captureRejectionSymbol

Value: Symbol.for('nodejs.rejection')

See how to write a custom rejection handler.

Since

v13.4.0, v12.16.0

captureRejections: boolean

Value: boolean

@@ -68,10 +68,10 @@

Parameters

  • eventName: string | symbol
  • listener: ((...args) => void)
      • (...args): void
      • Parameters

        • Rest ...args: any[]

        Returns void

Returns NodeManager

Since

v0.1.26

  • Disconnects all Nodes from lavalink ws sockets

    Parameters

    • deleteAllNodes: boolean = false

      if the nodes should also be deleted from nodeManager.nodes

    Returns Promise<number>

    amount of disconnected Nodes

    -
  • Type Parameters

    • U extends keyof NodeManagerEvents

    Parameters

    • event: U
    • Rest ...args: Parameters<NodeManagerEvents[U]>

    Returns boolean

  • Type Parameters

    • U extends keyof NodeManagerEvents

    Parameters

    • event: U
    • Rest ...args: Parameters<NodeManagerEvents[U]>

    Returns boolean

  • Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

    import { EventEmitter } from 'node:events';

    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ]
    @@ -79,7 +79,7 @@
  • Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    Returns number

    Since

    v1.0.0

    -
  • Returns the number of listeners listening for the event named eventName. +

  • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

    Parameters

    • eventName: string | symbol

      The name of the event being listened for

      @@ -91,7 +91,7 @@

      Parameters

      • eventName: string | symbol

      Returns Function[]

      Since

      v0.1.26

  • Alias for emitter.removeListener().

    Parameters

    • eventName: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns NodeManager

    Since

    v10.0.0

    -
  • Adds a one-timelistener function for the event named eventName. The +

  • Adds a one-timelistener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

    server.once('connection', (stream) => {
    console.log('Ah, we have our first user!');
    });
    @@ -128,7 +128,7 @@

    Parameters

    • eventName: string | symbol

    Returns Function[]

    Since

    v9.4.0

  • Parameters

    • data: {
          selfDeaf?: boolean;
          selfMute?: boolean;
          voiceChannelId?: string;
      }
      • Optional selfDeaf?: boolean
      • Optional selfMute?: boolean
      • Optional voiceChannelId?: string

    Returns Promise<Player>

  • Destroy the player and disconnect from the voice channel

    +

    Parameters

    • Optional reason: string
    • disconnect: boolean = true

    Returns Promise<Player>

  • Disconnects the Player from the Voice Channel, but keeps the player in the cache

    Parameters

    • force: boolean = false

      If false it throws an error, if player thinks it's already disconnected

      -

    Returns Promise<Player>

  • Play the next track from the queue / a specific track, with playoptions for Lavalink

    -

    Parameters

    Returns any

  • Set the Volume for the Player

    +

Returns Promise<Player>

  • Play the next track from the queue / a specific track, with playoptions for Lavalink

    +

    Parameters

    Returns any

  • Set the Volume for the Player

    Parameters

    • volume: number

      The Volume in percent

    • ignoreVolumeDecrementer: boolean = false

      If it should ignore the volumedecrementer option

      -

    Returns Promise<Player>

  • Skip the current song, or a specific amount of songs

    -

    Parameters

    • skipTo: number = 0
    • throwError: boolean = true

    Returns Promise<any>

  • Clears the queue and stops playing. Does not destroy the Player and not leave the channel

    -

    Parameters

    • clearQueue: boolean = true
    • executeAutoplay: boolean = false

    Returns Promise<Player>

Generated using TypeDoc

\ No newline at end of file +

Returns Promise<Player>

  • Skip the current song, or a specific amount of songs

    +

    Parameters

    • skipTo: number = 0
    • throwError: boolean = true

    Returns Promise<any>

  • Clears the queue and stops playing. Does not destroy the Player and not leave the channel

    +

    Parameters

    • clearQueue: boolean = true
    • executeAutoplay: boolean = false

    Returns Promise<Player>

Generated using TypeDoc

\ No newline at end of file diff --git a/tsDocs/classes/Queue.DefaultQueueStore.html b/tsDocs/classes/Queue.DefaultQueueStore.html index f32b99c..449a85d 100644 --- a/tsDocs/classes/Queue.DefaultQueueStore.html +++ b/tsDocs/classes/Queue.DefaultQueueStore.html @@ -1,13 +1,13 @@ -DefaultQueueStore | lavalink-client

Implements

Constructors

constructor +DefaultQueueStore | lavalink-client

Implements

Constructors

Properties

Methods

Constructors

Properties

data: MiniMap<unknown, unknown> = ...

Methods

  • Parameters

    • value: any

    Returns Promise<any>

    Async

    Transform the value(s) inside of the QueueStoreManager (IF YOU DON'T NEED PARSING/STRINGIFY, then just return the value)

    -

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

data: MiniMap<unknown, unknown> = ...

Methods

  • Parameters

    • value: any

    Returns Promise<any>

    Async

    Transform the value(s) inside of the QueueStoreManager (IF YOU DON'T NEED PARSING/STRINGIFY, then just return the value)

    +

Generated using TypeDoc

\ No newline at end of file diff --git a/tsDocs/classes/Queue.Queue.html b/tsDocs/classes/Queue.Queue.html index 9e5dc4b..d5b5f5f 100644 --- a/tsDocs/classes/Queue.Queue.html +++ b/tsDocs/classes/Queue.Queue.html @@ -1,4 +1,4 @@ -Queue | lavalink-client

Constructors

constructor +Queue | lavalink-client

Constructors

Properties

QueueSaver current guildId @@ -11,19 +11,19 @@

Methods

Constructors

Properties

QueueSaver: QueueSaver = null
current: Track = null
guildId: string = ""
managerUtils: ManagerUtils = ...
options: {
    maxPreviousTracks: number;
} = ...

Type declaration

  • maxPreviousTracks: number
previous: Track[] = []
queueChanges: QueueChangesWatcher
tracks: (Track | UnresolvedTrack)[] = []
utils: {
    destroy: (() => Promise<unknown>);
    save: (() => Promise<unknown>);
    sync: ((override?, dontSyncCurrent?) => Promise<void>);
    toJSON: (() => StoredQueue);
    totalDuration: (() => number);
} = ...

Utils for a Queue

+

Constructors

Properties

QueueSaver: QueueSaver = null
current: Track = null
guildId: string = ""
managerUtils: ManagerUtils = ...
options: {
    maxPreviousTracks: number;
} = ...

Type declaration

  • maxPreviousTracks: number
previous: Track[] = []
queueChanges: QueueChangesWatcher
tracks: (Track | UnresolvedTrack)[] = []
utils: {
    destroy: (() => Promise<unknown>);
    save: (() => Promise<unknown>);
    sync: ((override?, dontSyncCurrent?) => Promise<void>);
    toJSON: (() => StoredQueue);
    totalDuration: (() => number);
} = ...

Utils for a Queue

Type declaration

  • destroy: (() => Promise<unknown>)
      • (): Promise<unknown>
      • Returns Promise<unknown>

  • save: (() => Promise<unknown>)
      • (): Promise<unknown>
      • Save the current cached Queue on the database/server (overides the server)

        Returns Promise<unknown>

  • sync: ((override?, dontSyncCurrent?) => Promise<void>)
      • (override?, dontSyncCurrent?): Promise<void>
      • Sync the current queue database/server with the cached one

        Parameters

        • override: boolean = true
        • dontSyncCurrent: boolean = true

        Returns Promise<void>

  • toJSON: (() => StoredQueue)
      • (): StoredQueue
      • Returns StoredQueue

        The Queue, but in a raw State, which allows easier handling for the QueueStoreManager

  • totalDuration: (() => number)
      • (): number
      • Get the Total Duration of the Queue-Songs summed up

        -

        Returns number

Methods

  • Add a Track to the Queue, and after saved in the "db" it returns the amount of the Tracks

    +

    Returns number

Methods

  • Add a Track to the Queue, and after saved in the "db" it returns the amount of the Tracks

    Parameters

    Returns any

    Queue-Size (for the next Tracks)

    -
  • Shuffles the current Queue, then saves it

    Returns Promise<number>

    Amount of Tracks in the Queue

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/tsDocs/classes/Queue.QueueSaver.html b/tsDocs/classes/Queue.QueueSaver.html index aff8d2f..67fae81 100644 --- a/tsDocs/classes/Queue.QueueSaver.html +++ b/tsDocs/classes/Queue.QueueSaver.html @@ -1,8 +1,8 @@ -QueueSaver | lavalink-client

Constructors

constructor +QueueSaver | lavalink-client

Constructors

Properties

Methods

Constructors

Properties

options: {
    maxPreviousTracks: number;
}

Type declaration

  • maxPreviousTracks: number

Methods

  • Parameters

    • guildId: string
    • value: any

    Returns Promise<unknown>

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

options: {
    maxPreviousTracks: number;
}

Type declaration

  • maxPreviousTracks: number

Methods

  • Parameters

    • guildId: string
    • value: any

    Returns Promise<unknown>

Generated using TypeDoc

\ No newline at end of file diff --git a/tsDocs/classes/Utils.ManagerUtils.html b/tsDocs/classes/Utils.ManagerUtils.html index 4d62ded..eef39d3 100644 --- a/tsDocs/classes/Utils.ManagerUtils.html +++ b/tsDocs/classes/Utils.ManagerUtils.html @@ -1,4 +1,4 @@ -ManagerUtils | lavalink-client

Constructors

constructor +ManagerUtils | lavalink-client

Constructors

Properties

LavalinkManager: LavalinkManager = null

Methods

  • Validate if a data is equal to node options

    -

    Parameters

    • data: any

    Returns boolean

  • Validate if a data is euqal to a track

    +

Constructors

Properties

LavalinkManager: LavalinkManager = null

Methods

  • Validate if a data is equal to node options

    +

    Parameters

    • data: any

    Returns boolean

  • Validate if a data is euqal to a track

    Parameters

    • data: any

      the Track to validate

      -

    Returns boolean

  • Checks if the provided argument is a valid UnresolvedTrack.

    -

    Parameters

    • data: any

    Returns boolean

  • Checks if the provided argument is a valid UnresolvedTrack.

    -

    Parameters

    • data: any

    Returns boolean

  • Parameters

    Returns {
        query: string;
        source: any;
        types: string[];
    }

    • query: string
    • source: any
    • types: string[]
  • Parameters

    Returns {
        query: string;
        source: any;
    }

    • query: string
    • source: any

Generated using TypeDoc

\ No newline at end of file +

Returns boolean

  • Checks if the provided argument is a valid UnresolvedTrack.

    +

    Parameters

    • data: any

    Returns boolean

  • Checks if the provided argument is a valid UnresolvedTrack.

    +

    Parameters

    • data: any

    Returns boolean

  • Parameters

    Returns {
        query: string;
        source: any;
        types: string[];
    }

    • query: string
    • source: any
    • types: string[]
  • Parameters

    Returns {
        query: string;
        source: any;
    }

    • query: string
    • source: any

Generated using TypeDoc

\ No newline at end of file diff --git a/tsDocs/classes/Utils.MiniMap.html b/tsDocs/classes/Utils.MiniMap.html index 86e0616..baea80d 100644 --- a/tsDocs/classes/Utils.MiniMap.html +++ b/tsDocs/classes/Utils.MiniMap.html @@ -1,4 +1,4 @@ -MiniMap | lavalink-client

Class MiniMap<K, V>

Type Parameters

  • K

  • V

Hierarchy

  • Map<K, V>
    • MiniMap

Constructors

constructor +MiniMap | lavalink-client

Class MiniMap<K, V>

Type Parameters

  • K

  • V

Hierarchy

  • Map<K, V>
    • MiniMap

Constructors

Properties

Constructors

Properties

[toStringTag]: string
constructor: MiniMapConstructor
size: number

Returns

the number of elements in the Map.

+

Constructors

Properties

[toStringTag]: string
constructor: MiniMapConstructor
size: number

Returns

the number of elements in the Map.

[species]: MapConstructor

Methods

  • Returns an iterable of entries in the map.

    Returns IterableIterator<[K, V]>

  • Returns void

  • Parameters

    • key: K

    Returns boolean

    true if an element in the Map existed and has been removed, or false if the element does not exist.

  • Returns an iterable of key, value pairs for every entry in the map.

    @@ -26,7 +26,7 @@

    Type Parameters

    • K2

    Parameters

    • fn: ((value, key, miniMap) => key is K2)

      The function to test with (should return boolean)

        • (value, key, miniMap): key is K2
        • Parameters

          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns key is K2

    Returns MiniMap<K2, V>

    Example

    miniMap.filter(user => user.username === 'Bob');
     
    -
  • Type Parameters

    • V2

    Parameters

    • fn: ((value, key, miniMap) => value is V2)
        • (value, key, miniMap): value is V2
        • Parameters

          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns value is V2

    Returns MiniMap<K, V2>

  • Parameters

    • fn: ((value, key, miniMap) => boolean)
        • (value, key, miniMap): boolean
        • Parameters

          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns boolean

    Returns MiniMap<K, V>

  • Type Parameters

    • This

    • K2

    Parameters

    • fn: ((this, value, key, miniMap) => key is K2)
        • (this, value, key, miniMap): key is K2
        • Parameters

          • this: This
          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns key is K2

    • thisArg: This

    Returns MiniMap<K2, V>

  • Type Parameters

    • This

    • V2

    Parameters

    • fn: ((this, value, key, miniMap) => value is V2)
        • (this, value, key, miniMap): value is V2
        • Parameters

          • this: This
          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns value is V2

    • thisArg: This

    Returns MiniMap<K, V2>

  • Type Parameters

    • This

    Parameters

    • fn: ((this, value, key, miniMap) => boolean)
        • (this, value, key, miniMap): boolean
        • Parameters

          • this: This
          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns boolean

    • thisArg: This

    Returns MiniMap<K, V>

  • Executes a provided function once per each key/value pair in the Map, in insertion order.

    +
  • Type Parameters

    • V2

    Parameters

    • fn: ((value, key, miniMap) => value is V2)
        • (value, key, miniMap): value is V2
        • Parameters

          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns value is V2

    Returns MiniMap<K, V2>

  • Parameters

    • fn: ((value, key, miniMap) => boolean)
        • (value, key, miniMap): boolean
        • Parameters

          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns boolean

    Returns MiniMap<K, V>

  • Type Parameters

    • This

    • K2

    Parameters

    • fn: ((this, value, key, miniMap) => key is K2)
        • (this, value, key, miniMap): key is K2
        • Parameters

          • this: This
          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns key is K2

    • thisArg: This

    Returns MiniMap<K2, V>

  • Type Parameters

    • This

    • V2

    Parameters

    • fn: ((this, value, key, miniMap) => value is V2)
        • (this, value, key, miniMap): value is V2
        • Parameters

          • this: This
          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns value is V2

    • thisArg: This

    Returns MiniMap<K, V2>

  • Type Parameters

    • This

    Parameters

    • fn: ((this, value, key, miniMap) => boolean)
        • (this, value, key, miniMap): boolean
        • Parameters

          • this: This
          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns boolean

    • thisArg: This

    Returns MiniMap<K, V>

  • Executes a provided function once per each key/value pair in the Map, in insertion order.

    Parameters

    • callbackfn: ((value, key, map) => void)
        • (value, key, map): void
        • Parameters

          • value: V
          • key: K
          • map: Map<K, V>

          Returns void

    • Optional thisArg: any

    Returns void

  • Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.

    Parameters

    • key: K

    Returns V

    Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.

  • Parameters

    • key: K

    Returns boolean

    boolean indicating whether an element with the specified key exists or not.

    @@ -36,6 +36,6 @@

Type Parameters

  • T

Parameters

  • fn: ((value, key, miniMap) => T)

    Function that produces an element of the new array, taking three arguments

      • (value, key, miniMap): T
      • Parameters

        • value: V
        • key: K
        • miniMap: MiniMap<K, V>

        Returns T

Returns T[]

Example

miniMap.map(user => user.tag);
 
-
  • Type Parameters

    • This

    • T

    Parameters

    • fn: ((this, value, key, miniMap) => T)
        • (this, value, key, miniMap): T
        • Parameters

          • this: This
          • value: V
          • key: K
          • miniMap: MiniMap<K, V>

          Returns T

    • thisArg: This

    Returns T[]

    • Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.

      -

      Parameters

      • key: K
      • value: V

      Returns MiniMap<K, V>

    • Returns an iterable of values in the map

      +
    • Type Parameters

      • This

      • T

      Parameters

      • fn: ((this, value, key, miniMap) => T)
          • (this, value, key, miniMap): T
          • Parameters

            • this: This
            • value: V
            • key: K
            • miniMap: MiniMap<K, V>

            Returns T

      • thisArg: This

      Returns T[]

    • Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.

      +

      Parameters

      • key: K
      • value: V

      Returns MiniMap<K, V>

    • Returns an iterable of values in the map

      Returns IterableIterator<V>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/functions/CustomSearches_BandCampSearch.bandCampSearch.html b/tsDocs/functions/CustomSearches_BandCampSearch.bandCampSearch.html index 0fb48a5..81a86a7 100644 --- a/tsDocs/functions/CustomSearches_BandCampSearch.bandCampSearch.html +++ b/tsDocs/functions/CustomSearches_BandCampSearch.bandCampSearch.html @@ -1 +1 @@ -bandCampSearch | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file +bandCampSearch | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/functions/Utils.parseLavalinkConnUrl.html b/tsDocs/functions/Utils.parseLavalinkConnUrl.html index 5797297..189ad87 100644 --- a/tsDocs/functions/Utils.parseLavalinkConnUrl.html +++ b/tsDocs/functions/Utils.parseLavalinkConnUrl.html @@ -1,2 +1,2 @@ parseLavalinkConnUrl | lavalink-client

    Function parseLavalinkConnUrl

    • Parses Node Connection Url: "lavalink://:<nodeAuthorization(Password)>@:"

      -

      Parameters

      • connectionUrl: string

      Returns {
          authorization: string;
          host: string;
          id: string;
          port: number;
      }

      • authorization: string
      • host: string
      • id: string
      • port: number

    Generated using TypeDoc

    \ No newline at end of file +

    Parameters

    • connectionUrl: string

    Returns {
        authorization: string;
        host: string;
        id: string;
        port: number;
    }

    • authorization: string
    • host: string
    • id: string
    • port: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/functions/Utils.queueTrackEnd.html b/tsDocs/functions/Utils.queueTrackEnd.html index 00e538a..f0a9d25 100644 --- a/tsDocs/functions/Utils.queueTrackEnd.html +++ b/tsDocs/functions/Utils.queueTrackEnd.html @@ -1 +1 @@ -queueTrackEnd | lavalink-client

    Function queueTrackEnd

    Generated using TypeDoc

    \ No newline at end of file +queueTrackEnd | lavalink-client

    Function queueTrackEnd

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/index.html b/tsDocs/index.html index 8cc2e29..901097f 100644 --- a/tsDocs/index.html +++ b/tsDocs/index.html @@ -20,7 +20,7 @@

    -

    Install

    Latest stable Version: (currently, unreleased)

    +

    Install

    Latest stable Version: v2.1.3

    👉 via NPM
    npm install --save lavalink-client
    @@ -39,7 +39,7 @@
     
    -

    Documentation

    Check out the Documentation for Examples, and detailled Docs, and to figure out how to get started. note: it's not fully done yet (see the docs)

    +

    Documentation

    Check out the Documentation | or the TSDocumentation for Examples, and detailled Docs, and to figure out how to get started. note: it's not fully done yet (see the docs)

    Features

    lowPass: boolean
    nightcore: boolean

    Sets custom to false, and vaporwave to false

    +
    rotation: boolean

    If rotation filter is enabled / not

    +
    tremolo: boolean

    if tremolo filter is enabled / not

    +
    vaporwave: boolean

    Sets custom to false, and nightcore to false

    +
    vibrato: boolean

    if vibrato filter is enabled / not

    +
    volume: boolean

    Lavalink Volume FILTER (not player Volume, think of it as a gain booster)

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Filters.RotationFilter.html b/tsDocs/interfaces/Filters.RotationFilter.html index c28fe05..0bf3348 100644 --- a/tsDocs/interfaces/Filters.RotationFilter.html +++ b/tsDocs/interfaces/Filters.RotationFilter.html @@ -1,5 +1,5 @@ RotationFilter | lavalink-client

    Interface RotationFilter

    Rotates the sound around the stereo channels/user headphones (aka Audio Panning). It can produce an effect similar to https://youtu.be/QB9EB8mTKcc (without the reverb).

    -
    interface RotationFilter {
        rotationHz?: number;
    }

    Properties

    interface RotationFilter {
        rotationHz?: number;
    }

    Properties

    Properties

    rotationHz?: number

    The frequency of the audio rotating around the listener in Hz. 0.2 is similar to the example video above

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Filters.TimescaleFilter.html b/tsDocs/interfaces/Filters.TimescaleFilter.html index 3f7be3c..a59983f 100644 --- a/tsDocs/interfaces/Filters.TimescaleFilter.html +++ b/tsDocs/interfaces/Filters.TimescaleFilter.html @@ -1,8 +1,8 @@ TimescaleFilter | lavalink-client

    Interface TimescaleFilter

    Changes the speed, pitch, and rate

    -
    interface TimescaleFilter {
        pitch?: number;
        rate?: number;
        speed?: number;
    }

    Properties

    interface TimescaleFilter {
        pitch?: number;
        rate?: number;
        speed?: number;
    }

    Properties

    Properties

    pitch?: number

    The pitch 0.0 ≤ x

    -
    rate?: number

    The rate 0.0 ≤ x

    -
    speed?: number

    The playback speed 0.0 ≤ x

    -

    Generated using TypeDoc

    \ No newline at end of file +
    rate?: number

    The rate 0.0 ≤ x

    +
    speed?: number

    The playback speed 0.0 ≤ x

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Filters.TremoloFilter.html b/tsDocs/interfaces/Filters.TremoloFilter.html index 1cb1abf..24e4a8f 100644 --- a/tsDocs/interfaces/Filters.TremoloFilter.html +++ b/tsDocs/interfaces/Filters.TremoloFilter.html @@ -1,7 +1,7 @@ TremoloFilter | lavalink-client

    Uses amplification to create a shuddering effect, where the volume quickly oscillates. Demo: https://en.wikipedia.org/wiki/File:Fuse_Electronics_Tremolo_MK-III_Quick_Demo.ogv

    -
    interface TremoloFilter {
        depth?: number;
        frequency?: number;
    }

    Properties

    interface TremoloFilter {
        depth?: number;
        frequency?: number;
    }

    Properties

    Properties

    depth?: number

    The tremolo depth 0.0 < x ≤ 1.0

    -
    frequency?: number

    The frequency 0.0 < x

    -

    Generated using TypeDoc

    \ No newline at end of file +
    frequency?: number

    The frequency 0.0 < x

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Filters.VibratoFilter.html b/tsDocs/interfaces/Filters.VibratoFilter.html index f08471b..4d6880a 100644 --- a/tsDocs/interfaces/Filters.VibratoFilter.html +++ b/tsDocs/interfaces/Filters.VibratoFilter.html @@ -1,6 +1,6 @@ VibratoFilter | lavalink-client

    Similar to tremolo. While tremolo oscillates the volume, vibrato oscillates the pitch.

    -
    interface VibratoFilter {
        depth?: number;
        frequency?: number;
    }

    Properties

    interface VibratoFilter {
        depth?: number;
        frequency?: number;
    }

    Properties

    Properties

    depth?: number

    The vibrato depth 0.0 < x ≤ 1.0

    -
    frequency?: number

    The frequency 0.0 < x ≤ 14.0

    -

    Generated using TypeDoc

    \ No newline at end of file +
    frequency?: number

    The frequency 0.0 < x ≤ 14.0

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/LavalinkManager.BotClientOptions.html b/tsDocs/interfaces/LavalinkManager.BotClientOptions.html index b12ca94..b3bd3c7 100644 --- a/tsDocs/interfaces/LavalinkManager.BotClientOptions.html +++ b/tsDocs/interfaces/LavalinkManager.BotClientOptions.html @@ -1,6 +1,6 @@ BotClientOptions | lavalink-client
    interface BotClientOptions {
        id: string;
        username?: string;
        [x: string | number | symbol]: unknown;
    }

    Indexable

    [x: string | number | symbol]: unknown

    So users can pass entire objects / classes

    -

    Properties

    id +

    Properties

    Properties

    id: string

    Bot Client Id

    -
    username?: string

    Bot Client Username

    -

    Generated using TypeDoc

    \ No newline at end of file +
    username?: string

    Bot Client Username

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/LavalinkManager.ManagerOptions.html b/tsDocs/interfaces/LavalinkManager.ManagerOptions.html index fc90adf..fbece84 100644 --- a/tsDocs/interfaces/LavalinkManager.ManagerOptions.html +++ b/tsDocs/interfaces/LavalinkManager.ManagerOptions.html @@ -1,4 +1,4 @@ -ManagerOptions | lavalink-client
    interface ManagerOptions {
        advancedOptions?: {
            debugOptions?: {
                noAudio?: boolean;
                playerDestroy?: {
                    debugLog?: boolean;
                    dontThrowError?: boolean;
                };
            };
        };
        autoSkip?: boolean;
        autoSkipOnResolveError?: boolean;
        client?: BotClientOptions;
        emitNewSongsOnly?: boolean;
        linksAllowed?: boolean;
        linksBlacklist?: (string | RegExp)[];
        linksWhitelist?: (string | RegExp)[];
        nodes: LavalinkNodeOptions[];
        playerOptions?: ManagerPlayerOptions;
        queueOptions?: ManagerQueueOptions;
        sendToShard: ((guildId, payload) => void);
    }

    Properties

    advancedOptions? +ManagerOptions | lavalink-client
    interface ManagerOptions {
        advancedOptions?: {
            debugOptions?: {
                noAudio?: boolean;
                playerDestroy?: {
                    debugLog?: boolean;
                    dontThrowError?: boolean;
                };
            };
        };
        autoSkip?: boolean;
        autoSkipOnResolveError?: boolean;
        client?: BotClientOptions;
        emitNewSongsOnly?: boolean;
        linksAllowed?: boolean;
        linksBlacklist?: (string | RegExp)[];
        linksWhitelist?: (string | RegExp)[];
        nodes: LavalinkNodeOptions[];
        playerOptions?: ManagerPlayerOptions;
        queueOptions?: ManagerQueueOptions;
        sendToShard: ((guildId, payload) => void);
    }

    Properties

  • Optional playerDestroy?: {
        debugLog?: boolean;
        dontThrowError?: boolean;
    }

    For Logging the Destroy function

    • Optional debugLog?: boolean

      To show the debug reason at all times.

    • Optional dontThrowError?: boolean

      If you get 'Error: Use Player#destroy("reason") not LavalinkManager#deletePlayer() to stop the Player' put it on true

      -
  • autoSkip?: boolean

    If it should skip to the next Track on TrackEnd / TrackError etc. events

    -
    autoSkipOnResolveError?: boolean

    If it should skip to the next Track if track.resolve errors while trying to play a track.

    -

    The Bot Client's Data for Authorization

    -
    emitNewSongsOnly?: boolean

    If it should emit only new (unique) songs and not when a looping track (or similar) is plaid, default false

    -
    linksAllowed?: boolean

    If links should be allowed or not. If set to false, it will throw an error if a link was provided.

    -
    linksBlacklist?: (string | RegExp)[]

    Never allow link requests with links either matching some of that regExp or including some of that string (doesn't even allow if it's whitelisted)

    -
    linksWhitelist?: (string | RegExp)[]

    Only allow link requests with links either matching some of that regExp or including some of that string

    -

    The Node Options, for all Nodes! (on init)

    -
    playerOptions?: ManagerPlayerOptions

    PlayerOptions for all Players

    -
    queueOptions?: ManagerQueueOptions

    QueueOptions for all Queues

    -
    sendToShard: ((guildId, payload) => void)

    Type declaration

      • (guildId, payload): void
      • Parameters

        Returns void

        Async

        The Function to send the voice connection changes from Lavalink to Discord

        -

    Generated using TypeDoc

    \ No newline at end of file +
    autoSkip?: boolean

    If it should skip to the next Track on TrackEnd / TrackError etc. events

    +
    autoSkipOnResolveError?: boolean

    If it should skip to the next Track if track.resolve errors while trying to play a track.

    +

    The Bot Client's Data for Authorization

    +
    emitNewSongsOnly?: boolean

    If it should emit only new (unique) songs and not when a looping track (or similar) is plaid, default false

    +
    linksAllowed?: boolean

    If links should be allowed or not. If set to false, it will throw an error if a link was provided.

    +
    linksBlacklist?: (string | RegExp)[]

    Never allow link requests with links either matching some of that regExp or including some of that string (doesn't even allow if it's whitelisted)

    +
    linksWhitelist?: (string | RegExp)[]

    Only allow link requests with links either matching some of that regExp or including some of that string

    +

    The Node Options, for all Nodes! (on init)

    +
    playerOptions?: ManagerPlayerOptions

    PlayerOptions for all Players

    +
    queueOptions?: ManagerQueueOptions

    QueueOptions for all Queues

    +
    sendToShard: ((guildId, payload) => void)

    Type declaration

      • (guildId, payload): void
      • Parameters

        Returns void

        Async

        The Function to send the voice connection changes from Lavalink to Discord

        +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/LavalinkManager.ManagerPlayerOptions.html b/tsDocs/interfaces/LavalinkManager.ManagerPlayerOptions.html index 4a2d982..6153a8b 100644 --- a/tsDocs/interfaces/LavalinkManager.ManagerPlayerOptions.html +++ b/tsDocs/interfaces/LavalinkManager.ManagerPlayerOptions.html @@ -1,4 +1,4 @@ -ManagerPlayerOptions | lavalink-client
    interface ManagerPlayerOptions {
        applyVolumeAsFilter?: boolean;
        clientBasedPositionUpdateInterval?: number;
        defaultSearchPlatform?: SearchPlatform;
        onDisconnect?: {
            autoReconnect?: boolean;
            destroyPlayer?: boolean;
        };
        onEmptyQueue?: {
            autoPlayFunction?: ((player, lastPlayedTrack) => Promise<void>);
            destroyAfterMs?: number;
        };
        requesterTransformer?: ((requester) => unknown);
        useUnresolvedData?: boolean;
        volumeDecrementer?: number;
    }

    Properties

    applyVolumeAsFilter? +ManagerPlayerOptions | lavalink-client
    interface ManagerPlayerOptions {
        applyVolumeAsFilter?: boolean;
        clientBasedPositionUpdateInterval?: number;
        defaultSearchPlatform?: SearchPlatform;
        onDisconnect?: {
            autoReconnect?: boolean;
            destroyPlayer?: boolean;
        };
        onEmptyQueue?: {
            autoPlayFunction?: ((player, lastPlayedTrack) => Promise<void>);
            destroyAfterMs?: number;
        };
        requesterTransformer?: ((requester) => unknown);
        useUnresolvedData?: boolean;
        volumeDecrementer?: number;
    }

    Properties

    applyVolumeAsFilter?: boolean

    Applies the volume via a filter, not via the lavalink volume transformer

    -
    clientBasedPositionUpdateInterval?: number

    How often it should update the the player Position

    -
    defaultSearchPlatform?: SearchPlatform

    What should be used as a searchPlatform, if no source was provided during the query

    -
    onDisconnect?: {
        autoReconnect?: boolean;
        destroyPlayer?: boolean;
    }

    What lavalink-client should do when the player reconnects

    +
    clientBasedPositionUpdateInterval?: number

    How often it should update the the player Position

    +
    defaultSearchPlatform?: SearchPlatform

    What should be used as a searchPlatform, if no source was provided during the query

    +
    onDisconnect?: {
        autoReconnect?: boolean;
        destroyPlayer?: boolean;
    }

    What lavalink-client should do when the player reconnects

    Type declaration

    • Optional autoReconnect?: boolean

      Try to reconnect? -> If fails -> Destroy

    • Optional destroyPlayer?: boolean

      Instantly destroy player (overrides autoReconnect) | Don't provide == disable feature

      -
    onEmptyQueue?: {
        autoPlayFunction?: ((player, lastPlayedTrack) => Promise<void>);
        destroyAfterMs?: number;
    }

    Type declaration

    • Optional autoPlayFunction?: ((player, lastPlayedTrack) => Promise<void>)
        • (player, lastPlayedTrack): Promise<void>
        • Get's executed onEmptyQueue -> You can do any track queue previous transformations, if you add a track to the queue -> it will play it, if not queueEnd will execute!

          -

          Parameters

          Returns Promise<void>

    • Optional destroyAfterMs?: number
    requesterTransformer?: ((requester) => unknown)

    Type declaration

      • (requester): unknown
      • Transforms the saved data of a requested user

        -

        Parameters

        • requester: unknown

        Returns unknown

    useUnresolvedData?: boolean
    volumeDecrementer?: number

    If the Lavalink Volume should be decremented by x number

    -

    Generated using TypeDoc

    \ No newline at end of file +
    onEmptyQueue?: {
        autoPlayFunction?: ((player, lastPlayedTrack) => Promise<void>);
        destroyAfterMs?: number;
    }

    Type declaration

    • Optional autoPlayFunction?: ((player, lastPlayedTrack) => Promise<void>)
        • (player, lastPlayedTrack): Promise<void>
        • Get's executed onEmptyQueue -> You can do any track queue previous transformations, if you add a track to the queue -> it will play it, if not queueEnd will execute!

          +

          Parameters

          Returns Promise<void>

    • Optional destroyAfterMs?: number
    requesterTransformer?: ((requester) => unknown)

    Type declaration

      • (requester): unknown
      • Transforms the saved data of a requested user

        +

        Parameters

        • requester: unknown

        Returns unknown

    useUnresolvedData?: boolean
    volumeDecrementer?: number

    If the Lavalink Volume should be decremented by x number

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.BaseNodeStats.html b/tsDocs/interfaces/Node.BaseNodeStats.html index 9e80ad1..47c2d76 100644 --- a/tsDocs/interfaces/Node.BaseNodeStats.html +++ b/tsDocs/interfaces/Node.BaseNodeStats.html @@ -1,13 +1,13 @@ -BaseNodeStats | lavalink-client

    Interface BaseNodeStats

    interface BaseNodeStats {
        cpu: CPUStats;
        frameStats: FrameStats;
        memory: MemoryStats;
        players: number;
        playingPlayers: number;
        uptime: number;
    }

    Hierarchy

    Properties

    cpu +BaseNodeStats | lavalink-client

    Interface BaseNodeStats

    interface BaseNodeStats {
        cpu: CPUStats;
        frameStats: FrameStats;
        memory: MemoryStats;
        players: number;
        playingPlayers: number;
        uptime: number;
    }

    Hierarchy

    Properties

    The cpu stats for the node.

    -
    frameStats: FrameStats

    The frame stats for the node.

    -
    memory: MemoryStats

    The memory stats for the node.

    -
    players: number

    The amount of players on the node.

    -
    playingPlayers: number

    The amount of playing players on the node.

    -
    uptime: number

    The uptime for the node.

    -

    Generated using TypeDoc

    \ No newline at end of file +
    frameStats: FrameStats

    The frame stats for the node.

    +
    memory: MemoryStats

    The memory stats for the node.

    +
    players: number

    The amount of players on the node.

    +
    playingPlayers: number

    The amount of playing players on the node.

    +
    uptime: number

    The uptime for the node.

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.CPUStats.html b/tsDocs/interfaces/Node.CPUStats.html index 914bacd..54315c4 100644 --- a/tsDocs/interfaces/Node.CPUStats.html +++ b/tsDocs/interfaces/Node.CPUStats.html @@ -1,7 +1,7 @@ -CPUStats | lavalink-client

    Interface CPUStats

    interface CPUStats {
        cores: number;
        lavalinkLoad: number;
        systemLoad: number;
    }

    Properties

    cores +CPUStats | lavalink-client

    Interface CPUStats

    interface CPUStats {
        cores: number;
        lavalinkLoad: number;
        systemLoad: number;
    }

    Properties

    cores: number

    The core amount the host machine has.

    -
    lavalinkLoad: number

    The lavalink load.

    -
    systemLoad: number

    The system load.

    -

    Generated using TypeDoc

    \ No newline at end of file +
    lavalinkLoad: number

    The lavalink load.

    +
    systemLoad: number

    The system load.

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.FrameStats.html b/tsDocs/interfaces/Node.FrameStats.html index a808e18..8d122f6 100644 --- a/tsDocs/interfaces/Node.FrameStats.html +++ b/tsDocs/interfaces/Node.FrameStats.html @@ -1,7 +1,7 @@ -FrameStats | lavalink-client

    Interface FrameStats

    interface FrameStats {
        deficit?: number;
        nulled?: number;
        sent?: number;
    }

    Properties

    deficit? +FrameStats | lavalink-client

    Interface FrameStats

    interface FrameStats {
        deficit?: number;
        nulled?: number;
        sent?: number;
    }

    Properties

    deficit?: number

    The amount of deficit frames.

    -
    nulled?: number

    The amount of nulled frames.

    -
    sent?: number

    The amount of sent frames.

    -

    Generated using TypeDoc

    \ No newline at end of file +
    nulled?: number

    The amount of nulled frames.

    +
    sent?: number

    The amount of sent frames.

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.GitObject.html b/tsDocs/interfaces/Node.GitObject.html index 36274b2..13c122b 100644 --- a/tsDocs/interfaces/Node.GitObject.html +++ b/tsDocs/interfaces/Node.GitObject.html @@ -1,7 +1,7 @@ -GitObject | lavalink-client

    Interface GitObject

    interface GitObject {
        branch: string;
        commit: string;
        commitTime: string;
    }

    Properties

    branch +GitObject | lavalink-client

    Interface GitObject

    interface GitObject {
        branch: string;
        commit: string;
        commitTime: string;
    }

    Properties

    branch: string

    The branch this Lavalink server was built on

    -
    commit: string

    The commit this Lavalink server was built on

    -
    commitTime: string

    The millisecond unix timestamp for when the commit was created

    -

    Generated using TypeDoc

    \ No newline at end of file +
    commit: string

    The commit this Lavalink server was built on

    +
    commitTime: string

    The millisecond unix timestamp for when the commit was created

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.LavalinkInfo.html b/tsDocs/interfaces/Node.LavalinkInfo.html index b2aeb40..7468f7b 100644 --- a/tsDocs/interfaces/Node.LavalinkInfo.html +++ b/tsDocs/interfaces/Node.LavalinkInfo.html @@ -1,4 +1,4 @@ -LavalinkInfo | lavalink-client

    Interface LavalinkInfo

    interface LavalinkInfo {
        buildTime: number;
        filters: string[];
        git: GitObject;
        jvm: string;
        lavaplayer: string;
        plugins: PluginObject[];
        sourceManagers: string[];
        version: VersionObject;
    }

    Properties

    buildTime +LavalinkInfo | lavalink-client

    Interface LavalinkInfo

    interface LavalinkInfo {
        buildTime: number;
        filters: string[];
        git: GitObject;
        jvm: string;
        lavaplayer: string;
        plugins: PluginObject[];
        sourceManagers: string[];
        version: VersionObject;
    }

    Properties

    Properties

    buildTime: number

    The millisecond unix timestamp when this Lavalink jar was built

    -
    filters: string[]

    The enabled filters for this server

    -

    The git information of this Lavalink server

    -
    jvm: string

    The JVM version this Lavalink server runs on

    -
    lavaplayer: string

    The Lavaplayer version being used by this server

    -
    plugins: PluginObject[]

    The enabled plugins for this server

    -
    sourceManagers: string[]

    The enabled source managers for this server

    -
    version: VersionObject

    The version of this Lavalink server

    -

    Generated using TypeDoc

    \ No newline at end of file +
    filters: string[]

    The enabled filters for this server

    +

    The git information of this Lavalink server

    +
    jvm: string

    The JVM version this Lavalink server runs on

    +
    lavaplayer: string

    The Lavaplayer version being used by this server

    +
    plugins: PluginObject[]

    The enabled plugins for this server

    +
    sourceManagers: string[]

    The enabled source managers for this server

    +
    version: VersionObject

    The version of this Lavalink server

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.LavalinkNodeOptions.html b/tsDocs/interfaces/Node.LavalinkNodeOptions.html index 3bdebb3..1be2147 100644 --- a/tsDocs/interfaces/Node.LavalinkNodeOptions.html +++ b/tsDocs/interfaces/Node.LavalinkNodeOptions.html @@ -1,4 +1,4 @@ -LavalinkNodeOptions | lavalink-client

    Interface LavalinkNodeOptions

    interface LavalinkNodeOptions {
        authorization: string;
        host: string;
        id?: string;
        poolOptions?: Options;
        port: number;
        regions?: string[];
        requestTimeout?: number;
        retryAmount?: number;
        retryDelay?: number;
        secure?: boolean;
        sessionId?: string;
    }

    Properties

    authorization +LavalinkNodeOptions | lavalink-client

    Interface LavalinkNodeOptions

    interface LavalinkNodeOptions {
        authorization: string;
        host: string;
        id?: string;
        poolOptions?: Options;
        port: number;
        regions?: string[];
        requestTimeout?: number;
        retryAmount?: number;
        retryDelay?: number;
        secure?: boolean;
        sessionId?: string;
    }

    Properties

    Properties

    authorization: string

    The Lavalink Password / Authorization-Key

    -
    host: string

    The Lavalink Server-Ip / Domain-URL

    -
    id?: string

    Add a Custom ID to the node, for later use

    -
    poolOptions?: Options

    Options for the undici http pool used for http requests

    -
    port: number

    The Lavalink Connection Port

    -
    regions?: string[]

    Voice Regions of this Node

    -
    requestTimeout?: number

    Pool Undici Options - requestTimeout

    -
    retryAmount?: number

    The retryAmount for the node.

    -
    retryDelay?: number

    The retryDelay for the node.

    -
    secure?: boolean

    Does the Server use ssl (https)

    -
    sessionId?: string

    RESUME THE PLAYER? by providing a sessionid on the node-creation

    -

    Generated using TypeDoc

    \ No newline at end of file +
    host: string

    The Lavalink Server-Ip / Domain-URL

    +
    id?: string

    Add a Custom ID to the node, for later use

    +
    poolOptions?: Options

    Options for the undici http pool used for http requests

    +
    port: number

    The Lavalink Connection Port

    +
    regions?: string[]

    Voice Regions of this Node

    +
    requestTimeout?: number

    Pool Undici Options - requestTimeout

    +
    retryAmount?: number

    The retryAmount for the node.

    +
    retryDelay?: number

    The retryDelay for the node.

    +
    secure?: boolean

    Does the Server use ssl (https)

    +
    sessionId?: string

    RESUME THE PLAYER? by providing a sessionid on the node-creation

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.MemoryStats.html b/tsDocs/interfaces/Node.MemoryStats.html index bce13d6..9fd9b88 100644 --- a/tsDocs/interfaces/Node.MemoryStats.html +++ b/tsDocs/interfaces/Node.MemoryStats.html @@ -1,9 +1,9 @@ -MemoryStats | lavalink-client

    Interface MemoryStats

    interface MemoryStats {
        allocated: number;
        free: number;
        reservable: number;
        used: number;
    }

    Properties

    allocated +MemoryStats | lavalink-client

    Interface MemoryStats

    interface MemoryStats {
        allocated: number;
        free: number;
        reservable: number;
        used: number;
    }

    Properties

    allocated: number

    The total allocated memory.

    -
    free: number

    The free memory of the allocated amount.

    -
    reservable: number

    The reservable memory.

    -
    used: number

    The used memory of the allocated amount.

    -

    Generated using TypeDoc

    \ No newline at end of file +
    free: number

    The free memory of the allocated amount.

    +
    reservable: number

    The reservable memory.

    +
    used: number

    The used memory of the allocated amount.

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.NodeStats.html b/tsDocs/interfaces/Node.NodeStats.html index e8fecd7..d731524 100644 --- a/tsDocs/interfaces/Node.NodeStats.html +++ b/tsDocs/interfaces/Node.NodeStats.html @@ -1,13 +1,13 @@ -NodeStats | lavalink-client

    Interface NodeStats

    interface NodeStats {
        cpu: CPUStats;
        frameStats: FrameStats;
        memory: MemoryStats;
        players: number;
        playingPlayers: number;
        uptime: number;
    }

    Hierarchy

    Properties

    cpu +NodeStats | lavalink-client

    Interface NodeStats

    interface NodeStats {
        cpu: CPUStats;
        frameStats: FrameStats;
        memory: MemoryStats;
        players: number;
        playingPlayers: number;
        uptime: number;
    }

    Hierarchy

    Properties

    The cpu stats for the node.

    -
    frameStats: FrameStats

    The frame stats for the node.

    -
    memory: MemoryStats

    The memory stats for the node.

    -
    players: number

    The amount of players on the node.

    -
    playingPlayers: number

    The amount of playing players on the node.

    -
    uptime: number

    The uptime for the node.

    -

    Generated using TypeDoc

    \ No newline at end of file +
    frameStats: FrameStats

    The frame stats for the node.

    +
    memory: MemoryStats

    The memory stats for the node.

    +
    players: number

    The amount of players on the node.

    +
    playingPlayers: number

    The amount of playing players on the node.

    +
    uptime: number

    The uptime for the node.

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.PluginObject.html b/tsDocs/interfaces/Node.PluginObject.html index 9f3222c..65f5973 100644 --- a/tsDocs/interfaces/Node.PluginObject.html +++ b/tsDocs/interfaces/Node.PluginObject.html @@ -1,5 +1,5 @@ -PluginObject | lavalink-client

    Interface PluginObject

    interface PluginObject {
        name: string;
        version: string;
    }

    Properties

    name +PluginObject | lavalink-client

    Interface PluginObject

    interface PluginObject {
        name: string;
        version: string;
    }

    Properties

    Properties

    name: string

    The name of the plugin

    -
    version: string

    The version of the plugin

    -

    Generated using TypeDoc

    \ No newline at end of file +
    version: string

    The version of the plugin

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Node.VersionObject.html b/tsDocs/interfaces/Node.VersionObject.html index a841d8d..dcbc851 100644 --- a/tsDocs/interfaces/Node.VersionObject.html +++ b/tsDocs/interfaces/Node.VersionObject.html @@ -1,13 +1,13 @@ -VersionObject | lavalink-client

    Interface VersionObject

    interface VersionObject {
        build?: string;
        major: number;
        minor: number;
        patch: internal;
        preRelease?: string;
        semver: string;
    }

    Properties

    build? +VersionObject | lavalink-client

    Interface VersionObject

    interface VersionObject {
        build?: string;
        major: number;
        minor: number;
        patch: internal;
        preRelease?: string;
        semver: string;
    }

    Properties

    build?: string

    The build metadata according to semver as a . separated list of identifiers

    -
    major: number

    The major version of this Lavalink server

    -
    minor: number

    The minor version of this Lavalink server

    -
    patch: internal

    The patch version of this Lavalink server

    -
    preRelease?: string

    The pre-release version according to semver as a . separated list of identifiers

    -
    semver: string

    The full version string of this Lavalink server

    -

    Generated using TypeDoc

    \ No newline at end of file +
    major: number

    The major version of this Lavalink server

    +
    minor: number

    The minor version of this Lavalink server

    +
    patch: internal

    The patch version of this Lavalink server

    +
    preRelease?: string

    The pre-release version according to semver as a . separated list of identifiers

    +
    semver: string

    The full version string of this Lavalink server

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Player.BasePlayOptions.html b/tsDocs/interfaces/Player.BasePlayOptions.html index fb7d098..bd1894c 100644 --- a/tsDocs/interfaces/Player.BasePlayOptions.html +++ b/tsDocs/interfaces/Player.BasePlayOptions.html @@ -1,13 +1,13 @@ -BasePlayOptions | lavalink-client

    Interface BasePlayOptions

    interface BasePlayOptions {
        endTime?: number;
        filters?: Partial<LavalinkFilterData>;
        paused?: boolean;
        position?: number;
        voice?: LavalinkPlayerVoiceOptions;
        volume?: number;
    }

    Hierarchy

    Properties

    endTime? +BasePlayOptions | lavalink-client

    Interface BasePlayOptions

    interface BasePlayOptions {
        endTime?: number;
        filters?: Partial<LavalinkFilterData>;
        paused?: boolean;
        position?: number;
        voice?: LavalinkPlayerVoiceOptions;
        volume?: number;
    }

    Hierarchy

    Properties

    endTime?: number

    The position to end the track.

    -
    filters?: Partial<LavalinkFilterData>

    The Lavalink Filters to use | only with the new REST API

    -
    paused?: boolean

    If to start "paused"

    -
    position?: number

    The position to start the track.

    -

    Voice Update for Lavalink

    -
    volume?: number

    The Volume to start with

    -

    Generated using TypeDoc

    \ No newline at end of file +
    filters?: Partial<LavalinkFilterData>

    The Lavalink Filters to use | only with the new REST API

    +
    paused?: boolean

    If to start "paused"

    +
    position?: number

    The position to start the track.

    +

    Voice Update for Lavalink

    +
    volume?: number

    The Volume to start with

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Player.LavalinkPlayOptions.html b/tsDocs/interfaces/Player.LavalinkPlayOptions.html index 6e21e48..3a03a53 100644 --- a/tsDocs/interfaces/Player.LavalinkPlayOptions.html +++ b/tsDocs/interfaces/Player.LavalinkPlayOptions.html @@ -1,4 +1,4 @@ -LavalinkPlayOptions | lavalink-client

    Interface LavalinkPlayOptions

    interface LavalinkPlayOptions {
        endTime?: number;
        filters?: Partial<LavalinkFilterData>;
        paused?: boolean;
        position?: number;
        track?: {
            encoded?: string;
            identifier?: string;
            requester?: unknown;
            userData?: anyObject;
        };
        voice?: LavalinkPlayerVoiceOptions;
        volume?: number;
    }

    Hierarchy

    Properties

    endTime? +LavalinkPlayOptions | lavalink-client

    Interface LavalinkPlayOptions

    interface LavalinkPlayOptions {
        endTime?: number;
        filters?: Partial<LavalinkFilterData>;
        paused?: boolean;
        position?: number;
        track?: {
            encoded?: string;
            identifier?: string;
            requester?: unknown;
            userData?: anyObject;
        };
        voice?: LavalinkPlayerVoiceOptions;
        volume?: number;
    }

    Hierarchy

    Properties

    Properties

    endTime?: number

    The position to end the track.

    -
    filters?: Partial<LavalinkFilterData>

    The Lavalink Filters to use | only with the new REST API

    -
    paused?: boolean

    If to start "paused"

    -
    position?: number

    The position to start the track.

    -
    track?: {
        encoded?: string;
        identifier?: string;
        requester?: unknown;
        userData?: anyObject;
    }

    Which Track to play | don't provide, if it should pick from the Queue

    +
    filters?: Partial<LavalinkFilterData>

    The Lavalink Filters to use | only with the new REST API

    +
    paused?: boolean

    If to start "paused"

    +
    position?: number

    The position to start the track.

    +
    track?: {
        encoded?: string;
        identifier?: string;
        requester?: unknown;
        userData?: anyObject;
    }

    Which Track to play | don't provide, if it should pick from the Queue

    Type declaration

    • Optional encoded?: string

      The track encoded base64 string to use instead of the one from the queue system

    • Optional identifier?: string

      The identifier of the track to use

    • Optional requester?: unknown

      The Track requester for when u provide encodedTrack / identifer

    • Optional userData?: anyObject

      Custom User Data for the track to provide, will then be on the userData object from the track

      -

    Voice Update for Lavalink

    -
    volume?: number

    The Volume to start with

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Voice Update for Lavalink

    +
    volume?: number

    The Volume to start with

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Player.PlayOptions.html b/tsDocs/interfaces/Player.PlayOptions.html index 1281e84..9e4b21d 100644 --- a/tsDocs/interfaces/Player.PlayOptions.html +++ b/tsDocs/interfaces/Player.PlayOptions.html @@ -1,4 +1,4 @@ -PlayOptions | lavalink-client
    interface PlayOptions {
        clientTrack?: Track | UnresolvedTrack;
        endTime?: number;
        filters?: Partial<LavalinkFilterData>;
        noReplace?: boolean;
        paused?: boolean;
        position?: number;
        track?: {
            encoded?: string;
            identifier?: string;
            requester?: unknown;
            userData?: anyObject;
        };
        voice?: LavalinkPlayerVoiceOptions;
        volume?: number;
    }

    Hierarchy

    Properties

    clientTrack? +PlayOptions | lavalink-client
    interface PlayOptions {
        clientTrack?: Track | UnresolvedTrack;
        endTime?: number;
        filters?: Partial<LavalinkFilterData>;
        noReplace?: boolean;
        paused?: boolean;
        position?: number;
        track?: {
            encoded?: string;
            identifier?: string;
            requester?: unknown;
            userData?: anyObject;
        };
        voice?: LavalinkPlayerVoiceOptions;
        volume?: number;
    }

    Hierarchy

    Properties

    Properties

    clientTrack?: Track | UnresolvedTrack

    Which Track to play | don't provide, if it should pick from the Queue

    -
    endTime?: number

    The position to end the track.

    -
    filters?: Partial<LavalinkFilterData>

    The Lavalink Filters to use | only with the new REST API

    -
    noReplace?: boolean

    Whether to not replace the track if a play payload is sent.

    -
    paused?: boolean

    If to start "paused"

    -
    position?: number

    The position to start the track.

    -
    track?: {
        encoded?: string;
        identifier?: string;
        requester?: unknown;
        userData?: anyObject;
    }

    Which Track to play | don't provide, if it should pick from the Queue

    +
    endTime?: number

    The position to end the track.

    +
    filters?: Partial<LavalinkFilterData>

    The Lavalink Filters to use | only with the new REST API

    +
    noReplace?: boolean

    Whether to not replace the track if a play payload is sent.

    +
    paused?: boolean

    If to start "paused"

    +
    position?: number

    The position to start the track.

    +
    track?: {
        encoded?: string;
        identifier?: string;
        requester?: unknown;
        userData?: anyObject;
    }

    Which Track to play | don't provide, if it should pick from the Queue

    Type declaration

    • Optional encoded?: string

      The track encoded base64 string to use instead of the one from the queue system

    • Optional identifier?: string

      The identifier of the track to use

    • Optional requester?: unknown

      The Track requester for when u provide encodedTrack / identifer

    • Optional userData?: anyObject

      Custom User Data for the track to provide, will then be on the userData object from the track

      -

    Voice Update for Lavalink

    -
    volume?: number

    The Volume to start with

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Voice Update for Lavalink

    +
    volume?: number

    The Volume to start with

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Player.PlayerJson.html b/tsDocs/interfaces/Player.PlayerJson.html index 4b9db0f..12610e0 100644 --- a/tsDocs/interfaces/Player.PlayerJson.html +++ b/tsDocs/interfaces/Player.PlayerJson.html @@ -1,4 +1,4 @@ -PlayerJson | lavalink-client
    interface PlayerJson {
        createdTimeStamp?: number;
        equalizer: EQBand[];
        filters: FilterData;
        guildId: string;
        lastPosition: number;
        lavalinkVolume: number;
        nodeId?: string;
        options: PlayerOptions;
        paused: boolean;
        ping: {
            lavalink: number;
            ws: number;
        };
        playing: boolean;
        position: number;
        repeatMode: RepeatMode;
        textChannelId?: string;
        voiceChannelId: string;
        volume: number;
    }

    Properties

    createdTimeStamp? +PlayerJson | lavalink-client
    interface PlayerJson {
        createdTimeStamp?: number;
        equalizer: EQBand[];
        filters: FilterData;
        guildId: string;
        lastPosition: number;
        lavalinkVolume: number;
        nodeId?: string;
        options: PlayerOptions;
        paused: boolean;
        ping: {
            lavalink: number;
            ws: number;
        };
        playing: boolean;
        position: number;
        repeatMode: RepeatMode;
        textChannelId?: string;
        voiceChannelId: string;
        volume: number;
    }

    Properties

    createdTimeStamp?: number
    equalizer: EQBand[]
    filters: FilterData
    guildId: string
    lastPosition: number
    lavalinkVolume: number
    nodeId?: string
    options: PlayerOptions
    paused: boolean
    ping: {
        lavalink: number;
        ws: number;
    }

    Type declaration

    • lavalink: number
    • ws: number
    playing: boolean
    position: number
    repeatMode: RepeatMode
    textChannelId?: string
    voiceChannelId: string
    volume: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    createdTimeStamp?: number
    equalizer: EQBand[]
    filters: FilterData
    guildId: string
    lastPosition: number
    lavalinkVolume: number
    nodeId?: string
    options: PlayerOptions
    paused: boolean
    ping: {
        lavalink: number;
        ws: number;
    }

    Type declaration

    • lavalink: number
    • ws: number
    playing: boolean
    position: number
    repeatMode: RepeatMode
    textChannelId?: string
    voiceChannelId: string
    volume: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Player.PlayerOptions.html b/tsDocs/interfaces/Player.PlayerOptions.html index fabdc3b..6367067 100644 --- a/tsDocs/interfaces/Player.PlayerOptions.html +++ b/tsDocs/interfaces/Player.PlayerOptions.html @@ -1,4 +1,4 @@ -PlayerOptions | lavalink-client

    Interface PlayerOptions

    interface PlayerOptions {
        applyVolumeAsFilter?: boolean;
        guildId: string;
        instaUpdateFiltersFix?: boolean;
        node?: string | LavalinkNode;
        selfDeaf?: boolean;
        selfMute?: boolean;
        textChannelId?: string;
        vcRegion?: string;
        voiceChannelId: string;
        volume?: number;
    }

    Properties

    applyVolumeAsFilter? +PlayerOptions | lavalink-client

    Interface PlayerOptions

    interface PlayerOptions {
        applyVolumeAsFilter?: boolean;
        guildId: string;
        instaUpdateFiltersFix?: boolean;
        node?: string | LavalinkNode;
        selfDeaf?: boolean;
        selfMute?: boolean;
        textChannelId?: string;
        vcRegion?: string;
        voiceChannelId: string;
        volume?: number;
    }

    Properties

    applyVolumeAsFilter?: boolean

    If a volume should be applied via filters instead of lavalink-volume

    -
    guildId: string

    Guild id of the player

    -
    instaUpdateFiltersFix?: boolean

    If when applying filters, it should use the insta apply filters fix

    -
    node?: string | LavalinkNode

    If it should use a specific lavalink node

    -
    selfDeaf?: boolean

    if it should join deafened

    -
    selfMute?: boolean

    If it should join muted

    -
    textChannelId?: string

    The Text Channel Id of the Player

    -
    vcRegion?: string

    VC Region for node selections

    -
    voiceChannelId: string

    The Voice Channel Id

    -
    volume?: number

    instantly change volume with the one play request

    -

    Generated using TypeDoc

    \ No newline at end of file +
    guildId: string

    Guild id of the player

    +
    instaUpdateFiltersFix?: boolean

    If when applying filters, it should use the insta apply filters fix

    +
    node?: string | LavalinkNode

    If it should use a specific lavalink node

    +
    selfDeaf?: boolean

    if it should join deafened

    +
    selfMute?: boolean

    If it should join muted

    +
    textChannelId?: string

    The Text Channel Id of the Player

    +
    vcRegion?: string

    VC Region for node selections

    +
    voiceChannelId: string

    The Voice Channel Id

    +
    volume?: number

    instantly change volume with the one play request

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Queue.ManagerQueueOptions.html b/tsDocs/interfaces/Queue.ManagerQueueOptions.html index 38c9776..3143442 100644 --- a/tsDocs/interfaces/Queue.ManagerQueueOptions.html +++ b/tsDocs/interfaces/Queue.ManagerQueueOptions.html @@ -1,7 +1,7 @@ -ManagerQueueOptions | lavalink-client

    Interface ManagerQueueOptions

    interface ManagerQueueOptions {
        maxPreviousTracks?: number;
        queueChangesWatcher?: QueueChangesWatcher;
        queueStore?: QueueStoreManager;
    }

    Properties

    maxPreviousTracks? +ManagerQueueOptions | lavalink-client

    Interface ManagerQueueOptions

    interface ManagerQueueOptions {
        maxPreviousTracks?: number;
        queueChangesWatcher?: QueueChangesWatcher;
        queueStore?: QueueStoreManager;
    }

    Properties

    maxPreviousTracks?: number

    Maximum Amount of tracks for the queue.previous array. Set to 0 to not save previous songs. Defaults to 25 Tracks

    -
    queueChangesWatcher?: QueueChangesWatcher

    Custom Queue Watcher class

    -
    queueStore?: QueueStoreManager

    Custom Queue Store option

    -

    Generated using TypeDoc

    \ No newline at end of file +
    queueChangesWatcher?: QueueChangesWatcher

    Custom Queue Watcher class

    +
    queueStore?: QueueStoreManager

    Custom Queue Store option

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Queue.QueueChangesWatcher.html b/tsDocs/interfaces/Queue.QueueChangesWatcher.html index f83a433..50b7a28 100644 --- a/tsDocs/interfaces/Queue.QueueChangesWatcher.html +++ b/tsDocs/interfaces/Queue.QueueChangesWatcher.html @@ -1,7 +1,7 @@ -QueueChangesWatcher | lavalink-client

    Interface QueueChangesWatcher

    interface QueueChangesWatcher {
        shuffled: ((guildId, oldStoredQueue, newStoredQueue) => any);
        tracksAdd: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any);
        tracksRemoved: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any);
    }

    Properties

    shuffled +QueueChangesWatcher | lavalink-client

    Interface QueueChangesWatcher

    interface QueueChangesWatcher {
        shuffled: ((guildId, oldStoredQueue, newStoredQueue) => any);
        tracksAdd: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any);
        tracksRemoved: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any);
    }

    Properties

    shuffled: ((guildId, oldStoredQueue, newStoredQueue) => any)

    Type declaration

      • (guildId, oldStoredQueue, newStoredQueue): any
      • Set a value inside a guildId (MUST BE UNPARSED)

        -

        Parameters

        Returns any

    tracksAdd: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any)

    Type declaration

      • (guildId, tracks, position, oldStoredQueue, newStoredQueue): any
      • get a Value (MUST RETURN UNPARSED!)

        -

        Parameters

        Returns any

    tracksRemoved: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any)

    Type declaration

      • (guildId, tracks, position, oldStoredQueue, newStoredQueue): any
      • Set a value inside a guildId (MUST BE UNPARSED)

        -

        Parameters

        Returns any

    Generated using TypeDoc

    \ No newline at end of file +

    Parameters

    Returns any

    tracksAdd: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any)

    Type declaration

      • (guildId, tracks, position, oldStoredQueue, newStoredQueue): any
      • get a Value (MUST RETURN UNPARSED!)

        +

        Parameters

        Returns any

    tracksRemoved: ((guildId, tracks, position, oldStoredQueue, newStoredQueue) => any)

    Type declaration

      • (guildId, tracks, position, oldStoredQueue, newStoredQueue): any
      • Set a value inside a guildId (MUST BE UNPARSED)

        +

        Parameters

        Returns any

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Queue.QueueStoreManager.html b/tsDocs/interfaces/Queue.QueueStoreManager.html index 5ce1482..43c238b 100644 --- a/tsDocs/interfaces/Queue.QueueStoreManager.html +++ b/tsDocs/interfaces/Queue.QueueStoreManager.html @@ -1,11 +1,11 @@ -QueueStoreManager | lavalink-client

    Interface QueueStoreManager

    interface QueueStoreManager {
        delete: ((guildId) => Promise<unknown>);
        get: ((guildId) => Promise<unknown>);
        parse: ((value) => Promise<Partial<StoredQueue>>);
        set: ((guildId, value) => Promise<unknown>);
        stringify: ((value) => Promise<unknown>);
    }

    Hierarchy

    • Record<string, any>
      • QueueStoreManager

    Implemented by

    Properties

    delete +QueueStoreManager | lavalink-client

    Interface QueueStoreManager

    interface QueueStoreManager {
        delete: ((guildId) => Promise<unknown>);
        get: ((guildId) => Promise<unknown>);
        parse: ((value) => Promise<Partial<StoredQueue>>);
        set: ((guildId, value) => Promise<unknown>);
        stringify: ((value) => Promise<unknown>);
    }

    Hierarchy

    • Record<string, any>
      • QueueStoreManager

    Implemented by

    Properties

    delete: ((guildId) => Promise<unknown>)

    Type declaration

      • (guildId): Promise<unknown>
      • Parameters

        • guildId: unknown

        Returns Promise<unknown>

        Async

        Delete a Database Value based of it's guildId

        -
    get: ((guildId) => Promise<unknown>)

    Type declaration

      • (guildId): Promise<unknown>
      • Parameters

        • guildId: unknown

        Returns Promise<unknown>

        Async

        get a Value (MUST RETURN UNPARSED!)

        -
    parse: ((value) => Promise<Partial<StoredQueue>>)

    Type declaration

      • (value): Promise<Partial<StoredQueue>>
      • Parameters

        • value: unknown

        Returns Promise<Partial<StoredQueue>>

        Async

        Parse the saved value back to the Queue (IF YOU DON'T NEED PARSING/STRINGIFY, then just return the value)

        -
    set: ((guildId, value) => Promise<unknown>)

    Type declaration

      • (guildId, value): Promise<unknown>
      • Parameters

        • guildId: unknown
        • value: unknown

        Returns Promise<unknown>

        Async

        Set a value inside a guildId (MUST BE UNPARSED)

        -
    stringify: ((value) => Promise<unknown>)

    Type declaration

      • (value): Promise<unknown>
      • Parameters

        • value: unknown

        Returns Promise<unknown>

        Async

        Transform the value(s) inside of the QueueStoreManager (IF YOU DON'T NEED PARSING/STRINGIFY, then just return the value)

        -

    Generated using TypeDoc

    \ No newline at end of file +
    get: ((guildId) => Promise<unknown>)

    Type declaration

      • (guildId): Promise<unknown>
      • Parameters

        • guildId: unknown

        Returns Promise<unknown>

        Async

        get a Value (MUST RETURN UNPARSED!)

        +
    parse: ((value) => Promise<Partial<StoredQueue>>)

    Type declaration

      • (value): Promise<Partial<StoredQueue>>
      • Parameters

        • value: unknown

        Returns Promise<Partial<StoredQueue>>

        Async

        Parse the saved value back to the Queue (IF YOU DON'T NEED PARSING/STRINGIFY, then just return the value)

        +
    set: ((guildId, value) => Promise<unknown>)

    Type declaration

      • (guildId, value): Promise<unknown>
      • Parameters

        • guildId: unknown
        • value: unknown

        Returns Promise<unknown>

        Async

        Set a value inside a guildId (MUST BE UNPARSED)

        +
    stringify: ((value) => Promise<unknown>)

    Type declaration

      • (value): Promise<unknown>
      • Parameters

        • value: unknown

        Returns Promise<unknown>

        Async

        Transform the value(s) inside of the QueueStoreManager (IF YOU DON'T NEED PARSING/STRINGIFY, then just return the value)

        +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Queue.StoredQueue.html b/tsDocs/interfaces/Queue.StoredQueue.html index fe6cf74..31d4d4f 100644 --- a/tsDocs/interfaces/Queue.StoredQueue.html +++ b/tsDocs/interfaces/Queue.StoredQueue.html @@ -1,4 +1,4 @@ -StoredQueue | lavalink-client

    Interface StoredQueue

    interface StoredQueue {
        current: Track;
        previous: Track[];
        tracks: Track[];
    }

    Properties

    current +StoredQueue | lavalink-client

    Interface StoredQueue

    interface StoredQueue {
        current: Track;
        previous: Track[];
        tracks: Track[];
    }

    Properties

    Properties

    current: Track
    previous: Track[]
    tracks: Track[]

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    current: Track
    previous: Track[]
    tracks: Track[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.LavalinkTrack.html b/tsDocs/interfaces/Track.LavalinkTrack.html index 6e4e4d8..811b0de 100644 --- a/tsDocs/interfaces/Track.LavalinkTrack.html +++ b/tsDocs/interfaces/Track.LavalinkTrack.html @@ -1,9 +1,9 @@ -LavalinkTrack | lavalink-client

    Interface LavalinkTrack

    interface LavalinkTrack {
        encoded?: string;
        info: LavalinkTrackInfo;
        pluginInfo: Partial<PluginInfo>;
        userData?: anyObject;
    }

    Properties

    encoded? +LavalinkTrack | lavalink-client

    Interface LavalinkTrack

    interface LavalinkTrack {
        encoded?: string;
        info: LavalinkTrackInfo;
        pluginInfo: Partial<PluginInfo>;
        userData?: anyObject;
    }

    Properties

    encoded?: string

    The Base 64 encoded String

    -

    Track Information

    -
    pluginInfo: Partial<PluginInfo>

    Plugin Information from Lavalink

    -
    userData?: anyObject

    The userData Object from when you provide to the lavalink request

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Track Information

    +
    pluginInfo: Partial<PluginInfo>

    Plugin Information from Lavalink

    +
    userData?: anyObject

    The userData Object from when you provide to the lavalink request

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.LavalinkTrackInfo.html b/tsDocs/interfaces/Track.LavalinkTrackInfo.html index db6ac4f..c5ee960 100644 --- a/tsDocs/interfaces/Track.LavalinkTrackInfo.html +++ b/tsDocs/interfaces/Track.LavalinkTrackInfo.html @@ -1,4 +1,4 @@ -LavalinkTrackInfo | lavalink-client

    Interface LavalinkTrackInfo

    interface LavalinkTrackInfo {
        artworkUrl: string;
        author: string;
        identifier: string;
        isSeekable: boolean;
        isStream: boolean;
        isrc: string;
        length: number;
        sourceName: SourceNames;
        title: string;
        uri: string;
    }

    Properties

    artworkUrl +LavalinkTrackInfo | lavalink-client

    Interface LavalinkTrackInfo

    interface LavalinkTrackInfo {
        artworkUrl: string;
        author: string;
        identifier: string;
        isSeekable: boolean;
        isStream: boolean;
        isrc: string;
        length: number;
        sourceName: SourceNames;
        title: string;
        uri: string;
    }

    Properties

    Properties

    artworkUrl: string

    The URL of the artwork if available

    -
    author: string

    The Name of the Author

    -
    identifier: string

    The Identifier of the Track

    -
    isSeekable: boolean

    Wether the audio is seekable

    -
    isStream: boolean

    Wether the audio is of a live stream

    -
    isrc: string

    If isrc code is available, it's provided

    -
    length: number

    The duration of the Track

    -
    sourceName: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    -
    title: string

    The Track Title / Name

    -
    uri: string

    The URL (aka Link) of the Track called URI

    -

    Generated using TypeDoc

    \ No newline at end of file +
    author: string

    The Name of the Author

    +
    identifier: string

    The Identifier of the Track

    +
    isSeekable: boolean

    Wether the audio is seekable

    +
    isStream: boolean

    Wether the audio is of a live stream

    +
    isrc: string

    If isrc code is available, it's provided

    +
    length: number

    The duration of the Track

    +
    sourceName: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    +
    title: string

    The Track Title / Name

    +
    uri: string

    The URL (aka Link) of the Track called URI

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.PluginInfo.html b/tsDocs/interfaces/Track.PluginInfo.html index f5b2639..ab35b82 100644 --- a/tsDocs/interfaces/Track.PluginInfo.html +++ b/tsDocs/interfaces/Track.PluginInfo.html @@ -1,4 +1,4 @@ -PluginInfo | lavalink-client

    Interface PluginInfo

    interface PluginInfo {
        albumArtUrl?: string;
        albumName?: string;
        artistArtworkUrl?: string;
        artistUrl?: string;
        artworkUrl?: string;
        author?: string;
        clientData?: {
            [key: string]: any;
        };
        identifier?: string;
        isPreview?: boolean;
        previewUrl?: string;
        totalTracks?: number;
        type?: string;
        uri?: string;
        url?: string;
    }

    Properties

    albumArtUrl? +PluginInfo | lavalink-client

    Interface PluginInfo

    interface PluginInfo {
        albumArtUrl?: string;
        albumName?: string;
        artistArtworkUrl?: string;
        artistUrl?: string;
        artworkUrl?: string;
        author?: string;
        clientData?: {
            [key: string]: any;
        };
        identifier?: string;
        isPreview?: boolean;
        previewUrl?: string;
        totalTracks?: number;
        type?: string;
        uri?: string;
        url?: string;
    }

    Properties

    albumArtUrl?: string

    The url of the album art

    -
    albumName?: string

    The Identifier provided by a plugin

    -
    artistArtworkUrl?: string

    The url of the artist artwork

    -
    artistUrl?: string

    The url of the artist

    -
    artworkUrl?: string

    The ArtworkUrl provided by a plugin

    -
    author?: string

    The Author Information provided by a plugin

    -
    clientData?: {
        [key: string]: any;
    }

    You can put specific track information here, to transform the tracks...

    -

    Type declaration

    • [key: string]: any
    identifier?: string

    The Identifier provided by a plugin

    -
    isPreview?: boolean

    Whether the track is a preview

    -
    previewUrl?: string

    The url of the preview

    -
    totalTracks?: number

    The total number of tracks in the playlist

    -
    type?: string

    The Type provided by a plugin

    -
    uri?: string

    The Url provided by a Plugin

    -
    url?: string

    The Url provided by a Plugin

    -

    Generated using TypeDoc

    \ No newline at end of file +
    albumName?: string

    The Identifier provided by a plugin

    +
    artistArtworkUrl?: string

    The url of the artist artwork

    +
    artistUrl?: string

    The url of the artist

    +
    artworkUrl?: string

    The ArtworkUrl provided by a plugin

    +
    author?: string

    The Author Information provided by a plugin

    +
    clientData?: {
        [key: string]: any;
    }

    You can put specific track information here, to transform the tracks...

    +

    Type declaration

    • [key: string]: any
    identifier?: string

    The Identifier provided by a plugin

    +
    isPreview?: boolean

    Whether the track is a preview

    +
    previewUrl?: string

    The url of the preview

    +
    totalTracks?: number

    The total number of tracks in the playlist

    +
    type?: string

    The Type provided by a plugin

    +
    uri?: string

    The Url provided by a Plugin

    +
    url?: string

    The Url provided by a Plugin

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.Track.html b/tsDocs/interfaces/Track.Track.html index ab6306d..e5b3112 100644 --- a/tsDocs/interfaces/Track.Track.html +++ b/tsDocs/interfaces/Track.Track.html @@ -1,11 +1,11 @@ -Track | lavalink-client
    interface Track {
        encoded?: string;
        info: TrackInfo;
        pluginInfo: Partial<PluginInfo>;
        requester?: unknown;
        userData?: anyObject;
    }

    Properties

    encoded? +Track | lavalink-client
    interface Track {
        encoded?: string;
        info: TrackInfo;
        pluginInfo: Partial<PluginInfo>;
        requester?: unknown;
        userData?: anyObject;
    }

    Properties

    encoded?: string

    The Base 64 encoded String

    -
    info: TrackInfo

    Track Information

    -
    pluginInfo: Partial<PluginInfo>

    Plugin Information from Lavalink

    -
    requester?: unknown

    The Track's Requester

    -
    userData?: anyObject

    The userData Object from when you provide to the lavalink request

    -

    Generated using TypeDoc

    \ No newline at end of file +
    info: TrackInfo

    Track Information

    +
    pluginInfo: Partial<PluginInfo>

    Plugin Information from Lavalink

    +
    requester?: unknown

    The Track's Requester

    +
    userData?: anyObject

    The userData Object from when you provide to the lavalink request

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.TrackInfo.html b/tsDocs/interfaces/Track.TrackInfo.html index ffd92b4..1211a2e 100644 --- a/tsDocs/interfaces/Track.TrackInfo.html +++ b/tsDocs/interfaces/Track.TrackInfo.html @@ -1,4 +1,4 @@ -TrackInfo | lavalink-client
    interface TrackInfo {
        artworkUrl: string;
        author: string;
        duration: number;
        identifier: string;
        isSeekable: boolean;
        isStream: boolean;
        isrc: string;
        sourceName: SourceNames;
        title: string;
        uri: string;
    }

    Properties

    artworkUrl +TrackInfo | lavalink-client
    interface TrackInfo {
        artworkUrl: string;
        author: string;
        duration: number;
        identifier: string;
        isSeekable: boolean;
        isStream: boolean;
        isrc: string;
        sourceName: SourceNames;
        title: string;
        uri: string;
    }

    Properties

    Properties

    artworkUrl: string

    The URL of the artwork if available

    -
    author: string

    The Name of the Author

    -
    duration: number

    The duration of the Track

    -
    identifier: string

    The Identifier of the Track

    -
    isSeekable: boolean

    Wether the audio is seekable

    -
    isStream: boolean

    Wether the audio is of a live stream

    -
    isrc: string

    If isrc code is available, it's provided

    -
    sourceName: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    -
    title: string

    The Track Title / Name

    -
    uri: string

    The URL (aka Link) of the Track called URI

    -

    Generated using TypeDoc

    \ No newline at end of file +
    author: string

    The Name of the Author

    +
    duration: number

    The duration of the Track

    +
    identifier: string

    The Identifier of the Track

    +
    isSeekable: boolean

    Wether the audio is seekable

    +
    isStream: boolean

    Wether the audio is of a live stream

    +
    isrc: string

    If isrc code is available, it's provided

    +
    sourceName: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    +
    title: string

    The Track Title / Name

    +
    uri: string

    The URL (aka Link) of the Track called URI

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.UnresolvedQuery.html b/tsDocs/interfaces/Track.UnresolvedQuery.html index 80424c7..6fb1fe2 100644 --- a/tsDocs/interfaces/Track.UnresolvedQuery.html +++ b/tsDocs/interfaces/Track.UnresolvedQuery.html @@ -1,4 +1,4 @@ -UnresolvedQuery | lavalink-client

    Interface UnresolvedQuery

    interface UnresolvedQuery {
        artworkUrl?: string;
        author?: string;
        duration?: number;
        encoded?: string;
        identifier?: string;
        isSeekable?: boolean;
        isStream?: boolean;
        isrc?: string;
        sourceName?: SourceNames;
        title: string;
        uri?: string;
    }

    Hierarchy

    Properties

    artworkUrl? +UnresolvedQuery | lavalink-client

    Interface UnresolvedQuery

    interface UnresolvedQuery {
        artworkUrl?: string;
        author?: string;
        duration?: number;
        encoded?: string;
        identifier?: string;
        isSeekable?: boolean;
        isStream?: boolean;
        isrc?: string;
        sourceName?: SourceNames;
        title: string;
        uri?: string;
    }

    Hierarchy

    Properties

    Properties

    artworkUrl?: string

    The URL of the artwork if available

    -
    author?: string

    The Name of the Author

    -
    duration?: number

    The duration of the Track

    -
    encoded?: string

    The base64 of the unresolved track to "encode"

    -
    identifier?: string

    The Identifier of the Track

    -
    isSeekable?: boolean

    Wether the audio is seekable

    -
    isStream?: boolean

    Wether the audio is of a live stream

    -
    isrc?: string

    If isrc code is available, it's provided

    -
    sourceName?: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    -
    title: string

    Required

    -
    uri?: string

    The URL (aka Link) of the Track called URI

    -

    Generated using TypeDoc

    \ No newline at end of file +
    author?: string

    The Name of the Author

    +
    duration?: number

    The duration of the Track

    +
    encoded?: string

    The base64 of the unresolved track to "encode"

    +
    identifier?: string

    The Identifier of the Track

    +
    isSeekable?: boolean

    Wether the audio is seekable

    +
    isStream?: boolean

    Wether the audio is of a live stream

    +
    isrc?: string

    If isrc code is available, it's provided

    +
    sourceName?: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    +
    title: string

    Required

    +
    uri?: string

    The URL (aka Link) of the Track called URI

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.UnresolvedTrack.html b/tsDocs/interfaces/Track.UnresolvedTrack.html index 340c383..0c68f3b 100644 --- a/tsDocs/interfaces/Track.UnresolvedTrack.html +++ b/tsDocs/interfaces/Track.UnresolvedTrack.html @@ -1,13 +1,13 @@ -UnresolvedTrack | lavalink-client

    Interface UnresolvedTrack

    interface UnresolvedTrack {
        encoded?: string;
        info: UnresolvedTrackInfo;
        pluginInfo: Partial<PluginInfo>;
        requester?: unknown;
        resolve: ((player) => Promise<void>);
        userData?: anyObject;
    }

    Properties

    encoded? +UnresolvedTrack | lavalink-client

    Interface UnresolvedTrack

    interface UnresolvedTrack {
        encoded?: string;
        info: UnresolvedTrackInfo;
        pluginInfo: Partial<PluginInfo>;
        requester?: unknown;
        resolve: ((player) => Promise<void>);
        userData?: anyObject;
    }

    Properties

    encoded?: string

    The Base 64 encoded String

    -

    Track Information

    -
    pluginInfo: Partial<PluginInfo>

    Plugin Information from Lavalink

    -
    requester?: unknown

    The Track's Requester

    -
    resolve: ((player) => Promise<void>)

    Type declaration

      • (player): Promise<void>
      • Required

        -

        Parameters

        Returns Promise<void>

    userData?: anyObject

    The userData Object from when you provide to the lavalink request

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Track Information

    +
    pluginInfo: Partial<PluginInfo>

    Plugin Information from Lavalink

    +
    requester?: unknown

    The Track's Requester

    +
    resolve: ((player) => Promise<void>)

    Type declaration

      • (player): Promise<void>
      • Required

        +

        Parameters

        Returns Promise<void>

    userData?: anyObject

    The userData Object from when you provide to the lavalink request

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Track.UnresolvedTrackInfo.html b/tsDocs/interfaces/Track.UnresolvedTrackInfo.html index d7ba4c5..94e6f8a 100644 --- a/tsDocs/interfaces/Track.UnresolvedTrackInfo.html +++ b/tsDocs/interfaces/Track.UnresolvedTrackInfo.html @@ -1,4 +1,4 @@ -UnresolvedTrackInfo | lavalink-client

    Interface UnresolvedTrackInfo

    interface UnresolvedTrackInfo {
        artworkUrl?: string;
        author?: string;
        duration?: number;
        identifier?: string;
        isSeekable?: boolean;
        isStream?: boolean;
        isrc?: string;
        sourceName?: SourceNames;
        title: string;
        uri?: string;
    }

    Hierarchy

    Properties

    artworkUrl? +UnresolvedTrackInfo | lavalink-client

    Interface UnresolvedTrackInfo

    interface UnresolvedTrackInfo {
        artworkUrl?: string;
        author?: string;
        duration?: number;
        identifier?: string;
        isSeekable?: boolean;
        isStream?: boolean;
        isrc?: string;
        sourceName?: SourceNames;
        title: string;
        uri?: string;
    }

    Hierarchy

    Properties

    Properties

    artworkUrl?: string

    The URL of the artwork if available

    -
    author?: string

    The Name of the Author

    -
    duration?: number

    The duration of the Track

    -
    identifier?: string

    The Identifier of the Track

    -
    isSeekable?: boolean

    Wether the audio is seekable

    -
    isStream?: boolean

    Wether the audio is of a live stream

    -
    isrc?: string

    If isrc code is available, it's provided

    -
    sourceName?: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    -
    title: string

    Required

    -
    uri?: string

    The URL (aka Link) of the Track called URI

    -

    Generated using TypeDoc

    \ No newline at end of file +
    author?: string

    The Name of the Author

    +
    duration?: number

    The duration of the Track

    +
    identifier?: string

    The Identifier of the Track

    +
    isSeekable?: boolean

    Wether the audio is seekable

    +
    isStream?: boolean

    Wether the audio is of a live stream

    +
    isrc?: string

    If isrc code is available, it's provided

    +
    sourceName?: SourceNames

    The Source name of the Track, e.g. soundcloud, youtube, spotify

    +
    title: string

    Required

    +
    uri?: string

    The URL (aka Link) of the Track called URI

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.ChannelDeletePacket.html b/tsDocs/interfaces/Utils.ChannelDeletePacket.html index a706820..f1434b2 100644 --- a/tsDocs/interfaces/Utils.ChannelDeletePacket.html +++ b/tsDocs/interfaces/Utils.ChannelDeletePacket.html @@ -1,7 +1,7 @@ -ChannelDeletePacket | lavalink-client

    Interface ChannelDeletePacket

    interface ChannelDeletePacket {
        d: {
            guild_id: string;
            id: string;
        };
        t: "CHANNEL_DELETE";
    }

    Properties

    d +ChannelDeletePacket | lavalink-client

    Interface ChannelDeletePacket

    interface ChannelDeletePacket {
        d: {
            guild_id: string;
            id: string;
        };
        t: "CHANNEL_DELETE";
    }

    Properties

    d t

    Properties

    d: {
        guild_id: string;
        id: string;
    }

    data which is sent and relevant

    Type declaration

    • guild_id: string

      guild id

    • id: string

      Channel id

      -
    t: "CHANNEL_DELETE"

    Packet key for channel delete

    -

    Generated using TypeDoc

    \ No newline at end of file +
    t: "CHANNEL_DELETE"

    Packet key for channel delete

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.Exception.html b/tsDocs/interfaces/Utils.Exception.html index 795390a..e65172d 100644 --- a/tsDocs/interfaces/Utils.Exception.html +++ b/tsDocs/interfaces/Utils.Exception.html @@ -1,4 +1,4 @@ -Exception | lavalink-client
    interface Exception {
        cause: string;
        message: string;
        severity: Severity;
    }

    Properties

    cause +Exception | lavalink-client
    interface Exception {
        cause: string;
        message: string;
        severity: Severity;
    }

    Properties

    Properties

    cause: string
    message: string
    severity: Severity

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    cause: string
    message: string
    severity: Severity

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.FailingAddress.html b/tsDocs/interfaces/Utils.FailingAddress.html index f116b94..4b8339f 100644 --- a/tsDocs/interfaces/Utils.FailingAddress.html +++ b/tsDocs/interfaces/Utils.FailingAddress.html @@ -1,7 +1,7 @@ -FailingAddress | lavalink-client

    Interface FailingAddress

    interface FailingAddress {
        failingAddress: string;
        failingTime: string;
        failingTimestamp: number;
    }

    Properties

    failingAddress +FailingAddress | lavalink-client

    Interface FailingAddress

    interface FailingAddress {
        failingAddress: string;
        failingTime: string;
        failingTimestamp: number;
    }

    Properties

    failingAddress: string

    The failing address

    -
    failingTime: string

    The timestamp when the address failed as a pretty string

    -
    failingTimestamp: number

    The timestamp when the address failed

    -

    Generated using TypeDoc

    \ No newline at end of file +
    failingTime: string

    The timestamp when the address failed as a pretty string

    +
    failingTimestamp: number

    The timestamp when the address failed

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.GuildShardPayload.html b/tsDocs/interfaces/Utils.GuildShardPayload.html index fd9081e..a68ec4c 100644 --- a/tsDocs/interfaces/Utils.GuildShardPayload.html +++ b/tsDocs/interfaces/Utils.GuildShardPayload.html @@ -1,9 +1,9 @@ -GuildShardPayload | lavalink-client

    Interface GuildShardPayload

    interface GuildShardPayload {
        d: {
            channel_id: string;
            guild_id: string;
            self_deaf: boolean;
            self_mute: boolean;
        };
        op: number;
    }

    Properties

    d +GuildShardPayload | lavalink-client

    Interface GuildShardPayload

    interface GuildShardPayload {
        d: {
            channel_id: string;
            guild_id: string;
            self_deaf: boolean;
            self_mute: boolean;
        };
        op: number;
    }

    Properties

    d op

    Properties

    d: {
        channel_id: string;
        guild_id: string;
        self_deaf: boolean;
        self_mute: boolean;
    }

    Data to send

    Type declaration

    • channel_id: string

      channel to move/connect to, or null to leave it

    • guild_id: string

      Guild id to apply voice settings

    • self_deaf: boolean

      wether or not deafen yourself

    • self_mute: boolean

      wether or not mute yourself

      -
    op: number

    The OP code

    -

    Generated using TypeDoc

    \ No newline at end of file +
    op: number

    The OP code

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.InvalidLavalinkRestRequest.html b/tsDocs/interfaces/Utils.InvalidLavalinkRestRequest.html index 4e73e60..527c092 100644 --- a/tsDocs/interfaces/Utils.InvalidLavalinkRestRequest.html +++ b/tsDocs/interfaces/Utils.InvalidLavalinkRestRequest.html @@ -1,13 +1,13 @@ -InvalidLavalinkRestRequest | lavalink-client

    Interface InvalidLavalinkRestRequest

    interface InvalidLavalinkRestRequest {
        error: string;
        message?: string;
        path: string;
        status: number;
        timestamp: number;
        trace?: unknown;
    }

    Properties

    error +InvalidLavalinkRestRequest | lavalink-client

    Interface InvalidLavalinkRestRequest

    interface InvalidLavalinkRestRequest {
        error: string;
        message?: string;
        path: string;
        status: number;
        timestamp: number;
        trace?: unknown;
    }

    Properties

    error: string

    Specific Errro which was sent

    -
    message?: string

    Specific Message which was created

    -
    path: string

    Path of where it's from

    -
    status: number

    Status of the request

    -
    timestamp: number

    Rest Request Data for when it was made

    -
    trace?: unknown

    The specific error trace from the request

    -

    Generated using TypeDoc

    \ No newline at end of file +
    message?: string

    Specific Message which was created

    +
    path: string

    Path of where it's from

    +
    status: number

    Status of the request

    +
    timestamp: number

    Rest Request Data for when it was made

    +
    trace?: unknown

    The specific error trace from the request

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.LavaSearchFilteredResponse.html b/tsDocs/interfaces/Utils.LavaSearchFilteredResponse.html index f872309..53c0aa9 100644 --- a/tsDocs/interfaces/Utils.LavaSearchFilteredResponse.html +++ b/tsDocs/interfaces/Utils.LavaSearchFilteredResponse.html @@ -1,7 +1,7 @@ -LavaSearchFilteredResponse | lavalink-client

    Interface LavaSearchFilteredResponse

    interface LavaSearchFilteredResponse {
        info: PlaylistInfo;
        pluginInfo: PluginInfo;
        tracks: Track[];
    }

    Properties

    info +LavaSearchFilteredResponse | lavalink-client

    Interface LavaSearchFilteredResponse

    interface LavaSearchFilteredResponse {
        info: PlaylistInfo;
        pluginInfo: PluginInfo;
        tracks: Track[];
    }

    Properties

    The Information of a playlist provided by lavasearch

    -
    pluginInfo: PluginInfo

    additional plugin information

    -
    tracks: Track[]

    List of tracks

    -

    Generated using TypeDoc

    \ No newline at end of file +
    pluginInfo: PluginInfo

    additional plugin information

    +
    tracks: Track[]

    List of tracks

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.LavaSearchResponse.html b/tsDocs/interfaces/Utils.LavaSearchResponse.html index df322fc..fcd8bc1 100644 --- a/tsDocs/interfaces/Utils.LavaSearchResponse.html +++ b/tsDocs/interfaces/Utils.LavaSearchResponse.html @@ -1,13 +1,13 @@ -LavaSearchResponse | lavalink-client

    Interface LavaSearchResponse

    interface LavaSearchResponse {
        albums: LavaSearchFilteredResponse[];
        artists: LavaSearchFilteredResponse[];
        playlists: LavaSearchFilteredResponse[];
        pluginInfo: PluginInfo;
        texts: {
            pluginInfo: PluginInfo;
            text: string;
        }[];
        tracks: Track[];
    }

    Properties

    albums +LavaSearchResponse | lavalink-client

    Interface LavaSearchResponse

    interface LavaSearchResponse {
        albums: LavaSearchFilteredResponse[];
        artists: LavaSearchFilteredResponse[];
        playlists: LavaSearchFilteredResponse[];
        pluginInfo: PluginInfo;
        texts: {
            pluginInfo: PluginInfo;
            text: string;
        }[];
        tracks: Track[];
    }

    Properties

    An array of albums, only present if album is in types

    -

    An array of artists, only present if artist is in types

    -

    An array of playlists, only present if playlist is in types

    -
    pluginInfo: PluginInfo

    Addition result data provided by plugins

    -
    texts: {
        pluginInfo: PluginInfo;
        text: string;
    }[]

    An array of text results, only present if text is in types

    -

    Type declaration

    tracks: Track[]

    An array of tracks, only present if track is in types

    -

    Generated using TypeDoc

    \ No newline at end of file +

    An array of artists, only present if artist is in types

    +

    An array of playlists, only present if playlist is in types

    +
    pluginInfo: PluginInfo

    Addition result data provided by plugins

    +
    texts: {
        pluginInfo: PluginInfo;
        text: string;
    }[]

    An array of text results, only present if text is in types

    +

    Type declaration

    tracks: Track[]

    An array of tracks, only present if track is in types

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.LavalinkPlayer.html b/tsDocs/interfaces/Utils.LavalinkPlayer.html index d1c60f2..0764178 100644 --- a/tsDocs/interfaces/Utils.LavalinkPlayer.html +++ b/tsDocs/interfaces/Utils.LavalinkPlayer.html @@ -1,4 +1,4 @@ -LavalinkPlayer | lavalink-client

    Interface LavalinkPlayer

    interface LavalinkPlayer {
        filters: Partial<LavalinkFilterData>;
        guildId: string;
        paused: boolean;
        state: {
            connected: boolean;
            ping: number;
            position: number;
            time: number;
        };
        track?: LavalinkTrack;
        voice: LavalinkPlayerVoice;
        volume: number;
    }

    Properties

    filters +LavalinkPlayer | lavalink-client

    Interface LavalinkPlayer

    interface LavalinkPlayer {
        filters: Partial<LavalinkFilterData>;
        guildId: string;
        paused: boolean;
        state: {
            connected: boolean;
            ping: number;
            position: number;
            time: number;
        };
        track?: LavalinkTrack;
        voice: LavalinkPlayerVoice;
        volume: number;
    }

    Properties

    filters guildId paused state @@ -6,14 +6,14 @@ voice volume

    Properties

    filters: Partial<LavalinkFilterData>

    All Audio Filters

    -
    guildId: string

    Guild Id of the player

    -
    paused: boolean

    Wether it's paused or not

    -
    state: {
        connected: boolean;
        ping: number;
        position: number;
        time: number;
    }

    Lavalink-Voice-State Variables

    +
    guildId: string

    Guild Id of the player

    +
    paused: boolean

    Wether it's paused or not

    +
    state: {
        connected: boolean;
        ping: number;
        position: number;
        time: number;
    }

    Lavalink-Voice-State Variables

    Type declaration

    • connected: boolean

      COnnected or not

    • ping: number

      Ping to voice server

    • position: number

      Position of the track

    • time: number

      Time since connection established

      -

    IF playing a track, all of the track information

    -

    Voice Endpoint data

    -
    volume: number

    Lavalink volume (mind volumedecrementer)

    -

    Generated using TypeDoc

    \ No newline at end of file +

    IF playing a track, all of the track information

    +

    Voice Endpoint data

    +
    volume: number

    Lavalink volume (mind volumedecrementer)

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.LavalinkPlayerVoice.html b/tsDocs/interfaces/Utils.LavalinkPlayerVoice.html index dabe868..f5061d6 100644 --- a/tsDocs/interfaces/Utils.LavalinkPlayerVoice.html +++ b/tsDocs/interfaces/Utils.LavalinkPlayerVoice.html @@ -1,11 +1,11 @@ -LavalinkPlayerVoice | lavalink-client

    Interface LavalinkPlayerVoice

    interface LavalinkPlayerVoice {
        connected?: boolean;
        endpoint: string;
        ping?: number;
        sessionId: string;
        token: string;
    }

    Properties

    connected? +LavalinkPlayerVoice | lavalink-client

    Interface LavalinkPlayerVoice

    interface LavalinkPlayerVoice {
        connected?: boolean;
        endpoint: string;
        ping?: number;
        sessionId: string;
        token: string;
    }

    Properties

    connected?: boolean

    Wether or not the player is connected

    -
    endpoint: string

    The Voice Server Endpoint

    -
    ping?: number

    The Ping to the voice server

    -
    sessionId: string

    The Voice SessionId

    -
    token: string

    The Voice Token

    -

    Generated using TypeDoc

    \ No newline at end of file +
    endpoint: string

    The Voice Server Endpoint

    +
    ping?: number

    The Ping to the voice server

    +
    sessionId: string

    The Voice SessionId

    +
    token: string

    The Voice Token

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.LavalinkPlayerVoiceOptions.html b/tsDocs/interfaces/Utils.LavalinkPlayerVoiceOptions.html index a43e3c2..7ba7f7a 100644 --- a/tsDocs/interfaces/Utils.LavalinkPlayerVoiceOptions.html +++ b/tsDocs/interfaces/Utils.LavalinkPlayerVoiceOptions.html @@ -1,7 +1,7 @@ -LavalinkPlayerVoiceOptions | lavalink-client

    Interface LavalinkPlayerVoiceOptions

    interface LavalinkPlayerVoiceOptions {
        endpoint: string;
        sessionId: string;
        token: string;
    }

    Hierarchy

    Properties

    endpoint +LavalinkPlayerVoiceOptions | lavalink-client

    Interface LavalinkPlayerVoiceOptions

    interface LavalinkPlayerVoiceOptions {
        endpoint: string;
        sessionId: string;
        token: string;
    }

    Hierarchy

    Properties

    endpoint: string

    The Voice Server Endpoint

    -
    sessionId: string

    The Voice SessionId

    -
    token: string

    The Voice Token

    -

    Generated using TypeDoc

    \ No newline at end of file +
    sessionId: string

    The Voice SessionId

    +
    token: string

    The Voice Token

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.MiniMapConstructor.html b/tsDocs/interfaces/Utils.MiniMapConstructor.html index 2763e04..bc4adc6 100644 --- a/tsDocs/interfaces/Utils.MiniMapConstructor.html +++ b/tsDocs/interfaces/Utils.MiniMapConstructor.html @@ -1,4 +1,4 @@ -MiniMapConstructor | lavalink-client

    Interface MiniMapConstructorInternal

    interface MiniMapConstructor {
        new MiniMapConstructornew (): MiniMap<unknown, unknown>;
        new MiniMapConstructornew <K, V>(entries?): MiniMap<K, V>;
        new MiniMapConstructornew <K, V>(iterable): MiniMap<K, V>;
        [species]: MiniMapConstructor;
        prototype: MiniMap<unknown, unknown>;
    }

    Constructors

    constructor +MiniMapConstructor | lavalink-client

    Interface MiniMapConstructorInternal

    interface MiniMapConstructor {
        new MiniMapConstructornew (): MiniMap<unknown, unknown>;
        new MiniMapConstructornew <K, V>(entries?): MiniMap<K, V>;
        new MiniMapConstructornew <K, V>(iterable): MiniMap<K, V>;
        [species]: MiniMapConstructor;
        prototype: MiniMap<unknown, unknown>;
    }

    Constructors

    Properties

    Constructors

    Properties

    prototype: MiniMap<unknown, unknown>

    Generated using TypeDoc

    \ No newline at end of file +

    Constructors

    Properties

    prototype: MiniMap<unknown, unknown>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.NodeMessage.html b/tsDocs/interfaces/Utils.NodeMessage.html index bc3de2c..b8eeae0 100644 --- a/tsDocs/interfaces/Utils.NodeMessage.html +++ b/tsDocs/interfaces/Utils.NodeMessage.html @@ -1,4 +1,4 @@ -NodeMessage | lavalink-client

    Interface NodeMessage

    interface NodeMessage {
        cpu: CPUStats;
        frameStats: FrameStats;
        guildId: string;
        memory: MemoryStats;
        op: "event" | "stats" | "playerUpdate";
        players: number;
        playingPlayers: number;
        type: PlayerEventType;
        uptime: number;
    }

    Hierarchy

    Properties

    cpu +NodeMessage | lavalink-client

    Interface NodeMessage

    interface NodeMessage {
        cpu: CPUStats;
        frameStats: FrameStats;
        guildId: string;
        memory: MemoryStats;
        op: "event" | "stats" | "playerUpdate";
        players: number;
        playingPlayers: number;
        type: PlayerEventType;
        uptime: number;
    }

    Hierarchy

    Properties

    cpu frameStats guildId memory @@ -8,12 +8,12 @@ type uptime

    Properties

    The cpu stats for the node.

    -
    frameStats: FrameStats

    The frame stats for the node.

    -
    guildId: string

    The specific guild id for that message

    -
    memory: MemoryStats

    The memory stats for the node.

    -
    op: "event" | "stats" | "playerUpdate"

    what ops are applying to that event

    -
    players: number

    The amount of players on the node.

    -
    playingPlayers: number

    The amount of playing players on the node.

    -

    The type of the event

    -
    uptime: number

    The uptime for the node.

    -

    Generated using TypeDoc

    \ No newline at end of file +
    frameStats: FrameStats

    The frame stats for the node.

    +
    guildId: string

    The specific guild id for that message

    +
    memory: MemoryStats

    The memory stats for the node.

    +
    op: "event" | "stats" | "playerUpdate"

    what ops are applying to that event

    +
    players: number

    The amount of players on the node.

    +
    playingPlayers: number

    The amount of playing players on the node.

    +

    The type of the event

    +
    uptime: number

    The uptime for the node.

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.PlayerEvent.html b/tsDocs/interfaces/Utils.PlayerEvent.html index 95e849f..600f01a 100644 --- a/tsDocs/interfaces/Utils.PlayerEvent.html +++ b/tsDocs/interfaces/Utils.PlayerEvent.html @@ -1,4 +1,4 @@ -PlayerEvent | lavalink-client

    Interface PlayerEvent

    interface PlayerEvent {
        guildId: string;
        op: "event";
        type: PlayerEventType;
    }

    Hierarchy

    Properties

    guildId +PlayerEvent | lavalink-client

    Interface PlayerEvent

    interface PlayerEvent {
        guildId: string;
        op: "event";
        type: PlayerEventType;
    }

    Hierarchy

    Properties

    Properties

    guildId: string
    op: "event"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    guildId: string
    op: "event"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.PlayerUpdateInfo.html b/tsDocs/interfaces/Utils.PlayerUpdateInfo.html index 3f27e51..3f63e93 100644 --- a/tsDocs/interfaces/Utils.PlayerUpdateInfo.html +++ b/tsDocs/interfaces/Utils.PlayerUpdateInfo.html @@ -1,7 +1,7 @@ -PlayerUpdateInfo | lavalink-client

    Interface PlayerUpdateInfo

    interface PlayerUpdateInfo {
        guildId: string;
        noReplace?: boolean;
        playerOptions: LavalinkPlayOptions;
    }

    Properties

    guildId +PlayerUpdateInfo | lavalink-client

    Interface PlayerUpdateInfo

    interface PlayerUpdateInfo {
        guildId: string;
        noReplace?: boolean;
        playerOptions: LavalinkPlayOptions;
    }

    Properties

    guildId: string

    guild id of the player

    -
    noReplace?: boolean

    Whether or not replace the current track with the new one (true is recommended)

    -
    playerOptions: LavalinkPlayOptions

    Player options to provide to lavalink

    -

    Generated using TypeDoc

    \ No newline at end of file +
    noReplace?: boolean

    Whether or not replace the current track with the new one (true is recommended)

    +
    playerOptions: LavalinkPlayOptions

    Player options to provide to lavalink

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.PlaylistInfo.html b/tsDocs/interfaces/Utils.PlaylistInfo.html index c7f84cb..ea8a4ea 100644 --- a/tsDocs/interfaces/Utils.PlaylistInfo.html +++ b/tsDocs/interfaces/Utils.PlaylistInfo.html @@ -1,4 +1,4 @@ -PlaylistInfo | lavalink-client

    Interface PlaylistInfo

    interface PlaylistInfo {
        author?: string;
        duration: number;
        name: string;
        selectedTrack: Track;
        thumbnail?: string;
        title: string;
        uri?: string;
    }

    Properties

    author? +PlaylistInfo | lavalink-client

    Interface PlaylistInfo

    interface PlaylistInfo {
        author?: string;
        duration: number;
        name: string;
        selectedTrack: Track;
        thumbnail?: string;
        title: string;
        uri?: string;
    }

    Properties

    Properties

    author?: string

    The Playlist Author

    -
    duration: number

    The duration of the entire playlist. (calcualted)

    -
    name: string

    The playlist name (if provided instead of title)

    -
    selectedTrack: Track

    The playlist selected track.

    -
    thumbnail?: string

    The Playlist Thumbnail

    -
    title: string

    The playlist title.

    -
    uri?: string

    A Uri to the playlist

    -

    Generated using TypeDoc

    \ No newline at end of file +
    duration: number

    The duration of the entire playlist. (calcualted)

    +
    name: string

    The playlist name (if provided instead of title)

    +
    selectedTrack: Track

    The playlist selected track.

    +
    thumbnail?: string

    The Playlist Thumbnail

    +
    title: string

    The playlist title.

    +
    uri?: string

    A Uri to the playlist

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.RoutePlanner.html b/tsDocs/interfaces/Utils.RoutePlanner.html index d847cef..86d70fa 100644 --- a/tsDocs/interfaces/Utils.RoutePlanner.html +++ b/tsDocs/interfaces/Utils.RoutePlanner.html @@ -1,6 +1,6 @@ -RoutePlanner | lavalink-client

    Interface RoutePlanner

    interface RoutePlanner {
        class?: RoutePlannerTypes;
        details?: {
            blockIndex?: string;
            currentAddress?: string;
            currentAddressIndex?: string;
            failingAddresses: FailingAddress[];
            ipBlock: {
                size: string;
                type: "Inet4Address" | "Inet6Address";
            };
            ipIndex?: string;
            rotateIndex?: string;
        };
    }

    Properties

    class? +RoutePlanner | lavalink-client

    Interface RoutePlanner

    interface RoutePlanner {
        class?: RoutePlannerTypes;
        details?: {
            blockIndex?: string;
            currentAddress?: string;
            currentAddressIndex?: string;
            failingAddresses: FailingAddress[];
            ipBlock: {
                size: string;
                type: "Inet4Address" | "Inet6Address";
            };
            ipIndex?: string;
            rotateIndex?: string;
        };
    }

    Properties

    Properties

    class?: RoutePlannerTypes
    details?: {
        blockIndex?: string;
        currentAddress?: string;
        currentAddressIndex?: string;
        failingAddresses: FailingAddress[];
        ipBlock: {
            size: string;
            type: "Inet4Address" | "Inet6Address";
        };
        ipIndex?: string;
        rotateIndex?: string;
    }

    Type declaration

    • Optional blockIndex?: string

      The information in which /64 block ips are chosen. This number increases on each ban.

      +

    Properties

    class?: RoutePlannerTypes
    details?: {
        blockIndex?: string;
        currentAddress?: string;
        currentAddressIndex?: string;
        failingAddresses: FailingAddress[];
        ipBlock: {
            size: string;
            type: "Inet4Address" | "Inet6Address";
        };
        ipIndex?: string;
        rotateIndex?: string;
    }

    Type declaration

    • Optional blockIndex?: string

      The information in which /64 block ips are chosen. This number increases on each ban.

    • Optional currentAddress?: string

      The current address being used

    • Optional currentAddressIndex?: string

      The current offset in the ip block

    • failingAddresses: FailingAddress[]

      The failing addresses

      @@ -9,4 +9,4 @@
    • type: "Inet4Address" | "Inet6Address"

      The type of the ip block

  • Optional ipIndex?: string

    The current offset in the block

  • Optional rotateIndex?: string

    The number of rotations

    -
  • Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.SearchResult.html b/tsDocs/interfaces/Utils.SearchResult.html index b00a53a..15cdf45 100644 --- a/tsDocs/interfaces/Utils.SearchResult.html +++ b/tsDocs/interfaces/Utils.SearchResult.html @@ -1,6 +1,6 @@ -SearchResult | lavalink-client

    Interface SearchResult

    interface SearchResult {
        exception: Exception;
        loadType: LoadTypes;
        playlist: PlaylistInfo;
        pluginInfo: PluginInfo;
        tracks: Track[];
    }

    Properties

    exception +SearchResult | lavalink-client

    Interface SearchResult

    interface SearchResult {
        exception: Exception;
        loadType: LoadTypes;
        playlist: PlaylistInfo;
        pluginInfo: PluginInfo;
        tracks: Track[];
    }

    Properties

    exception: Exception
    loadType: LoadTypes
    playlist: PlaylistInfo
    pluginInfo: PluginInfo
    tracks: Track[]

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    exception: Exception
    loadType: LoadTypes
    playlist: PlaylistInfo
    pluginInfo: PluginInfo
    tracks: Track[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.Session.html b/tsDocs/interfaces/Utils.Session.html index 5c170de..a761fb8 100644 --- a/tsDocs/interfaces/Utils.Session.html +++ b/tsDocs/interfaces/Utils.Session.html @@ -1,5 +1,5 @@ -Session | lavalink-client
    interface Session {
        resuming: boolean;
        timeout: number;
    }

    Properties

    resuming +Session | lavalink-client
    interface Session {
        resuming: boolean;
        timeout: number;
    }

    Properties

    Properties

    resuming: boolean

    Wether or not session is resuming or not

    -
    timeout: number

    For how long a session is lasting while not connected

    -

    Generated using TypeDoc

    \ No newline at end of file +
    timeout: number

    For how long a session is lasting while not connected

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.SponsorBlockChapterStarted.html b/tsDocs/interfaces/Utils.SponsorBlockChapterStarted.html index de476e0..6f6419e 100644 --- a/tsDocs/interfaces/Utils.SponsorBlockChapterStarted.html +++ b/tsDocs/interfaces/Utils.SponsorBlockChapterStarted.html @@ -1,7 +1,7 @@ -SponsorBlockChapterStarted | lavalink-client

    Interface SponsorBlockChapterStarted

    interface SponsorBlockChapterStarted {
        chapter: {
            duration: number;
            end: number;
            name: string;
            start: number;
        };
        guildId: string;
        op: "event";
        type: "ChapterStarted";
    }

    Hierarchy

    Properties

    chapter +SponsorBlockChapterStarted | lavalink-client

    Interface SponsorBlockChapterStarted

    interface SponsorBlockChapterStarted {
        chapter: {
            duration: number;
            end: number;
            name: string;
            start: number;
        };
        guildId: string;
        op: "event";
        type: "ChapterStarted";
    }

    Hierarchy

    Properties

    Properties

    chapter: {
        duration: number;
        end: number;
        name: string;
        start: number;
    }

    The Chapter which started

    Type declaration

    • duration: number
    • end: number
    • name: string

      The Name of the Chapter

      -
    • start: number
    guildId: string
    op: "event"
    type: "ChapterStarted"

    Generated using TypeDoc

    \ No newline at end of file +
  • start: number
  • guildId: string
    op: "event"
    type: "ChapterStarted"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.SponsorBlockChaptersLoaded.html b/tsDocs/interfaces/Utils.SponsorBlockChaptersLoaded.html index fb18372..1f9ab92 100644 --- a/tsDocs/interfaces/Utils.SponsorBlockChaptersLoaded.html +++ b/tsDocs/interfaces/Utils.SponsorBlockChaptersLoaded.html @@ -1,7 +1,7 @@ -SponsorBlockChaptersLoaded | lavalink-client

    Interface SponsorBlockChaptersLoaded

    interface SponsorBlockChaptersLoaded {
        chapters: {
            duration: number;
            end: number;
            name: string;
            start: number;
        }[];
        guildId: string;
        op: "event";
        type: "ChaptersLoaded";
    }

    Hierarchy

    Properties

    chapters +SponsorBlockChaptersLoaded | lavalink-client

    Interface SponsorBlockChaptersLoaded

    interface SponsorBlockChaptersLoaded {
        chapters: {
            duration: number;
            end: number;
            name: string;
            start: number;
        }[];
        guildId: string;
        op: "event";
        type: "ChaptersLoaded";
    }

    Hierarchy

    Properties

    Properties

    chapters: {
        duration: number;
        end: number;
        name: string;
        start: number;
    }[]

    All Chapters loaded

    Type declaration

    • duration: number
    • end: number
    • name: string

      The Name of the Chapter

      -
    • start: number
    guildId: string
    op: "event"
    type: "ChaptersLoaded"

    Generated using TypeDoc

    \ No newline at end of file +
  • start: number
  • guildId: string
    op: "event"
    type: "ChaptersLoaded"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.SponsorBlockSegmentSkipped.html b/tsDocs/interfaces/Utils.SponsorBlockSegmentSkipped.html index 272567b..3401a27 100644 --- a/tsDocs/interfaces/Utils.SponsorBlockSegmentSkipped.html +++ b/tsDocs/interfaces/Utils.SponsorBlockSegmentSkipped.html @@ -1,5 +1,5 @@ -SponsorBlockSegmentSkipped | lavalink-client

    Interface SponsorBlockSegmentSkipped

    interface SponsorBlockSegmentSkipped {
        guildId: string;
        op: "event";
        segment: {
            category: string;
            end: number;
            start: number;
        };
        type: "SegmentSkipped";
    }

    Hierarchy

    Properties

    guildId +SponsorBlockSegmentSkipped | lavalink-client

    Interface SponsorBlockSegmentSkipped

    interface SponsorBlockSegmentSkipped {
        guildId: string;
        op: "event";
        segment: {
            category: string;
            end: number;
            start: number;
        };
        type: "SegmentSkipped";
    }

    Hierarchy

    Properties

    Properties

    guildId: string
    op: "event"
    segment: {
        category: string;
        end: number;
        start: number;
    }

    Type declaration

    • category: string
    • end: number
    • start: number
    type: "SegmentSkipped"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    guildId: string
    op: "event"
    segment: {
        category: string;
        end: number;
        start: number;
    }

    Type declaration

    • category: string
    • end: number
    • start: number
    type: "SegmentSkipped"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.SponsorBlockSegmentsLoaded.html b/tsDocs/interfaces/Utils.SponsorBlockSegmentsLoaded.html index f433100..1d761cf 100644 --- a/tsDocs/interfaces/Utils.SponsorBlockSegmentsLoaded.html +++ b/tsDocs/interfaces/Utils.SponsorBlockSegmentsLoaded.html @@ -1,5 +1,5 @@ -SponsorBlockSegmentsLoaded | lavalink-client

    Interface SponsorBlockSegmentsLoaded

    interface SponsorBlockSegmentsLoaded {
        guildId: string;
        op: "event";
        segments: {
            category: string;
            end: number;
            start: number;
        }[];
        type: "SegmentsLoaded";
    }

    Hierarchy

    Properties

    guildId +SponsorBlockSegmentsLoaded | lavalink-client

    Interface SponsorBlockSegmentsLoaded

    interface SponsorBlockSegmentsLoaded {
        guildId: string;
        op: "event";
        segments: {
            category: string;
            end: number;
            start: number;
        }[];
        type: "SegmentsLoaded";
    }

    Hierarchy

    Properties

    Properties

    guildId: string
    op: "event"
    segments: {
        category: string;
        end: number;
        start: number;
    }[]

    Type declaration

    • category: string
    • end: number
    • start: number
    type: "SegmentsLoaded"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    guildId: string
    op: "event"
    segments: {
        category: string;
        end: number;
        start: number;
    }[]

    Type declaration

    • category: string
    • end: number
    • start: number
    type: "SegmentsLoaded"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.TrackEndEvent.html b/tsDocs/interfaces/Utils.TrackEndEvent.html index 4515d60..6dc9058 100644 --- a/tsDocs/interfaces/Utils.TrackEndEvent.html +++ b/tsDocs/interfaces/Utils.TrackEndEvent.html @@ -1,6 +1,6 @@ -TrackEndEvent | lavalink-client

    Interface TrackEndEvent

    interface TrackEndEvent {
        guildId: string;
        op: "event";
        reason: TrackEndReason;
        track: string;
        type: "TrackEndEvent";
    }

    Hierarchy

    Properties

    guildId +TrackEndEvent | lavalink-client

    Interface TrackEndEvent

    interface TrackEndEvent {
        guildId: string;
        op: "event";
        reason: TrackEndReason;
        track: string;
        type: "TrackEndEvent";
    }

    Hierarchy

    Properties

    Properties

    guildId: string
    op: "event"
    track: string
    type: "TrackEndEvent"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    guildId: string
    op: "event"
    track: string
    type: "TrackEndEvent"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.TrackExceptionEvent.html b/tsDocs/interfaces/Utils.TrackExceptionEvent.html index 1a27926..acab00d 100644 --- a/tsDocs/interfaces/Utils.TrackExceptionEvent.html +++ b/tsDocs/interfaces/Utils.TrackExceptionEvent.html @@ -1,6 +1,6 @@ -TrackExceptionEvent | lavalink-client

    Interface TrackExceptionEvent

    interface TrackExceptionEvent {
        error: string;
        exception?: Exception;
        guildId: string;
        op: "event";
        type: "TrackExceptionEvent";
    }

    Hierarchy

    Properties

    error +TrackExceptionEvent | lavalink-client

    Interface TrackExceptionEvent

    interface TrackExceptionEvent {
        error: string;
        exception?: Exception;
        guildId: string;
        op: "event";
        type: "TrackExceptionEvent";
    }

    Hierarchy

    Properties

    error: string
    exception?: Exception
    guildId: string
    op: "event"
    type: "TrackExceptionEvent"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    error: string
    exception?: Exception
    guildId: string
    op: "event"
    type: "TrackExceptionEvent"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.TrackStartEvent.html b/tsDocs/interfaces/Utils.TrackStartEvent.html index 25d480f..fc9ef2c 100644 --- a/tsDocs/interfaces/Utils.TrackStartEvent.html +++ b/tsDocs/interfaces/Utils.TrackStartEvent.html @@ -1,5 +1,5 @@ -TrackStartEvent | lavalink-client

    Interface TrackStartEvent

    interface TrackStartEvent {
        guildId: string;
        op: "event";
        track: string;
        type: "TrackStartEvent";
    }

    Hierarchy

    Properties

    guildId +TrackStartEvent | lavalink-client

    Interface TrackStartEvent

    interface TrackStartEvent {
        guildId: string;
        op: "event";
        track: string;
        type: "TrackStartEvent";
    }

    Hierarchy

    Properties

    Properties

    guildId: string
    op: "event"
    track: string
    type: "TrackStartEvent"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    guildId: string
    op: "event"
    track: string
    type: "TrackStartEvent"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.TrackStuckEvent.html b/tsDocs/interfaces/Utils.TrackStuckEvent.html index 8a5aba8..b6fbe10 100644 --- a/tsDocs/interfaces/Utils.TrackStuckEvent.html +++ b/tsDocs/interfaces/Utils.TrackStuckEvent.html @@ -1,5 +1,5 @@ -TrackStuckEvent | lavalink-client

    Interface TrackStuckEvent

    interface TrackStuckEvent {
        guildId: string;
        op: "event";
        thresholdMs: number;
        type: "TrackStuckEvent";
    }

    Hierarchy

    Properties

    guildId +TrackStuckEvent | lavalink-client

    Interface TrackStuckEvent

    interface TrackStuckEvent {
        guildId: string;
        op: "event";
        thresholdMs: number;
        type: "TrackStuckEvent";
    }

    Hierarchy

    Properties

    guildId: string
    op: "event"
    thresholdMs: number
    type: "TrackStuckEvent"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    guildId: string
    op: "event"
    thresholdMs: number
    type: "TrackStuckEvent"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.UnresolvedSearchResult.html b/tsDocs/interfaces/Utils.UnresolvedSearchResult.html index fb54d90..25dfb74 100644 --- a/tsDocs/interfaces/Utils.UnresolvedSearchResult.html +++ b/tsDocs/interfaces/Utils.UnresolvedSearchResult.html @@ -1,6 +1,6 @@ -UnresolvedSearchResult | lavalink-client

    Interface UnresolvedSearchResult

    interface UnresolvedSearchResult {
        exception: Exception;
        loadType: LoadTypes;
        playlist: PlaylistInfo;
        pluginInfo: PluginInfo;
        tracks: UnresolvedTrack[];
    }

    Properties

    exception +UnresolvedSearchResult | lavalink-client

    Interface UnresolvedSearchResult

    interface UnresolvedSearchResult {
        exception: Exception;
        loadType: LoadTypes;
        playlist: PlaylistInfo;
        pluginInfo: PluginInfo;
        tracks: UnresolvedTrack[];
    }

    Properties

    exception: Exception
    loadType: LoadTypes
    playlist: PlaylistInfo
    pluginInfo: PluginInfo
    tracks: UnresolvedTrack[]

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    exception: Exception
    loadType: LoadTypes
    playlist: PlaylistInfo
    pluginInfo: PluginInfo
    tracks: UnresolvedTrack[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.VoicePacket.html b/tsDocs/interfaces/Utils.VoicePacket.html index 1c84ba9..3195917 100644 --- a/tsDocs/interfaces/Utils.VoicePacket.html +++ b/tsDocs/interfaces/Utils.VoicePacket.html @@ -1,5 +1,5 @@ -VoicePacket | lavalink-client

    Interface VoicePacket

    interface VoicePacket {
        d: VoiceState | VoiceServer;
        t?: "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATE";
    }

    Properties

    d +VoicePacket | lavalink-client

    Interface VoicePacket

    interface VoicePacket {
        d: VoiceState | VoiceServer;
        t?: "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATE";
    }

    Properties

    d t?

    Properties

    Voice Packets to send

    -
    t?: "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATE"

    Voice Packet Keys to send

    -

    Generated using TypeDoc

    \ No newline at end of file +
    t?: "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATE"

    Voice Packet Keys to send

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.VoiceServer.html b/tsDocs/interfaces/Utils.VoiceServer.html index f7e60a1..a53abad 100644 --- a/tsDocs/interfaces/Utils.VoiceServer.html +++ b/tsDocs/interfaces/Utils.VoiceServer.html @@ -1,7 +1,7 @@ -VoiceServer | lavalink-client

    Interface VoiceServer

    interface VoiceServer {
        endpoint: string;
        guild_id: string;
        token: string;
    }

    Properties

    endpoint +VoiceServer | lavalink-client

    Interface VoiceServer

    interface VoiceServer {
        endpoint: string;
        guild_id: string;
        token: string;
    }

    Properties

    endpoint: string

    Server Endpoint

    -
    guild_id: string

    Guild Id of the voice server connection

    -
    token: string

    Voice Token

    -

    Generated using TypeDoc

    \ No newline at end of file +
    guild_id: string

    Guild Id of the voice server connection

    +
    token: string

    Voice Token

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.VoiceState.html b/tsDocs/interfaces/Utils.VoiceState.html index 52a3dfe..46c28df 100644 --- a/tsDocs/interfaces/Utils.VoiceState.html +++ b/tsDocs/interfaces/Utils.VoiceState.html @@ -1,4 +1,4 @@ -VoiceState | lavalink-client

    Interface VoiceState

    interface VoiceState {
        channel_id: string;
        event: VoiceServer;
        guildId: string;
        guild_id: string;
        op: "voiceUpdate";
        sessionId?: string;
        session_id: string;
        user_id: string;
    }

    Properties

    channel_id +VoiceState | lavalink-client

    Interface VoiceState

    interface VoiceState {
        channel_id: string;
        event: VoiceServer;
        guildId: string;
        guild_id: string;
        op: "voiceUpdate";
        sessionId?: string;
        session_id: string;
        user_id: string;
    }

    Properties

    Properties

    channel_id: string

    Voice Channel Id

    -

    Event data

    -
    guildId: string

    GuildId provided by lavalink

    -
    guild_id: string

    guild id of the voice channel

    -
    op: "voiceUpdate"

    OP key from lavalink

    -
    sessionId?: string

    Session Id of the voice connection

    -
    session_id: string

    Session Id of the voice connection

    -
    user_id: string

    user id from the voice connection

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Event data

    +
    guildId: string

    GuildId provided by lavalink

    +
    guild_id: string

    guild id of the voice channel

    +
    op: "voiceUpdate"

    OP key from lavalink

    +
    sessionId?: string

    Session Id of the voice connection

    +
    session_id: string

    Session Id of the voice connection

    +
    user_id: string

    user id from the voice connection

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/interfaces/Utils.WebSocketClosedEvent.html b/tsDocs/interfaces/Utils.WebSocketClosedEvent.html index 48f9b92..b46003c 100644 --- a/tsDocs/interfaces/Utils.WebSocketClosedEvent.html +++ b/tsDocs/interfaces/Utils.WebSocketClosedEvent.html @@ -1,7 +1,7 @@ -WebSocketClosedEvent | lavalink-client

    Interface WebSocketClosedEvent

    interface WebSocketClosedEvent {
        byRemote: boolean;
        code: number;
        guildId: string;
        op: "event";
        reason: string;
        type: "WebSocketClosedEvent";
    }

    Hierarchy

    Properties

    byRemote +WebSocketClosedEvent | lavalink-client

    Interface WebSocketClosedEvent

    interface WebSocketClosedEvent {
        byRemote: boolean;
        code: number;
        guildId: string;
        op: "event";
        reason: string;
        type: "WebSocketClosedEvent";
    }

    Hierarchy

    Properties

    byRemote: boolean
    code: number
    guildId: string
    op: "event"
    reason: string
    type: "WebSocketClosedEvent"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    byRemote: boolean
    code: number
    guildId: string
    op: "event"
    reason: string
    type: "WebSocketClosedEvent"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/modules/CustomSearches_BandCampSearch.html b/tsDocs/modules/CustomSearches_BandCampSearch.html index 106b94e..1853928 100644 --- a/tsDocs/modules/CustomSearches_BandCampSearch.html +++ b/tsDocs/modules/CustomSearches_BandCampSearch.html @@ -1,2 +1,2 @@ -CustomSearches/BandCampSearch | lavalink-client

    Module CustomSearches/BandCampSearch

    Index

    Functions

    bandCampSearch +CustomSearches/BandCampSearch | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/modules/Filters.html b/tsDocs/modules/Filters.html index 0c58ca9..6389241 100644 --- a/tsDocs/modules/Filters.html +++ b/tsDocs/modules/Filters.html @@ -1,4 +1,4 @@ -Filters | lavalink-client

    Index

    Classes

    FilterManager +Filters | lavalink-client

    Index

    Classes

    Interfaces

    ChannelMixFilter DistortionFilter EQBand diff --git a/tsDocs/modules/LavalinkManager.html b/tsDocs/modules/LavalinkManager.html index 080ef6f..7623e35 100644 --- a/tsDocs/modules/LavalinkManager.html +++ b/tsDocs/modules/LavalinkManager.html @@ -1,4 +1,4 @@ -LavalinkManager | lavalink-client

    Module LavalinkManager

    Index

    Classes

    LavalinkManager +LavalinkManager | lavalink-client

    Module LavalinkManager

    Index

    Classes

    Interfaces

    BotClientOptions ManagerOptions ManagerPlayerOptions diff --git a/tsDocs/modules/LavalinkManagerStatics.html b/tsDocs/modules/LavalinkManagerStatics.html index 93844f0..13dd757 100644 --- a/tsDocs/modules/LavalinkManagerStatics.html +++ b/tsDocs/modules/LavalinkManagerStatics.html @@ -1,4 +1,4 @@ -LavalinkManagerStatics | lavalink-client

    Module LavalinkManagerStatics

    Index

    Variables

    DefaultSources +LavalinkManagerStatics | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/modules/Node.html b/tsDocs/modules/Node.html index 8bd8593..3257ea5 100644 --- a/tsDocs/modules/Node.html +++ b/tsDocs/modules/Node.html @@ -1,4 +1,4 @@ -Node | lavalink-client

    Index

    Classes

    LavalinkNode +Node | lavalink-client

    Index

    Classes

    Interfaces

    BaseNodeStats CPUStats FrameStats diff --git a/tsDocs/modules/NodeManager.html b/tsDocs/modules/NodeManager.html index 41bc7ca..8e7d869 100644 --- a/tsDocs/modules/NodeManager.html +++ b/tsDocs/modules/NodeManager.html @@ -1,2 +1,2 @@ -NodeManager | lavalink-client

    Module NodeManager

    Index

    Classes

    NodeManager +NodeManager | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/modules/Player.html b/tsDocs/modules/Player.html index f361b02..f27ba85 100644 --- a/tsDocs/modules/Player.html +++ b/tsDocs/modules/Player.html @@ -1,4 +1,4 @@ -Player | lavalink-client

    Index

    Classes

    Player +Player | lavalink-client

    Index

    Classes

    Interfaces

    BasePlayOptions LavalinkPlayOptions PlayOptions diff --git a/tsDocs/modules/Queue.html b/tsDocs/modules/Queue.html index ba7472c..d36de1e 100644 --- a/tsDocs/modules/Queue.html +++ b/tsDocs/modules/Queue.html @@ -1,4 +1,4 @@ -Queue | lavalink-client

    Index

    Classes

    DefaultQueueStore +Queue | lavalink-client

    Index

    Classes

    Interfaces

    ManagerQueueOptions diff --git a/tsDocs/modules/Track.html b/tsDocs/modules/Track.html index 38a2bda..b064e59 100644 --- a/tsDocs/modules/Track.html +++ b/tsDocs/modules/Track.html @@ -1,4 +1,4 @@ -Track | lavalink-client

    Index

    Interfaces

    LavalinkTrack +Track | lavalink-client

    Index

    Interfaces

    LavalinkTrack LavalinkTrackInfo PluginInfo Track diff --git a/tsDocs/modules/Utils.html b/tsDocs/modules/Utils.html index bb809ab..15e16c5 100644 --- a/tsDocs/modules/Utils.html +++ b/tsDocs/modules/Utils.html @@ -1,4 +1,4 @@ -Utils | lavalink-client

    Index

    Classes

    ManagerUtils +Utils | lavalink-client

    Index

    Classes

    Interfaces

    ChannelDeletePacket Exception diff --git a/tsDocs/types/Filters.AudioOutputs.html b/tsDocs/types/Filters.AudioOutputs.html index aff48cb..b494c82 100644 --- a/tsDocs/types/Filters.AudioOutputs.html +++ b/tsDocs/types/Filters.AudioOutputs.html @@ -1,2 +1,2 @@ AudioOutputs | lavalink-client

    Type alias AudioOutputs

    AudioOutputs: "mono" | "stereo" | "left" | "right"

    The Audio Outputs type

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Node.ModifyRequest.html b/tsDocs/types/Node.ModifyRequest.html index 24a08f7..f6d9ce5 100644 --- a/tsDocs/types/Node.ModifyRequest.html +++ b/tsDocs/types/Node.ModifyRequest.html @@ -1,2 +1,2 @@ ModifyRequest | lavalink-client

    Type alias ModifyRequest

    ModifyRequest: ((options) => void)

    Type declaration

      • (options): void
      • Modifies any outgoing REST requests.

        -

        Parameters

        • options: Dispatcher.RequestOptions

        Returns void

    Generated using TypeDoc

    \ No newline at end of file +

    Parameters

    • options: Dispatcher.RequestOptions

    Returns void

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Node.SponsorBlockSegment.html b/tsDocs/types/Node.SponsorBlockSegment.html index 0a0ac2f..86fa605 100644 --- a/tsDocs/types/Node.SponsorBlockSegment.html +++ b/tsDocs/types/Node.SponsorBlockSegment.html @@ -1 +1 @@ -SponsorBlockSegment | lavalink-client

    Type alias SponsorBlockSegment

    SponsorBlockSegment: "sponsor" | "selfpromo" | "interaction" | "intro" | "outro" | "preview" | "music_offtopic" | "filler"

    Generated using TypeDoc

    \ No newline at end of file +SponsorBlockSegment | lavalink-client

    Type alias SponsorBlockSegment

    SponsorBlockSegment: "sponsor" | "selfpromo" | "interaction" | "intro" | "outro" | "preview" | "music_offtopic" | "filler"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Player.DestroyReasonsType.html b/tsDocs/types/Player.DestroyReasonsType.html index 1fbe0ba..9b26995 100644 --- a/tsDocs/types/Player.DestroyReasonsType.html +++ b/tsDocs/types/Player.DestroyReasonsType.html @@ -1 +1 @@ -DestroyReasonsType | lavalink-client

    Type alias DestroyReasonsType

    DestroyReasonsType: PlayerDestroyReasons | string

    Generated using TypeDoc

    \ No newline at end of file +DestroyReasonsType | lavalink-client

    Type alias DestroyReasonsType

    DestroyReasonsType: PlayerDestroyReasons | string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Player.RepeatMode.html b/tsDocs/types/Player.RepeatMode.html index 01a02ba..085addd 100644 --- a/tsDocs/types/Player.RepeatMode.html +++ b/tsDocs/types/Player.RepeatMode.html @@ -1 +1 @@ -RepeatMode | lavalink-client

    Type alias RepeatMode

    RepeatMode: "queue" | "track" | "off"

    Generated using TypeDoc

    \ No newline at end of file +RepeatMode | lavalink-client

    Type alias RepeatMode

    RepeatMode: "queue" | "track" | "off"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Player.anyObject.html b/tsDocs/types/Player.anyObject.html index 08c405a..81455ef 100644 --- a/tsDocs/types/Player.anyObject.html +++ b/tsDocs/types/Player.anyObject.html @@ -1 +1 @@ -anyObject | lavalink-client

    Type alias anyObject

    anyObject: {
        [key: string | number]: string | number | null | anyObject;
    }

    Type declaration

    • [key: string | number]: string | number | null | anyObject

    Generated using TypeDoc

    \ No newline at end of file +anyObject | lavalink-client

    Type alias anyObject

    anyObject: {
        [key: string | number]: string | number | null | anyObject;
    }

    Type declaration

    • [key: string | number]: string | number | null | anyObject

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Track.LavalinkPlugin_LavaSrc_SourceNames.html b/tsDocs/types/Track.LavalinkPlugin_LavaSrc_SourceNames.html index 4715f63..fa7cd02 100644 --- a/tsDocs/types/Track.LavalinkPlugin_LavaSrc_SourceNames.html +++ b/tsDocs/types/Track.LavalinkPlugin_LavaSrc_SourceNames.html @@ -1,2 +1,2 @@ LavalinkPlugin_LavaSrc_SourceNames | lavalink-client

    Type alias LavalinkPlugin_LavaSrc_SourceNames

    LavalinkPlugin_LavaSrc_SourceNames: "deezer" | "spotify" | "applemusic" | "yandexmusic" | "flowery-tts"

    Source Names provided by lava src plugin

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Track.LavalinkSourceNames.html b/tsDocs/types/Track.LavalinkSourceNames.html index 639d021..639dfd5 100644 --- a/tsDocs/types/Track.LavalinkSourceNames.html +++ b/tsDocs/types/Track.LavalinkSourceNames.html @@ -1,2 +1,2 @@ LavalinkSourceNames | lavalink-client

    Type alias LavalinkSourceNames

    LavalinkSourceNames: "youtube" | "youtubemusic" | "soundcloud" | "bandcamp" | "twitch"

    Sourcenames provided by lavalink server

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Track.SourceNames.html b/tsDocs/types/Track.SourceNames.html index 9f886ed..2336897 100644 --- a/tsDocs/types/Track.SourceNames.html +++ b/tsDocs/types/Track.SourceNames.html @@ -1,2 +1,2 @@ SourceNames | lavalink-client

    Type alias SourceNames

    The SourceNames provided by lavalink

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.Base64.html b/tsDocs/types/Utils.Base64.html index 60ff1c8..301b98b 100644 --- a/tsDocs/types/Utils.Base64.html +++ b/tsDocs/types/Utils.Base64.html @@ -1,2 +1,2 @@ Base64 | lavalink-client
    Base64: string

    The Base64 decodes tring by lavalink

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.ClientCustomSearchPlatformUtils.html b/tsDocs/types/Utils.ClientCustomSearchPlatformUtils.html index fb8ced7..ae55c3a 100644 --- a/tsDocs/types/Utils.ClientCustomSearchPlatformUtils.html +++ b/tsDocs/types/Utils.ClientCustomSearchPlatformUtils.html @@ -1 +1 @@ -ClientCustomSearchPlatformUtils | lavalink-client

    Type alias ClientCustomSearchPlatformUtils

    ClientCustomSearchPlatformUtils: "local" | "http" | "https" | "link" | "uri"

    Generated using TypeDoc

    \ No newline at end of file +ClientCustomSearchPlatformUtils | lavalink-client

    Type alias ClientCustomSearchPlatformUtils

    ClientCustomSearchPlatformUtils: "local" | "http" | "https" | "link" | "uri"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.ClientSearchPlatform.html b/tsDocs/types/Utils.ClientSearchPlatform.html index dba987e..138c53c 100644 --- a/tsDocs/types/Utils.ClientSearchPlatform.html +++ b/tsDocs/types/Utils.ClientSearchPlatform.html @@ -1 +1 @@ -ClientSearchPlatform | lavalink-client

    Type alias ClientSearchPlatform

    ClientSearchPlatform: ClientCustomSearchPlatformUtils | "youtube" | "yt" | "youtube music" | "youtubemusic" | "ytm" | "musicyoutube" | "music youtube" | "soundcloud" | "sc" | "am" | "apple music" | "applemusic" | "apple" | "musicapple" | "music apple" | "sp" | "spsuggestion" | "spotify" | "spotify.com" | "spotifycom" | "dz" | "deezer" | "yandex" | "yandex music" | "yandexmusic" | "flowerytts" | "flowery" | "flowery.tts" | LavalinkClientSearchPlatformResolve | LavalinkClientSearchPlatform

    Generated using TypeDoc

    \ No newline at end of file +ClientSearchPlatform | lavalink-client

    Type alias ClientSearchPlatform

    ClientSearchPlatform: ClientCustomSearchPlatformUtils | "youtube" | "yt" | "youtube music" | "youtubemusic" | "ytm" | "musicyoutube" | "music youtube" | "soundcloud" | "sc" | "am" | "apple music" | "applemusic" | "apple" | "musicapple" | "music apple" | "sp" | "spsuggestion" | "spotify" | "spotify.com" | "spotifycom" | "dz" | "deezer" | "yandex" | "yandex music" | "yandexmusic" | "flowerytts" | "flowery" | "flowery.tts" | LavalinkClientSearchPlatformResolve | LavalinkClientSearchPlatform

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.DuncteSearchPlatform.html b/tsDocs/types/Utils.DuncteSearchPlatform.html index cd11549..707248e 100644 --- a/tsDocs/types/Utils.DuncteSearchPlatform.html +++ b/tsDocs/types/Utils.DuncteSearchPlatform.html @@ -1 +1 @@ -DuncteSearchPlatform | lavalink-client

    Type alias DuncteSearchPlatform

    DuncteSearchPlatform: "speak" | "tts"

    Generated using TypeDoc

    \ No newline at end of file +DuncteSearchPlatform | lavalink-client

    Type alias DuncteSearchPlatform

    DuncteSearchPlatform: "speak" | "tts"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.FloatNumber.html b/tsDocs/types/Utils.FloatNumber.html index 03e29a5..ec0a418 100644 --- a/tsDocs/types/Utils.FloatNumber.html +++ b/tsDocs/types/Utils.FloatNumber.html @@ -1 +1 @@ -FloatNumber | lavalink-client

    Type alias FloatNumber

    FloatNumber: Opaque<number, "Float">

    Generated using TypeDoc

    \ No newline at end of file +FloatNumber | lavalink-client

    Type alias FloatNumber

    FloatNumber: Opaque<number, "Float">

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.IntegerNumber.html b/tsDocs/types/Utils.IntegerNumber.html index 615a828..7ddf9c2 100644 --- a/tsDocs/types/Utils.IntegerNumber.html +++ b/tsDocs/types/Utils.IntegerNumber.html @@ -1 +1 @@ -IntegerNumber | lavalink-client

    Type alias IntegerNumber

    IntegerNumber: Opaque<number, "Int">

    Generated using TypeDoc

    \ No newline at end of file +IntegerNumber | lavalink-client

    Type alias IntegerNumber

    IntegerNumber: Opaque<number, "Int">

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LavaSearchQuery.html b/tsDocs/types/Utils.LavaSearchQuery.html index a71a954..77c24e8 100644 --- a/tsDocs/types/Utils.LavaSearchQuery.html +++ b/tsDocs/types/Utils.LavaSearchQuery.html @@ -2,4 +2,4 @@

    Type declaration

    • query: string

      lavalink search Query / identifier string

    • source: LavaSrcSearchPlatformBase

      Source to append to the search query string

    • Optional types?: LavaSearchType[]

      The Types to filter the search to

      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LavaSearchType.html b/tsDocs/types/Utils.LavaSearchType.html index 63dd84d..02cdea3 100644 --- a/tsDocs/types/Utils.LavaSearchType.html +++ b/tsDocs/types/Utils.LavaSearchType.html @@ -1,2 +1,2 @@ LavaSearchType | lavalink-client

    Type alias LavaSearchType

    LavaSearchType: "track" | "album" | "artist" | "playlist" | "text" | "tracks" | "albums" | "artists" | "playlists" | "texts"

    Specific types to filter for lavasearch, will be filtered to correct types

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LavaSrcSearchPlatform.html b/tsDocs/types/Utils.LavaSrcSearchPlatform.html index ef50d55..97ccd58 100644 --- a/tsDocs/types/Utils.LavaSrcSearchPlatform.html +++ b/tsDocs/types/Utils.LavaSrcSearchPlatform.html @@ -1 +1 @@ -LavaSrcSearchPlatform | lavalink-client

    Type alias LavaSrcSearchPlatform

    LavaSrcSearchPlatform: LavaSrcSearchPlatformBase | "ftts"

    Generated using TypeDoc

    \ No newline at end of file +LavaSrcSearchPlatform | lavalink-client

    Type alias LavaSrcSearchPlatform

    LavaSrcSearchPlatform: LavaSrcSearchPlatformBase | "ftts"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LavaSrcSearchPlatformBase.html b/tsDocs/types/Utils.LavaSrcSearchPlatformBase.html index 02e5884..218cda9 100644 --- a/tsDocs/types/Utils.LavaSrcSearchPlatformBase.html +++ b/tsDocs/types/Utils.LavaSrcSearchPlatformBase.html @@ -1 +1 @@ -LavaSrcSearchPlatformBase | lavalink-client

    Type alias LavaSrcSearchPlatformBase

    LavaSrcSearchPlatformBase: "spsearch" | "sprec" | "amsearch" | "dzsearch" | "dzisrc" | "ymsearch"

    Generated using TypeDoc

    \ No newline at end of file +LavaSrcSearchPlatformBase | lavalink-client

    Type alias LavaSrcSearchPlatformBase

    LavaSrcSearchPlatformBase: "spsearch" | "sprec" | "amsearch" | "dzsearch" | "dzisrc" | "ymsearch"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LavalinkClientSearchPlatform.html b/tsDocs/types/Utils.LavalinkClientSearchPlatform.html index bc2192a..18858c4 100644 --- a/tsDocs/types/Utils.LavalinkClientSearchPlatform.html +++ b/tsDocs/types/Utils.LavalinkClientSearchPlatform.html @@ -1 +1 @@ -LavalinkClientSearchPlatform | lavalink-client

    Type alias LavalinkClientSearchPlatform

    LavalinkClientSearchPlatform: "bcsearch"

    Generated using TypeDoc

    \ No newline at end of file +LavalinkClientSearchPlatform | lavalink-client

    Type alias LavalinkClientSearchPlatform

    LavalinkClientSearchPlatform: "bcsearch"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LavalinkClientSearchPlatformResolve.html b/tsDocs/types/Utils.LavalinkClientSearchPlatformResolve.html index 1cf0aee..4abd40b 100644 --- a/tsDocs/types/Utils.LavalinkClientSearchPlatformResolve.html +++ b/tsDocs/types/Utils.LavalinkClientSearchPlatformResolve.html @@ -1 +1 @@ -LavalinkClientSearchPlatformResolve | lavalink-client

    Type alias LavalinkClientSearchPlatformResolve

    LavalinkClientSearchPlatformResolve: "bandcamp" | "bc"

    Generated using TypeDoc

    \ No newline at end of file +LavalinkClientSearchPlatformResolve | lavalink-client

    Type alias LavalinkClientSearchPlatformResolve

    LavalinkClientSearchPlatformResolve: "bandcamp" | "bc"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LavalinkSearchPlatform.html b/tsDocs/types/Utils.LavalinkSearchPlatform.html index 27647b0..5d72b25 100644 --- a/tsDocs/types/Utils.LavalinkSearchPlatform.html +++ b/tsDocs/types/Utils.LavalinkSearchPlatform.html @@ -1 +1 @@ -LavalinkSearchPlatform | lavalink-client

    Type alias LavalinkSearchPlatform

    LavalinkSearchPlatform: "ytsearch" | "ytmsearch" | "scsearch" | LavaSrcSearchPlatform | DuncteSearchPlatform | LavalinkClientSearchPlatform

    Generated using TypeDoc

    \ No newline at end of file +LavalinkSearchPlatform | lavalink-client

    Type alias LavalinkSearchPlatform

    LavalinkSearchPlatform: "ytsearch" | "ytmsearch" | "scsearch" | LavaSrcSearchPlatform | DuncteSearchPlatform | LavalinkClientSearchPlatform

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.LoadTypes.html b/tsDocs/types/Utils.LoadTypes.html index aba3ff1..5fc419c 100644 --- a/tsDocs/types/Utils.LoadTypes.html +++ b/tsDocs/types/Utils.LoadTypes.html @@ -1 +1 @@ -LoadTypes | lavalink-client

    Type alias LoadTypes

    LoadTypes: "track" | "playlist" | "search" | "error" | "empty"

    Generated using TypeDoc

    \ No newline at end of file +LoadTypes | lavalink-client

    Type alias LoadTypes

    LoadTypes: "track" | "playlist" | "search" | "error" | "empty"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.PlayerEventType.html b/tsDocs/types/Utils.PlayerEventType.html index 8ec005d..c58939c 100644 --- a/tsDocs/types/Utils.PlayerEventType.html +++ b/tsDocs/types/Utils.PlayerEventType.html @@ -1 +1 @@ -PlayerEventType | lavalink-client

    Type alias PlayerEventType

    PlayerEventType: "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | SponsorBlockSegmentEventType

    Generated using TypeDoc

    \ No newline at end of file +PlayerEventType | lavalink-client

    Type alias PlayerEventType

    PlayerEventType: "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent" | SponsorBlockSegmentEventType

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.PlayerEvents.html b/tsDocs/types/Utils.PlayerEvents.html index c68d0b9..82c0440 100644 --- a/tsDocs/types/Utils.PlayerEvents.html +++ b/tsDocs/types/Utils.PlayerEvents.html @@ -1 +1 @@ -PlayerEvents | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file +PlayerEvents | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.SearchPlatform.html b/tsDocs/types/Utils.SearchPlatform.html index a68a0e6..998782d 100644 --- a/tsDocs/types/Utils.SearchPlatform.html +++ b/tsDocs/types/Utils.SearchPlatform.html @@ -1 +1 @@ -SearchPlatform | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file +SearchPlatform | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.SearchQuery.html b/tsDocs/types/Utils.SearchQuery.html index a489c14..047dc82 100644 --- a/tsDocs/types/Utils.SearchQuery.html +++ b/tsDocs/types/Utils.SearchQuery.html @@ -1,4 +1,4 @@ SearchQuery | lavalink-client

    Type alias SearchQuery

    SearchQuery: {
        query: string;
        source?: SearchPlatform;
    } | string

    SearchQuery Object for raw lavalink requests

    Type declaration

    • query: string

      lavalink search Query / identifier string

    • Optional source?: SearchPlatform

      Source to append to the search query string

      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.Severity.html b/tsDocs/types/Utils.Severity.html index 369d07d..47253b1 100644 --- a/tsDocs/types/Utils.Severity.html +++ b/tsDocs/types/Utils.Severity.html @@ -1 +1 @@ -Severity | lavalink-client

    Type alias Severity

    Severity: "COMMON" | "SUSPICIOUS" | "FAULT"

    Generated using TypeDoc

    \ No newline at end of file +Severity | lavalink-client

    Type alias Severity

    Severity: "COMMON" | "SUSPICIOUS" | "FAULT"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.SourcesRegex.html b/tsDocs/types/Utils.SourcesRegex.html index d120d4c..3469d4c 100644 --- a/tsDocs/types/Utils.SourcesRegex.html +++ b/tsDocs/types/Utils.SourcesRegex.html @@ -1 +1 @@ -SourcesRegex | lavalink-client

    Type alias SourcesRegex

    SourcesRegex: "YoutubeRegex" | "YoutubeMusicRegex" | "SoundCloudRegex" | "SoundCloudMobileRegex" | "DeezerTrackRegex" | "DeezerArtistRegex" | "DeezerEpisodeRegex" | "DeezerMixesRegex" | "DeezerPageLinkRegex" | "DeezerPlaylistRegex" | "DeezerAlbumRegex" | "AllDeezerRegex" | "AllDeezerRegexWithoutPageLink" | "SpotifySongRegex" | "SpotifyPlaylistRegex" | "SpotifyArtistRegex" | "SpotifyEpisodeRegex" | "SpotifyShowRegex" | "SpotifyAlbumRegex" | "AllSpotifyRegex" | "mp3Url" | "m3uUrl" | "m3u8Url" | "mp4Url" | "m4aUrl" | "wavUrl" | "aacpUrl" | "tiktok" | "mixcloud" | "musicYandex" | "radiohost" | "bandcamp" | "appleMusic" | "TwitchTv" | "vimeo"

    Generated using TypeDoc

    \ No newline at end of file +SourcesRegex | lavalink-client

    Type alias SourcesRegex

    SourcesRegex: "YoutubeRegex" | "YoutubeMusicRegex" | "SoundCloudRegex" | "SoundCloudMobileRegex" | "DeezerTrackRegex" | "DeezerArtistRegex" | "DeezerEpisodeRegex" | "DeezerMixesRegex" | "DeezerPageLinkRegex" | "DeezerPlaylistRegex" | "DeezerAlbumRegex" | "AllDeezerRegex" | "AllDeezerRegexWithoutPageLink" | "SpotifySongRegex" | "SpotifyPlaylistRegex" | "SpotifyArtistRegex" | "SpotifyEpisodeRegex" | "SpotifyShowRegex" | "SpotifyAlbumRegex" | "AllSpotifyRegex" | "mp3Url" | "m3uUrl" | "m3u8Url" | "mp4Url" | "m4aUrl" | "wavUrl" | "aacpUrl" | "tiktok" | "mixcloud" | "musicYandex" | "radiohost" | "bandcamp" | "appleMusic" | "TwitchTv" | "vimeo"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.SponsorBlockSegmentEventType.html b/tsDocs/types/Utils.SponsorBlockSegmentEventType.html index ec67392..d0d4d68 100644 --- a/tsDocs/types/Utils.SponsorBlockSegmentEventType.html +++ b/tsDocs/types/Utils.SponsorBlockSegmentEventType.html @@ -1 +1 @@ -SponsorBlockSegmentEventType | lavalink-client

    Type alias SponsorBlockSegmentEventType

    SponsorBlockSegmentEventType: "SegmentSkipped" | "SegmentsLoaded" | "ChaptersLoaded" | "ChapterStarted"

    Generated using TypeDoc

    \ No newline at end of file +SponsorBlockSegmentEventType | lavalink-client

    Type alias SponsorBlockSegmentEventType

    SponsorBlockSegmentEventType: "SegmentSkipped" | "SegmentsLoaded" | "ChaptersLoaded" | "ChapterStarted"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.SponsorBlockSegmentEvents.html b/tsDocs/types/Utils.SponsorBlockSegmentEvents.html index 0d2bcd7..774783f 100644 --- a/tsDocs/types/Utils.SponsorBlockSegmentEvents.html +++ b/tsDocs/types/Utils.SponsorBlockSegmentEvents.html @@ -1,2 +1,2 @@ SponsorBlockSegmentEvents | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.State.html b/tsDocs/types/Utils.State.html index 3c2c82f..90498a5 100644 --- a/tsDocs/types/Utils.State.html +++ b/tsDocs/types/Utils.State.html @@ -1 +1 @@ -State | lavalink-client
    State: "CONNECTED" | "CONNECTING" | "DISCONNECTED" | "DISCONNECTING" | "DESTROYING"

    Generated using TypeDoc

    \ No newline at end of file +State | lavalink-client
    State: "CONNECTED" | "CONNECTING" | "DISCONNECTED" | "DISCONNECTING" | "DESTROYING"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/types/Utils.TrackEndReason.html b/tsDocs/types/Utils.TrackEndReason.html index c8a7792..4e46b6c 100644 --- a/tsDocs/types/Utils.TrackEndReason.html +++ b/tsDocs/types/Utils.TrackEndReason.html @@ -1 +1 @@ -TrackEndReason | lavalink-client

    Type alias TrackEndReason

    TrackEndReason: "finished" | "loadFailed" | "stopped" | "replaced" | "cleanup"

    Generated using TypeDoc

    \ No newline at end of file +TrackEndReason | lavalink-client

    Type alias TrackEndReason

    TrackEndReason: "finished" | "loadFailed" | "stopped" | "replaced" | "cleanup"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Filters.EQList.html b/tsDocs/variables/Filters.EQList.html index 73d4def..09fb527 100644 --- a/tsDocs/variables/Filters.EQList.html +++ b/tsDocs/variables/Filters.EQList.html @@ -9,4 +9,4 @@
  • Gaming: EQBand[]

    Boosts basses + lower highs for a pro gaming sound

  • Pop: EQBand[]

    Makes the Music sound like Pop music / sound Pop music better

  • Rock: EQBand[]

    Makes the Music sound like rock music / sound rock music better

    -
  • Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Filters.audioOutputsData.html b/tsDocs/variables/Filters.audioOutputsData.html index f941d27..4303875 100644 --- a/tsDocs/variables/Filters.audioOutputsData.html +++ b/tsDocs/variables/Filters.audioOutputsData.html @@ -1,2 +1,2 @@ audioOutputsData | lavalink-client

    Variable audioOutputsDataConst

    audioOutputsData: Record<AudioOutputs, ChannelMixFilter> = ...

    The audio Outputs Data map declaration

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/LavalinkManagerStatics.DefaultSources.html b/tsDocs/variables/LavalinkManagerStatics.DefaultSources.html index 5a06120..862189c 100644 --- a/tsDocs/variables/LavalinkManagerStatics.DefaultSources.html +++ b/tsDocs/variables/LavalinkManagerStatics.DefaultSources.html @@ -1 +1 @@ -DefaultSources | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file +DefaultSources | lavalink-client

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/LavalinkManagerStatics.LavalinkPlugins.html b/tsDocs/variables/LavalinkManagerStatics.LavalinkPlugins.html index ae9a12c..764de6a 100644 --- a/tsDocs/variables/LavalinkManagerStatics.LavalinkPlugins.html +++ b/tsDocs/variables/LavalinkManagerStatics.LavalinkPlugins.html @@ -1 +1 @@ -LavalinkPlugins | lavalink-client
    LavalinkPlugins: {
        DuncteBot_Plugin: string;
        GoogleCloudTTS: string;
        LavaSearch: string;
        LavaSrc: string;
        LavalinkFilterPlugin: string;
    } = ...

    Type declaration

    • DuncteBot_Plugin: string
    • GoogleCloudTTS: string
    • LavaSearch: string
    • LavaSrc: string
    • LavalinkFilterPlugin: string

    Generated using TypeDoc

    \ No newline at end of file +LavalinkPlugins | lavalink-client
    LavalinkPlugins: {
        DuncteBot_Plugin: string;
        GoogleCloudTTS: string;
        LavaSearch: string;
        LavaSrc: string;
        LavalinkFilterPlugin: string;
    } = ...

    Type declaration

    • DuncteBot_Plugin: string
    • GoogleCloudTTS: string
    • LavaSearch: string
    • LavaSrc: string
    • LavalinkFilterPlugin: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/LavalinkManagerStatics.SourceLinksRegexes.html b/tsDocs/variables/LavalinkManagerStatics.SourceLinksRegexes.html index 9056319..9eb6c4f 100644 --- a/tsDocs/variables/LavalinkManagerStatics.SourceLinksRegexes.html +++ b/tsDocs/variables/LavalinkManagerStatics.SourceLinksRegexes.html @@ -1 +1 @@ -SourceLinksRegexes | lavalink-client
    SourceLinksRegexes: Record<SourcesRegex, RegExp> = ...

    Generated using TypeDoc

    \ No newline at end of file +SourceLinksRegexes | lavalink-client
    SourceLinksRegexes: Record<SourcesRegex, RegExp> = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Node.validSponsorBlocks.html b/tsDocs/variables/Node.validSponsorBlocks.html index 9149f07..647f6f6 100644 --- a/tsDocs/variables/Node.validSponsorBlocks.html +++ b/tsDocs/variables/Node.validSponsorBlocks.html @@ -1 +1 @@ -validSponsorBlocks | lavalink-client

    Variable validSponsorBlocksConst

    validSponsorBlocks: string[] = ...

    Generated using TypeDoc

    \ No newline at end of file +validSponsorBlocks | lavalink-client

    Variable validSponsorBlocksConst

    validSponsorBlocks: string[] = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Player.DestroyReasons.html b/tsDocs/variables/Player.DestroyReasons.html index 0686921..0e312a9 100644 --- a/tsDocs/variables/Player.DestroyReasons.html +++ b/tsDocs/variables/Player.DestroyReasons.html @@ -1 +1 @@ -DestroyReasons | lavalink-client

    Variable DestroyReasonsConst

    DestroyReasons: Record<PlayerDestroyReasons, PlayerDestroyReasons> = ...

    Generated using TypeDoc

    \ No newline at end of file +DestroyReasons | lavalink-client

    Variable DestroyReasonsConst

    DestroyReasons: Record<PlayerDestroyReasons, PlayerDestroyReasons> = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Utils.NodeSymbol.html b/tsDocs/variables/Utils.NodeSymbol.html index 191465a..1da23cf 100644 --- a/tsDocs/variables/Utils.NodeSymbol.html +++ b/tsDocs/variables/Utils.NodeSymbol.html @@ -1 +1 @@ -NodeSymbol | lavalink-client

    Variable NodeSymbolConst

    NodeSymbol: typeof NodeSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file +NodeSymbol | lavalink-client

    Variable NodeSymbolConst

    NodeSymbol: typeof NodeSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Utils.QueueSymbol.html b/tsDocs/variables/Utils.QueueSymbol.html index 9076106..a9ba5d2 100644 --- a/tsDocs/variables/Utils.QueueSymbol.html +++ b/tsDocs/variables/Utils.QueueSymbol.html @@ -1 +1 @@ -QueueSymbol | lavalink-client

    Variable QueueSymbolConst

    QueueSymbol: typeof QueueSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file +QueueSymbol | lavalink-client

    Variable QueueSymbolConst

    QueueSymbol: typeof QueueSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Utils.TrackSymbol.html b/tsDocs/variables/Utils.TrackSymbol.html index c867f6e..290be22 100644 --- a/tsDocs/variables/Utils.TrackSymbol.html +++ b/tsDocs/variables/Utils.TrackSymbol.html @@ -1 +1 @@ -TrackSymbol | lavalink-client

    Variable TrackSymbolConst

    TrackSymbol: typeof TrackSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file +TrackSymbol | lavalink-client

    Variable TrackSymbolConst

    TrackSymbol: typeof TrackSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/tsDocs/variables/Utils.UnresolvedTrackSymbol.html b/tsDocs/variables/Utils.UnresolvedTrackSymbol.html index c2caaa5..ba2b557 100644 --- a/tsDocs/variables/Utils.UnresolvedTrackSymbol.html +++ b/tsDocs/variables/Utils.UnresolvedTrackSymbol.html @@ -1 +1 @@ -UnresolvedTrackSymbol | lavalink-client

    Variable UnresolvedTrackSymbolConst

    UnresolvedTrackSymbol: typeof UnresolvedTrackSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file +UnresolvedTrackSymbol | lavalink-client

    Variable UnresolvedTrackSymbolConst

    UnresolvedTrackSymbol: typeof UnresolvedTrackSymbol = ...

    Generated using TypeDoc

    \ No newline at end of file