From e077f6ccba3ff0c9dd0a80d3f88bf2535f41d399 Mon Sep 17 00:00:00 2001 From: Supositware Date: Sat, 6 Apr 2019 20:45:12 +0200 Subject: [PATCH] the return of the play command --- commands/utility/play.js | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 commands/utility/play.js diff --git a/commands/utility/play.js b/commands/utility/play.js new file mode 100644 index 0000000..8519243 --- /dev/null +++ b/commands/utility/play.js @@ -0,0 +1,48 @@ +const { Command } = require('discord-akairo'); +const ytdl = require('ytdl-core'); + +class playCommand extends Command { + constructor() { + super('play', { + aliases: ['play'], + category: 'utility', + ownerOnly: 'true', + args: [ + { + id: 'ytblink', + type: 'string', + match: 'rest', + } + ], + description: { + content: 'Play play from the link you send ( ONLY FOR TESTING NOW )', + usage: '[youtube link]', + examples: ['https://www.youtube.com/watch?v=mzHWLLn5Z4A'] + } + }); + } + + async exec(message, args) { + const voiceChannel = message.member.voice.channel; + + // If not in voice channel ask user to join + if (!voiceChannel) { + return message.reply('please join a voice channel first!'); + + } else + // If user say "stop" make the bot leave voice channel + if (args.ytblink == 'stop') { + voiceChannel.leave(); + message.channel.send('I leaved the channel'); + } else + voiceChannel.join().then(connection => { + const stream = ytdl(args.ytblink, { filter: 'audioonly' }); + const dispatcher = connection.play(stream); + // End at then end of the audio stream + dispatcher.on('end', () => voiceChannel.leave()); + message.channel.send('Music ended, Leaved the channel'); + }); + } +} + +module.exports = playCommand; \ No newline at end of file