Class : Manager
Constructorโ
- Manager : options
new Magmastream.Manager(options: ManagerOptions)
| Parameter | Type | Description |
|---|---|---|
usePriority | boolean | Use priority mode over least amount of player or load? |
useNode | UseNode | Use the least amount of players or least load? |
nodes | Node[] | The array of nodes to connect to. |
clientId | string as ClientUser.id | The client ID to use. |
clientName | string | Value to use for the Client-Name header. |
plugins | Plugin[] | A array of plugins to use. |
autoPlay | boolean | Whether players should automatically play the next song. |
autoPlaySearchPlatform | SearchPlatform | The search platform autoplay should use. Failback to Youtube if not found. |
trackPartial | string[] | An array of track properties to keep. track will always be present. |
defaultSearchPlatform | SearchPlatform | The default search platform to use. |
replaceYouTubeCredentials | boolean | Whether the YouTube video titles should be replaced if the Author does not exactly match. |
lastFmApiKey | string as apiKey | The last.fm API key. If you need to create one go here or if you already have one, get it from here. |
send | function as send() | Function to send data to the websocket. |
send(id, payload)โ
- Parameters
- Usage
Function to send data to the websocket.
Parameter Type Description idstring The ID of the node to send the data to. payloadPayloadThe payload to send
new Magmastream.Manager({
...ManagerOptions,
send: (id, payload) => {
const guild = client.guilds.cache.get(id);
// NOTE: FOR ERIS YOU NEED JSON.stringify() THE PAYLOAD
if (guild) guild.shard.send(payload);
},
})
Table of contentsโ
Propertiesโ
initiatedโ
Has the manager been initiated?
Return: boolean
playersโ
readonlyThe map of players.
Return: Collection<string,
Player>
nodesโ
readonlyThe map of nodes.
Return: Collection<string,
Node>
optionsโ
readonlyThe options that were set.
Return:
managerOptions{}
Methodsโ
create(options)โ
Creates a player or returns one if it already exists.
Return:
Player
Parameter Type Description Optional optionsplayerOptions{}The options to create the player with.
createNode(options)โ
Creates a new node or returns an existing one if it already exists.
Return:
Node
Parameter Type Description Optional optionsnodeOptions{}The options to create the node with.
decodeTrack(track)โ
Decodes a base64 encoded track and returns a TrackData.
Return: Promise<
trackData{}>
Parameter Type Description Optional trackstring as base64The base64 encoded track string.
decodeTracks(tracks)โ
Decodes an array of base64 encoded tracks and returns an array of TrackData.
Emits a debug event with the tracks being decoded.Return: Promise<
trackData{}[]>
Parameter Type Description Optional tracksstring[] as base64The base64 encoded track string.
destroy(guildId)โ
Destroys a player if it exists and cleans up inactive players.
Return: void
Parameter Type Description Optional guildIdstring as Guild.idThe guild ID of the player to destroy.
destroyNode(identifier)โ
Destroys a node if it exists. Emits a debug event if the node is found and destroyed.
Return: void
Parameter Type Description Optional identifierstring as Node.identifierThe identifier of the node to destroy.
init(clientId)โ
Initiates the Manager.
Return: this
Parameter Type Description Optional clientIdstring as ClientUser.idThe Discord client ID (required).
loadPlayerStates(nodeId)โ
Loads player states from the JSON file.
Return: void
Parameter Type Description Optional nodeIdstring as Node.identifierThe ID of the node to load player states from (required).
get(guildId)โ
Returns a player or undefined if it does not exist.
Parameter Type Description Optional guildIdstring as Guild.idThe guild ID of the player to retrieve.
on(event, listener: () => {})โ
Attaches an event listener to the manager.
Return: this
Parameter Type Description Optional eventManagerEventType The event to listen for. listenerfunction The function to call when the event is emitted.
- Example usage
const { Manager } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on('trackStart', (player, track) => {
console.log(`Now playing ${track.title} in ${player.guildId}`);
});
savePlayerState(guildId)โ
Saves player states to the JSON file.
Return: void
Parameter Type Description Optional guildIdstring as GuildId The guild ID of the player to save
search(query, requester)โ
Searches the enabled sources based off the URL or the
sourceproperty.Return: Promise<
searchResult{}>
Parameter Type Description Optional querystring | searchQuery{}Query to search. requesterUser | ClientUser The user who requested the track.
updateVoiceState(data)โ
Sends voice data to the Lavalink server.
Parameter Type Description Optional dataVoicePacket | VoiceServer | VoiceState The timescale options to apply.
- Example required to use
const { Client, Events } = require('discord.js');
const { Manager } = require('magmastream');
const client = new Client({
...ClientOptions
})
const manager = new Manager({
...ManagerOptions
})
// Required for magmastream to work
client.on(Events.Raw, (data) => {
manager.updateVoiceState(data);
})
useableNodes()โ
getReturns the node to use based on the configured useNode and usePriority options.
If usePriority is true, the node is chosen based on priority, otherwise it is chosen based on the useNode option.
If useNode is "leastLoad", the node with the lowest load is chosen, if it is "leastPlayers", the node with the fewest players is chosen.
If usePriority is false and useNode is not set, the node with the lowest load is chosen.Return:
Node
Eventsโ
ChapterStartedโ
ManagerEventTypes : ChapterStartedEmitted when a track has started a chapter.
Parameter Type playerPlayertracktrack{}|unresolvedTrack{}payloadSponsorBlockChapterStarted{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.ChapterStarted, (player, track, payload) => {
//Your code
})
ChaptersLoadedโ
ManagerEventTypes : ChaptersLoadedEmitted when a track has loaded chapters.
Parameter Type playerPlayertracktrack{}|unresolvedTrack{}payloadSponsorBlockChaptersLoaded{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.ChapterStarted, (player, track, payload) => {
//Your code
})
Debugโ
ManagerEventTypes : DebugEmitted when a track has loaded chapters.
Parameter Type infostring
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.Debug, (info) => {
console.log(`Debug from magmastream: ${info}`);
//Your code
})
NodeConnectโ
ManagerEventTypes : NodeConnectEmitted when a Node connects.
Parameter Type nodeNode
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeConnect, (player, track, payload) => {
//Your code
})
NodeCreateโ
ManagerEventTypes : NodeCreateEmitted when a Node is created.
Parameter Type nodeNode
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeCreate, (player, track, payload) => {
//Your code
})
NodeDestroyโ
ManagerEventTypes : NodeDestroyEmitted when a Node is destroyed.
Parameter Type nodeNode
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeDestroy, (player, track, payload) => {
//Your code
})
NodeDisconnectโ
ManagerEventTypes : NodeDisconnectEmitted when a Node is disconnects.
Parameter Type nodeNodereason{ code: number, reason: string }
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeDisconnect, (player, track, payload) => {
//Your code
})
NodeErrorโ
ManagerEventTypes : NodeErrorEmitted when a Node has an error.
Parameter Type nodeNodeerrorError
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeError, (player, track, payload) => {
//Your code
})
NodeRawโ
ManagerEventTypes : NodeRawEmitted whenever any Lavalink event is received.
Parameter Type payloadunknown
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeRaw, (player, track, payload) => {
//Your code
})
NodeReconnectโ
ManagerEventTypes : NodeReconnectEmitted when a Node reconnects.
Parameter Type nodeNode
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeReconnect, (player, track, payload) => {
//Your code
})
PlayerCreateโ
ManagerEventTypes : PlayerCreateEmitted when a player is created.
Parameter Type playerPlayer
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.PlayerCreate, (player) => {
//Your code
})
PlayerDestroyโ
ManagerEventTypes : PlayerDestroyEmitted when a player is destroyed.
Parameter Type playerPlayer
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.PlayerDestroy, (player) => {
//Your code
})
PlayerDisconnectโ
ManagerEventTypes : PlayerDisconnectEmitted when a Player disconnects.
Parameter Type playerPlayeroldChannelstring as GuildChannelId
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.PlayerDisconnect, (player, oldChannel) => {
//Your code
})
PlayerMoveโ
ManagerEventTypes : PlayerMoveEmitted when a player is moved to a new voice channel.
Parameter Type playerPlayerinitChannelstring as GuildChannelId newChannelstring as GuildChannelId
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.NodeDisconnect, (player, initChannel, newChannel) => {
//Your code
})
PlayerStateUpdateโ
ManagerEventTypes : PlayerStateUpdateEmitted when the state of the player has been changed either player paused/resumed or the loop modes have been toggled on or off.
Parameter Type oldPlayerPlayernewPlayerPlayerchangeTypeplayerStateUpdateEvent{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.PlayerStateUpdate, (oldPlayer, newPlayer, changeType) => {
//Your code
})
QueueEndโ
ManagerEventTypes : QueueEndEmitted when a player queue ends.
Parameter Type playerPlayertracktrack{}|unresolvedTrack{}payloadTrackEndEvent{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.QueueEnd, (player, track, payload) => {
//Your code
})
SegmentSkippedโ
ManagerEventTypes : SegmentSkippedEmitted when a track has skipped a segment.
Parameter Type playerPlayertracktrack{}|unresolvedTrack{}payloadSponsorBlockSegmentSkipped{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.SegmentSkipped, (player, track, payload) => {
//Your code
})
SegmentsLoadedโ
ManagerEventTypes : SegmentsLoadedEmitted when a track has loaded segments.
Parameter Type playerPlayertracktrack{}|unresolvedTrack{}payloadSponsorBlockSegmentsLoaded{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.SegmentsLoaded, (player, track, payload) => {
//Your code
})
SocketClosedโ
ManagerEventTypes : SocketClosedEmitted when a voice connection is closed.
Parameter Type playerPlayerpayloadWebSocketClosedEvent{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.SocketClosed, (player, track, payload) => {
//Your code
})
TrackEndโ
ManagerEventTypes : TrackEndEmitted when a track ends.
Parameter Type playerPlayertracktrack{}payloadTrackEndEvent{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.TrackEnd, (player, track, payload) => {
//Your code
})
TrackErrorโ
ManagerEventTypes : TrackErrorEmitted when a track has an error during playback.
Parameter Type playerPlayertracktrack{}|unresolvedTrack{}payloadTrackExceptionEvent{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.TrackError, (player, track, payload) => {
//Your code
})
TrackStartโ
ManagerEventTypes : TrackStartEmitted when a track starts.
Parameter Type playerPlayertracktrack{}payloadTrackStartEvent{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.TrackStart, (player, track, payload) => {
//Your code
})
TrackStuckโ
ManagerEventTypes : TrackStuckEmitted when a track gets stuck during playback.
Parameter Type playerPlayertracktrack{}payloadTrackStuckEvent{}
- Example usage
const { Manager, ManagerEventTypes } = require('magmastream');
const manager = new Manager({
...ManagerOptions
})
manager.on(ManagerEventTypes.TrackStuck, (player, track, payload) => {
//Your code
})