diff --git a/commands/Music/play.js b/commands/Music/play.js index 335eae1..3c5cee8 100644 --- a/commands/Music/play.js +++ b/commands/Music/play.js @@ -1,10 +1,32 @@ -const Youtube = require("simple-youtube-api"); const ytdl = require("ytdl-core"); -const youtube = new Youtube(process.env.YOUTUBEAPI); + +function play(connection, message) { + var server = client.servers[message.guild.id]; + + server.dispatcher = connection.play(ytdl(server.queue[0], {filter: "audioonly"})); + + server.queue.shift(); + + server.dispatcher.on("end", function() { + if(server.queue[0]) play(connection, message); + else connection.disconnect(); + }); +} exports.run = async (client, message, args, level) => { - + if(!args[0]) return message.reply("please provide a valid URL."); + if(!message.member.voice.channel) return message.reply("you must be in a voice channel to use this command."); + if(!client.servers[message.guild.id]) client.servers[message.guild.id] = { + queue: [] + }; + + var server = client.servers[message.guild.id]; + + if(!message.guild.voiceConnection) message.member.voice.channel.join().then(function(connection) { + play(connection, message); + }); + /* const queue = client.queue; const serverQueue = client.queue.get(message.guild.id); diff --git a/commands/Music/stop.js b/commands/Music/stop.js index 71bd25b..9c256d0 100644 --- a/commands/Music/stop.js +++ b/commands/Music/stop.js @@ -24,7 +24,10 @@ exports.run = async (client, message, args, level) => { if(message.guild.voiceConnection) message.guild.voiceConnection.disconnect(); */ + var server = client.servers[message.guild.id]; + if(message.guild.voice.connection) message.guild.voice.connection.disconnect(); + message.channel.send(`${message.author} has stopped the music.`); }; exports.conf = { diff --git a/events/ready.js b/events/ready.js index 8c2ffb8..8c47a47 100644 --- a/events/ready.js +++ b/events/ready.js @@ -1,5 +1,5 @@ module.exports = async client => { - client.logger.log(`${client.user.tag}, ready to serve ${client.users.filter(user => !user.bot).size} users in ${client.guilds.size} ${client.guilds.size > 1 ? "servers" : "server"}.`, "ready"); + client.logger.log(`Looks like I'm ready! My tag is ${client.user.tag}, and I'm ready to serve ${client.users.cache.some(user => !user.bot).size} users in ${client.guilds.size} ${client.guilds.size > 1 ? "servers" : "server"}.`, "ready"); client.user.setActivity(`${client.users.filter(user => !user.bot).size} humans | ${client.settings.get("default").prefix}help`, {type: "WATCHING"}); client.user.setStatus("online"); diff --git a/modules/functions.js b/modules/functions.js index 981ead7..1a8cb6f 100644 --- a/modules/functions.js +++ b/modules/functions.js @@ -352,5 +352,5 @@ module.exports = (client) => { }); } - client.servers = {}; + client.servers = {}; }