diff options
| author | 8cy <[email protected]> | 2020-04-13 05:32:35 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-13 05:32:35 -0700 |
| commit | 9dff52f7d047c905326bc2f476ede5463e00f2a0 (patch) | |
| tree | 1fec8563b3b72fde9b2ab7ad9e56a97398798685 /commands/voice/psycho.js | |
| parent | typescript (diff) | |
| download | s5nical-9dff52f7d047c905326bc2f476ede5463e00f2a0.tar.xz s5nical-9dff52f7d047c905326bc2f476ede5463e00f2a0.zip | |
typescript final
Diffstat (limited to 'commands/voice/psycho.js')
| -rw-r--r-- | commands/voice/psycho.js | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/commands/voice/psycho.js b/commands/voice/psycho.js deleted file mode 100644 index ba45254..0000000 --- a/commands/voice/psycho.js +++ /dev/null @@ -1,196 +0,0 @@ -const ytdl = require('ytdl-core'); -const { Command } = require('discord.js-commando'); -const { MessageEmbed } = require('discord.js'); -const Youtube = require('simple-youtube-api'); -const { youtubeAPI } = require('../../config.json'); -const youtube = new Youtube('AIzaSyB9xJENORzZt-GmOGx4WsNCPgKSIxhJcds'); -const emoji = require('emoji-random'); - -module.exports = class PsychoVoice extends Command { - constructor(client) { - super(client, { - name: 'psycho', - group: 'voice', - memberName: 'psycho', - description: 'plays the psycho by mase', - guildOnly: true, - clientPermissions: ['SPEAK', 'CONNECT'], - examples: ['s5n!psycho'] - }); - } - async run(msg, { query }) { - const voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.say('join a channel and try again ' + emoji.random()); - - const id = 'fnd_HSmAODs'; - const video = await youtube.getVideoByID(id).catch(function () { - return msg.say( - 'there was a problem getting the video you provided ' + emoji.random() - ); - }); - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // return msg.say("I don't support live streams!"); - // } - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // return msg.say('I cannot play videos longer than 1 hour'); - // } - // // can be uncommented if you want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - this.constructSongObj(video, voiceChannel) - ); - if ( - msg.guild.musicData.isPlaying == false || - typeof msg.guild.musicData.isPlaying == 'undefined' - ) { - msg.guild.musicData.isPlaying = true; - return this.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - return msg.say(`${video.title} added to queue ` + emoji.random()); - } - - var that = this; - msg.channel - .awaitMessages( - function (msg) { - return (msg.content > 0 && msg.content < 6) || msg.content === 'exit'; - }, { - max: 1, - time: 60000, - errors: ['time'] - } - ) - .then(function (response) { - const videoIndex = parseInt(response.first().content); - if (response.first().content === 'exit') return songEmbed.delete(); - youtube - .getVideoByID(videos[videoIndex - 1].id) - .then(function (video) { - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // songEmbed.delete(); - // return msg.say("I don't support live streams!"); - // } - - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // songEmbed.delete(); - // return msg.say('I cannot play videos longer than 1 hour'); - // } - - // // can be uncommented if you don't want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // songEmbed.delete(); - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - that.constructSongObj(video, voiceChannel) - ); - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - if (songEmbed) { - songEmbed.delete(); - } - that.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say(`${video.title} added to queue ` + emoji.random()); - } - }) - .catch(function () { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say( - 'an error has occured when trying to get the video id from youtube ' + emoji.random() - ); - }); - }); - } - playSong(queue, msg) { - const classThis = this; // use classThis instead of 'this' because of lexical scope below - queue[0].voiceChannel - .join() - .then(function (connection) { - const dispatcher = connection - .play( - ytdl(queue[0].url, { - quality: 'highestaudio', - highWaterMark: 1024 * 1024 * 10 - }) - ) - .on('start', function () { - msg.guild.musicData.songDispatcher = dispatcher; - const volume = 10 / 100; - msg.guild.musicData.volume = volume; - dispatcher.setVolume(msg.guild.musicData.volume); - const videoEmbed = new MessageEmbed() - .setThumbnail(queue[0].thumbnail) - .setColor(0xF97DAE) - .addField('now playing:', queue[0].title) - .addField('duration:', queue[0].duration); - if (queue[1]) videoEmbed.addField('next song:', queue[1].title); - msg.say(videoEmbed); - msg.guild.musicData.nowPlaying = queue[0]; - return queue.shift(); - }) - .on('finish', function () { - if (queue.length >= 1) { - return classThis.playSong(queue, msg); - } else { - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - } - }) - .on('error', function (e) { - msg.say('can\'t play song ' + emoji.random()); - console.error(e); - msg.guild.musicData.queue.length = 0; - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - }); - }) - .catch(function (e) { - console.error(e); - return msg.guild.me.voice.channel.leave(); - }); - } - constructSongObj(video, voiceChannel) { - let duration = this.formatDuration(video.duration); - if (duration == '00:00') duration = 'live stream'; - return { - url: `https://www.youtube.com/watch?v=${video.raw.id}`, - title: video.title, - duration, - thumbnail: video.thumbnails.high.url, - voiceChannel - }; - } - // prettier-ignore - formatDuration(durationObj) { - const duration = `${durationObj.hours ? (durationObj.hours + ':') : ''}${ - durationObj.minutes ? durationObj.minutes : '00' - }:${ - (durationObj.seconds < 10) - ? ('0' + durationObj.seconds) - : (durationObj.seconds - ? durationObj.seconds - : '00') - }`; - return duration; - } -};
\ No newline at end of file |