Customizable and easy to use. Supports Youtube Supports youtube playlists.
Wait! Before you install, you need..
Node.js
Discord.js v13+
After this, you can finally install the package with:
$ npm install discord-tunes
Music:
.playTrack - start a track.
.pause - pause the song.
.resume - resume the songs.
.toggleLoop - make it loop or not.
.setVolume - set the volume to a random amount.
.stop - stop the music and make the bot leave.
.volumeUp - raise the volume.
.volumeDown - decrease the volume.
.joinVoiceChannel - make the bot join the channel.
.addTrack - can add multiple songs to a queue to play after another.
Information:
.title - Display the songs title.
.author - displays the authors name of the song.
.thumbnail - displays the thumbnail of the song.
const { Client, Message, MessageActionRow, MessageButton, MessageEmbed } = require('discord.js');
const MusicPlayer = require('discord-tunes');
const musicPlayer = new MusicPlayer();
module.exports = {
name: 'test',
premium: false,
disable: false,
run: async (client, message, args) => {
const resource = musicPlayer.audioPlayer.state.resource;
const songChannel = message.member.voice.channel;
if (!songChannel) return message.reply("You must be in a voice channel.");
const query = args.join(' ');
if (!query) {
return message.reply('Please provide a search query.');
}
try {
await musicPlayer.joinVoiceChannel(songChannel);
musicPlayer.playTrack(query);
const pauseButton = new MessageButton()
.setCustomId('pause')
.setLabel('Pause')
.setStyle('PRIMARY');
const resumeButton = new MessageButton()
.setCustomId('resume')
.setLabel('Resume')
.setStyle('PRIMARY');
const volumeUpButton = new MessageButton()
.setCustomId('volume_up')
.setLabel('Volume Up')
.setStyle('PRIMARY');
const volumeDownButton = new MessageButton()
.setCustomId('volume_down')
.setLabel('Volume Down')
.setStyle('PRIMARY');
const row = new MessageActionRow()
.addComponents(pauseButton, resumeButton, volumeUpButton, volumeDownButton);
const musicControlsMessage = await message.channel.send({ content: `Music Controls`, components: [row] });
const filter = (interaction) => interaction.user.id === message.author.id;
const collector = musicControlsMessage.createMessageComponentCollector({ filter, time: 60000 });
collector.on('collect', async (interaction) => {
if (interaction.customId === 'pause') {
musicPlayer.pause();
await interaction.reply('Song paused.');
} else if (interaction.customId === 'resume') {
musicPlayer.resume();
await interaction.reply('Song resumed.');
} else if (interaction.customId === 'volume_up') {
musicPlayer.volumeUp();
await interaction.reply('Volume increased.');
} else if (interaction.customId === 'volume_down') {
musicPlayer.volumeDown();
await interaction.reply('Volume decreased.');
}
});
} catch (error) {
console.error(error);
message.reply('An error occurred while playing the music.');
}
}
};
https://discord.gg/WFWnMAP5Uk