discord-player-simple
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Discord Player Simple

Note: This package uses the most recent version(s) of discord.js so make sure you are on v12.

Discord Player Simple is a powerful Node.js module that allows you to easily implement music commands. Everything is customizable, and everything is done to simplify your work without limiting you! It doesn't require any api key, as it uses scraping.

Installation

npm install --save discord-player-simple

Install @discordjs/opus:

npm install --save @discordjs/opus

Install ffmpeg:

npm install --save ffmpeg

If these are installed, your done!

Features

🤘 Easy to use!
🎸 You can apply some cool filters (bassboost, reverse, 8D, etc...)
🎼 Manage your server queues with simple functions (add songs, skip the current song, pause the music, resume it, etc...)!
🌐 Multi-servers support

Getting Started

Here is the code you will need to get started with discord-player-simple. Then, you will be able to use client.player everywhere in your code!

const Discord = require("discord.js"),
const client = new Discord.Client(),
const settings = {
  prefix: "!",
  token: "Your Discord Token"
};

const { Player } = require("discord-player");
const player = new Player(client);

// Easly access the player anywhere
client.player = player;

// Add the trackStart event so when a song will be played this message will be sent
client.player.on('trackStart', (message, track) => message.channel.send(`Now playing ${track.title}...`))

client.on("ready", () => {
  console.log("I'm ready!");
});

client.on("message", async (message) => {
  const args = message.content.slice(settings.prefix.length).trim().split(/ +/g);
  const command = args.shift().toLowerCase();

  // !play Despacito
  // will play "Despacito" in the member voice channel

  if(command === "play"){
    client.player.play(message, args[0]);
    // as we registered the event above, no need to send a success message here
  }
});

client.login(settings.token);

Documentation

You will find many examples in the documentation to understand how the package works!

Methods overview

You need to init the guild queue using the play() function, then you are able to manage the queue and the music using the following functions. Click on a function name to get an example code and explanations.

Play a track

Check if a track is being played

Manage the queue

Manage music stream

Event messages

// Then add some messages that will be sent when the events will be triggered
client.player

// Send a message when a track starts
.on('trackStart', (message, track) => message.channel.send(`Now playing ${track.title}...`))

// Send a message when something is added to the queue
.on('trackAdd', (message, queue, track) => message.channel.send(`${track.title} has been added to the queue!`))
.on('playlistAdd', (message, queue, playlist) => message.channel.send(`${playlist.title} has been added to the queue (${playlist.items.length} songs)!`))

// Send messages to format search results
.on('searchResults', (message, query, tracks) => {
  const embed = new Discord.MessageEmbed()
  .setAuthor(`Here are your search results for ${query}!`)
  .setDescription(tracks.map((t, i) => `${i}. ${t.title}`))
  .setFooter('Send the number of the song you want to play!')
message.channel.send(embed);

})
.on('searchInvalidResponse', (message, query, tracks, content, collector) => message.channel.send(`You must send a valid number between 1 and ${tracks.length}!`))
.on('searchCancel', (message, query, tracks) => message.channel.send('You did not provide a valid response... Please send the command again!'))
.on('noResults', (message, query) => message.channel.send(`No results found on YouTube for ${query}!`))

// Send a message when the music is stopped
.on('queueEnd', (message, queue) => message.channel.send('Music stopped as there is no more music in the queue!'))
.on('channelEmpty', (message, queue) => message.channel.send('Music stopped as there is no more member in the voice channel!'))
.on('botDisconnect', (message) => message.channel.send('Music stopped as I have been disconnected from the channel!'))

// Error handling
.on('error', (error, message) => {
  switch(error){
    case 'NotPlaying':
      message.channel.send('There is no music being played on this server!')
      break;
    case 'NotConnected':
      message.channel.send('You are not connected in any voice channel!')
      break;
    case 'UnableToJoin':
      message.channel.send('I am not able to join your voice channel, please check my permissions!')
      break;
    default:
      message.channel.send(`Something went wrong... Error: ${error}`)
    }
})

Package Sidebar

Install

npm i discord-player-simple

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

44 kB

Total Files

10

Last publish

Collaborators

  • xdg6227