diff options
| author | 8cy <[email protected]> | 2020-04-12 19:19:16 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-12 19:19:16 -0700 |
| commit | 827c11bb72f0535826f7335ee712753a8b9d02e9 (patch) | |
| tree | 1011952298a8b9f6506c3ce6d6d4bf804ce12a9d /commands | |
| parent | emojis for all :D, 3.0.2 (diff) | |
| download | s5nical-827c11bb72f0535826f7335ee712753a8b9d02e9.tar.xz s5nical-827c11bb72f0535826f7335ee712753a8b9d02e9.zip | |
change sum wording, try to fix fart, v3.0.3
Diffstat (limited to 'commands')
| -rw-r--r-- | commands/fun/dm.js | 2 | ||||
| -rw-r--r-- | commands/utility/btc.js | 2 | ||||
| -rw-r--r-- | commands/utility/btcchange.js | 2 | ||||
| -rw-r--r-- | commands/voice/fart.js | 246 |
4 files changed, 193 insertions, 59 deletions
diff --git a/commands/fun/dm.js b/commands/fun/dm.js index 67bac7d..fb19c11 100644 --- a/commands/fun/dm.js +++ b/commands/fun/dm.js @@ -34,7 +34,7 @@ module.exports = class DMFun extends Command { run(msg, { msgContent }) { if (msg.author) { if (!msg.mentions.users.first() && msgContent) { - msg.reply('you haven\'t specified anyone to send a dm to.'); + msg.reply('you haven\'t specified anyone to send to.'); } else { var sendTo = msg.mentions.users.first().id; var d = new Date(msg.createdTimestamp); diff --git a/commands/utility/btc.js b/commands/utility/btc.js index 128ac66..3971fa9 100644 --- a/commands/utility/btc.js +++ b/commands/utility/btc.js @@ -9,7 +9,7 @@ module.exports = class BTCUtility extends Command { aliases: ['bitcoin', 'crypto'], group: 'utility', memberName: 'btc', - description: 'always you to check current bitcoin prices', + description: 'allows you to check current bitcoin prices', args: [ { key: 'currencyName', diff --git a/commands/utility/btcchange.js b/commands/utility/btcchange.js index ccfc271..eb7a204 100644 --- a/commands/utility/btcchange.js +++ b/commands/utility/btcchange.js @@ -9,7 +9,7 @@ module.exports = class BTCChangeUtility extends Command { aliases: ['bitcoinchange', 'cryptochange', 'btcc'], group: 'utility', memberName: 'btcchange', - description: 'always you to check the fluctuation in bitcoin prices in a specified amount of time', + description: 'allows you to check the fluctuation in bitcoin prices in a specified amount of time', args: [ { key: 'timeAmount', diff --git a/commands/voice/fart.js b/commands/voice/fart.js index dc17517..5f31c74 100644 --- a/commands/voice/fart.js +++ b/commands/voice/fart.js @@ -1,4 +1,11 @@ +// TODO: shits broken bc i cant get variables from different scopes + +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 FartVoice extends Command { @@ -9,67 +16,194 @@ module.exports = class FartVoice extends Command { memberName: 'fart', description: 'gives you a random fart', guildOnly: true, + clientPermissions: ['SPEAK', 'CONNECT'], examples: ['s5n!fart'] }); } async run(msg) { - if (msg.member.voice.channel && !msg.guild.voice) { - const connection = await msg.member.voice.channel.join(); - var fartNum = Math.floor((Math.random() * 8) + 1); + var fartNum = Math.floor((Math.random() * 8) + 1); + if (fartNum == 1) { + var fartMsg = 'you got fart 1, courtesy of sin ' + emoji.random(); + var fartTitle = 'fart 1'; + var fartAudio = './assets/audio/farts/1.mp3'; + } else if (fartNum == 2) { + var fartMsg = 'you got fart 2, courtesy of sin ' + emoji.random(); + var fartTitle = 'fart 2'; + var fartAudio = './assets/audio/farts/2.mp3'; + } else if (fartNum == 3) { + var fartMsg = 'you got fart 3, courtesy of sin ' + emoji.random(); + var fartTitle = 'fart 3'; + var fartAudio = './assets/audio/farts/3.mp3'; + } else if (fartNum == 4) { + var fartMsg = 'you got fart 4, courtesy of sin ' + emoji.random(); + var fartTitle = 'fart 4'; + var fartAudio = './assets/audio/farts/4.mp3'; + } else if (fartNum == 5) { + var fartMsg = 'you got fart 5, courtesy of sin ' + emoji.random(); + var fartTitle = 'fart 5'; + var fartAudio = './assets/audio/farts/5.mp3'; + } else if (fartNum == 6) { + var fartMsg = 'you got fart 6, courtesy of nick ' + emoji.random(); + var fartTitle = 'fart 6'; + var fartAudio = './assets/audio/farts/6.mp3'; + } else if (fartNum == 7) { + var fartMsg = 'you got fart 7, courtesy of nick ' + emoji.random(); + var fartTitle = 'fart 7'; + var fartAudio = './assets/audio/farts/7.mp3'; + } else if (fartNum == 8) { + var fartMsg = 'you got fart 8, courtesy of nick ' + emoji.random(); + var fartTitle = 'fart 8'; + var fartAudio = './assets/audio/farts/8.mp3'; + } - if (fartNum == 1) { - msg.reply('you got fart 1, courtesy of Sin ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/1.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } else if (fartNum == 2) { - msg.reply('you got fart 2, courtesy of Sin ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/2.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } else if (fartNum == 3) { - msg.reply('you got fart 3, courtesy of Sin ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/3.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } else if (fartNum == 4) { - msg.reply('you got fart 4, courtesy of Sin ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/4.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } else if (fartNum == 5) { - msg.reply('you got fart 5, courtesy of Sin ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/5.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } else if (fartNum == 6) { - msg.reply('you got fart 6, courtesy of nick ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/6.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } else if (fartNum == 7) { - msg.reply('you got fart 7, courtesy of nick ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/7.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } else if (fartNum == 8) { - msg.reply('you got fart 8, courtesy of nick ' + emoji.random()); - const dispatcher = connection.play('./assets/audio/farts/8.mp3'); - dispatcher.on('finish', () => { - connection.disconnect(); - }); - } - } else if (msg.guild.voice) { - msg.reply('i\'m already playing that lol'); - } else { - msg.reply('you need to join a voice channel first silly'); + const voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.say('join a channel and try again ' + emoji.random()); + + const video = await fartAudio; + // // 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) { + msg.reply(fartMsg); + msg.say(fartTitle, 'added to queue ' + emoji.random()); + return } + + 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 + .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(fartTitle, 'added to queue ' + emoji.random()); + } + }) + .catch(function () { + if (songEmbed) { + songEmbed.delete(); + } + return msg.say( + 'an error has occured when trying to get the video file ' + 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( + fartAudio // TODO: broken here + ) + .on('start', function () { + msg.guild.musicData.songDispatcher = dispatcher; + const volume = 100 / 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) { + return { // TODO: and broken here + url: 'fart', + title: 'fart 1', + voiceChannel + }; } };
\ No newline at end of file |