From 8c435855e647ee7aef8578e253caf91fe44c67cc Mon Sep 17 00:00:00 2001 From: 8cy <50817549+8cy@users.noreply.github.com> Date: Thu, 16 Apr 2020 04:56:37 -0700 Subject: The Purification, v7.0.0 add: - aesthetic, oddcase, stretch, surreal - culturedtext - dogeify - howify - insult - lorem - spongebob Other Stuff: - many refactoring --- src/app.js | 8 ---- src/app.ts | 8 ++++ src/bot.ts | 10 ++--- src/commands/fun/8ball.js | 38 ------------------ src/commands/fun/8ball.ts | 37 ++++++++++++++++++ src/commands/fun/aesthetic.ts | 33 ++++++++++++++++ src/commands/fun/culturedtext.ts | 49 +++++++++++++++++++++++ src/commands/fun/dm.ts | 63 ++++++++++++++++++++++++++++++ src/commands/fun/dogeify.ts | 34 ++++++++++++++++ src/commands/fun/emoji.js | 24 ------------ src/commands/fun/emoji.ts | 24 ++++++++++++ src/commands/fun/gay.js | 34 ---------------- src/commands/fun/gay.ts | 35 +++++++++++++++++ src/commands/fun/howify.ts | 32 +++++++++++++++ src/commands/fun/insult.ts | 21 ++++++++++ src/commands/fun/lorem.ts | 30 +++++++++++++++ src/commands/fun/oddcase.ts | 32 +++++++++++++++ src/commands/fun/quote.js | 40 ------------------- src/commands/fun/quote.ts | 45 ++++++++++++++++++++++ src/commands/fun/respect.js | 23 ----------- src/commands/fun/respect.ts | 23 +++++++++++ src/commands/fun/say.js | 31 --------------- src/commands/fun/say.ts | 32 +++++++++++++++ src/commands/fun/spongebob.ts | 35 +++++++++++++++++ src/commands/fun/stretch.ts | 33 ++++++++++++++++ src/commands/fun/surreal.ts | 32 +++++++++++++++ src/commands/fun/uwufy.ts | 15 +++++--- src/commands/utility/btc.ts | 6 +-- src/commands/utility/btcchange.js | 47 ---------------------- src/commands/utility/btcchange.ts | 48 +++++++++++++++++++++++ src/commands/utility/clear.js | 72 ---------------------------------- src/commands/utility/clear.ts | 77 +++++++++++++++++++++++++++++++++++++ src/commands/utility/membercount.js | 29 -------------- src/commands/utility/membercount.ts | 29 ++++++++++++++ src/commands/utility/server.js | 54 -------------------------- src/commands/utility/server.ts | 54 ++++++++++++++++++++++++++ src/commands/utility/servercount.ts | 6 +-- src/commands/utility/uptime.ts | 9 ++--- src/commands/voice/abee.ts | 8 ++-- src/commands/voice/itemshop.ts | 8 ++-- src/commands/voice/join.js | 31 --------------- src/commands/voice/join.ts | 31 +++++++++++++++ src/commands/voice/leave.js | 34 ---------------- src/commands/voice/leave.ts | 34 ++++++++++++++++ src/commands/voice/loop.js | 34 ---------------- src/commands/voice/loop.ts | 34 ++++++++++++++++ src/commands/voice/minecraft.ts | 8 ++-- src/commands/voice/pause.js | 32 --------------- src/commands/voice/pause.ts | 32 +++++++++++++++ src/commands/voice/play.ts | 8 ++-- src/commands/voice/psycho.ts | 8 ++-- src/commands/voice/queue.js | 51 ------------------------ src/commands/voice/queue.ts | 51 ++++++++++++++++++++++++ src/commands/voice/remove.js | 41 -------------------- src/commands/voice/remove.ts | 41 ++++++++++++++++++++ src/commands/voice/resume.js | 32 --------------- src/commands/voice/resume.ts | 32 +++++++++++++++ src/commands/voice/shuffle.js | 53 ------------------------- src/commands/voice/shuffle.ts | 53 +++++++++++++++++++++++++ src/commands/voice/skip.js | 29 -------------- src/commands/voice/skip.ts | 29 ++++++++++++++ src/commands/voice/skipall.js | 44 --------------------- src/commands/voice/skipall.ts | 44 +++++++++++++++++++++ src/commands/voice/skipto.js | 43 --------------------- src/commands/voice/skipto.ts | 43 +++++++++++++++++++++ src/commands/voice/volume.js | 45 ---------------------- src/commands/voice/volume.ts | 45 ++++++++++++++++++++++ 67 files changed, 1320 insertions(+), 910 deletions(-) delete mode 100644 src/app.js create mode 100644 src/app.ts delete mode 100644 src/commands/fun/8ball.js create mode 100644 src/commands/fun/8ball.ts create mode 100644 src/commands/fun/aesthetic.ts create mode 100644 src/commands/fun/culturedtext.ts create mode 100644 src/commands/fun/dm.ts create mode 100644 src/commands/fun/dogeify.ts delete mode 100644 src/commands/fun/emoji.js create mode 100644 src/commands/fun/emoji.ts delete mode 100644 src/commands/fun/gay.js create mode 100644 src/commands/fun/gay.ts create mode 100644 src/commands/fun/howify.ts create mode 100644 src/commands/fun/insult.ts create mode 100644 src/commands/fun/lorem.ts create mode 100644 src/commands/fun/oddcase.ts delete mode 100644 src/commands/fun/quote.js create mode 100644 src/commands/fun/quote.ts delete mode 100644 src/commands/fun/respect.js create mode 100644 src/commands/fun/respect.ts delete mode 100644 src/commands/fun/say.js create mode 100644 src/commands/fun/say.ts create mode 100644 src/commands/fun/spongebob.ts create mode 100644 src/commands/fun/stretch.ts create mode 100644 src/commands/fun/surreal.ts delete mode 100644 src/commands/utility/btcchange.js create mode 100644 src/commands/utility/btcchange.ts delete mode 100644 src/commands/utility/clear.js create mode 100644 src/commands/utility/clear.ts delete mode 100644 src/commands/utility/membercount.js create mode 100644 src/commands/utility/membercount.ts delete mode 100644 src/commands/utility/server.js create mode 100644 src/commands/utility/server.ts delete mode 100644 src/commands/voice/join.js create mode 100644 src/commands/voice/join.ts delete mode 100644 src/commands/voice/leave.js create mode 100644 src/commands/voice/leave.ts delete mode 100644 src/commands/voice/loop.js create mode 100644 src/commands/voice/loop.ts delete mode 100644 src/commands/voice/pause.js create mode 100644 src/commands/voice/pause.ts delete mode 100644 src/commands/voice/queue.js create mode 100644 src/commands/voice/queue.ts delete mode 100644 src/commands/voice/remove.js create mode 100644 src/commands/voice/remove.ts delete mode 100644 src/commands/voice/resume.js create mode 100644 src/commands/voice/resume.ts delete mode 100644 src/commands/voice/shuffle.js create mode 100644 src/commands/voice/shuffle.ts delete mode 100644 src/commands/voice/skip.js create mode 100644 src/commands/voice/skip.ts delete mode 100644 src/commands/voice/skipall.js create mode 100644 src/commands/voice/skipall.ts delete mode 100644 src/commands/voice/skipto.js create mode 100644 src/commands/voice/skipto.ts delete mode 100644 src/commands/voice/volume.js create mode 100644 src/commands/voice/volume.ts (limited to 'src') diff --git a/src/app.js b/src/app.js deleted file mode 100644 index ebcf388..0000000 --- a/src/app.js +++ /dev/null @@ -1,8 +0,0 @@ -const { ShardingManager } = require('discord.js'); -const config = require('./config.json'); -const manager = new ShardingManager('./dist/bot.js', { token: config['secret'] }); -//const manager = new ShardingManager('./bot.js', { token: config['secret'] }); - -manager.spawn(); -console.log('Connecting...'); -manager.on('shardCreate', shard => console.log(`Launched shard: ${shard.id}`)); diff --git a/src/app.ts b/src/app.ts new file mode 100644 index 0000000..a11d878 --- /dev/null +++ b/src/app.ts @@ -0,0 +1,8 @@ +import { ShardingManager } from 'discord.js'; +import config from './config.json'; +const manager = new ShardingManager('./dist/bot.js', { token: config['secret'] }); +//const manager = new ShardingManager('./bot.js', { token: config['secret'] }); + +manager.spawn(); +console.log('Connecting...'); +manager.on('shardCreate', shard => console.log(`Launched shard: ${shard.id}`)); diff --git a/src/bot.ts b/src/bot.ts index 808ea31..2f3d8a3 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -2,11 +2,10 @@ import config from './config.json'; import { CommandoClient } from 'discord.js-commando'; //import WS from './ws/ws'; import path from 'path'; -import { Structures } from 'discord.js'; +import { Structures, MessageAttachment } from 'discord.js'; import emoji from 'emoji-random'; Structures.extend('Guild', Guild => { class MusicGuild extends Guild { - musicData: { queue: never[]; isPlaying: boolean; volume: number; songDispatcher: null; }; constructor(client, data) { super(client, data); this.musicData = { @@ -19,7 +18,7 @@ Structures.extend('Guild', Guild => { } return MusicGuild; }); -// + const client = new CommandoClient({ commandPrefix: 'uwu!', owner: '217348698294714370' @@ -57,9 +56,10 @@ client.once('ready', () => { console.log('OS Version:', process.platform) console.log('Name:', `${client.user?.tag}`) console.log('ID:', `${client.user?.id}`) + console.log('Servers:', `${client.guilds.cache.size}`) console.log() - client.user.setActivity('uwu!help | v6.0.0', { + client.user.setActivity('uwu!help | v7.0.0', { type: 'WATCHING' }); }); @@ -81,7 +81,7 @@ client.on('message', async msg => { console.log(msg.member.user.tag, 'says', msgContent, 'in #' + msg.channel.name + ' in ' + msg.guild.name); } } - + if (msg.mentions.everyone) { msg.react(emoji.random()); } diff --git a/src/commands/fun/8ball.js b/src/commands/fun/8ball.js deleted file mode 100644 index 6be4f01..0000000 --- a/src/commands/fun/8ball.js +++ /dev/null @@ -1,38 +0,0 @@ -const { Command } = require('discord.js-commando'); -const { MessageEmbed } = require('discord.js'); - -module.exports = class EightBallFun extends Command { - constructor(client) { - super(client, { - name: '8ball', - aliases: [ - '8b', - '9b', - '9ball', - '7b', - '7ball' - ], - group: 'fun', - memberName: '8ball', - description: 'Shake the 8ball for a fortune.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!8ball', 'uwu!8b'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg) { - var r = ['Yes~ uwu', 'No.', 'Yes!', 'No!', 'What, no.', 'Yes.', 'Maybe.', 'Perhaps.', 'Try again.', 'I\'m not sure.']; - var s = r[Math.floor(Math.random() * r.length)]; - - let embed = new MessageEmbed() - - .setAuthor('The 8-ball says', 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/8-Ball_Pool.svg/500px-8-Ball_Pool.svg.png') - .setDescription('`' + s + '`'); - - msg.channel.send(embed); - } -}; \ No newline at end of file diff --git a/src/commands/fun/8ball.ts b/src/commands/fun/8ball.ts new file mode 100644 index 0000000..faf7adf --- /dev/null +++ b/src/commands/fun/8ball.ts @@ -0,0 +1,37 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; + +module.exports = class EightBallFun extends Command { + constructor(client) { + super(client, { + name: '8ball', + aliases: [ + '8b', + '9b', + '9ball', + '7b', + '7ball' + ], + group: 'fun', + memberName: '8ball', + description: 'Shake the 8ball for a fortune.', + throttling: { + usages: 5, + duration: 30 + }, + examples: ['uwu!8ball', 'uwu!8b'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage) { + var r = ['Yes~ uwu', 'No.', 'Yes!', 'No!', 'What, no.', 'Yes.', 'Maybe.', 'Perhaps.', 'Try again.', 'I\'m not sure.']; + var s = r[Math.floor(Math.random() * r.length)]; + let embed = new MessageEmbed() + + .setAuthor('The 8-ball says', 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/8-Ball_Pool.svg/500px-8-Ball_Pool.svg.png') + .setDescription('`' + s + '`'); + + msg.channel.send(embed); + } +}; \ No newline at end of file diff --git a/src/commands/fun/aesthetic.ts b/src/commands/fun/aesthetic.ts new file mode 100644 index 0000000..54bde0c --- /dev/null +++ b/src/commands/fun/aesthetic.ts @@ -0,0 +1,33 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import ct from 'culturedtext'; +import emoji from 'emoji-random'; + +module.exports = class AestheticFun extends Command { + constructor(client) { + super(client, { + name: 'aesthetic', + aliases: ['aestheticifize'], + group: 'fun', + memberName: 'aesthetic', + description: 'Aestheticifizes anything you send.', + args: [ + { + key: 'userMsg', + prompt: 'What would you like to aestheticifize?', + type: 'string' + } + ], + examples: [ + 'uwu!aesthetic please aestheticifize this' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { userMsg }) { + var m = userMsg; + var u1 = ct.aethstetic(m); + msg.reply(u1 + ' ' + emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/culturedtext.ts b/src/commands/fun/culturedtext.ts new file mode 100644 index 0000000..499b3e6 --- /dev/null +++ b/src/commands/fun/culturedtext.ts @@ -0,0 +1,49 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import ct from 'culturedtext'; +import emoji from 'emoji-random'; + +module.exports = class CulturedTextFun extends Command { + constructor(client) { + super(client, { + name: 'culturedtext', + aliases: ['ct'], + group: 'fun', + memberName: 'culturedtext', + description: 'Cultured textifys anything you send.', + args: [ + { + key: 'userMsg', + prompt: 'What would you like to cultured textifys?', + type: 'string' + }, + { + key: 'ctType', + prompt: 'What type of cultured textification would you like to do? (oddcase, aesthetic, surreal or stretch)', + type: 'string' + } + + ], + examples: [ + 'uwu!culturedtext oddcase please cultured textify this' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { userMsg, ctType }) { + var m = userMsg; + if (ctType == "oddcase" || ctType == 'o') { + var u1 = ct.oddcase(m + ' ' + emoji.random()); + } else if (ctType == 'aesthetic' || ctType == 'a') { + var u1 = ct.aethstetic(m + ' ' + emoji.random()); + } else if (ctType == 'surreal') { + var u1 = ct.surreal(m + ' ' + emoji.random()); + } else if (ctType == 'stretch') { + var u1 = ct.stretched(m + ' ' + emoji.random()); + } else { + msg.reply('That is not at option, please sellect a valid option.') + } + msg.reply(u1 + ' ' + emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/dm.ts b/src/commands/fun/dm.ts new file mode 100644 index 0000000..73fa0b6 --- /dev/null +++ b/src/commands/fun/dm.ts @@ -0,0 +1,63 @@ +// TODO: remove mention from final msg + +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; + +module.exports = class DMFun extends Command { + constructor(client) { + super(client, { + name: 'dm', + aliases: [ + 'directmessage', + 'directmsg', + 'direct-message', + 'direct-msg' + ], + group: 'fun', + memberName: 'dm', + description: 'Allows you to DM somebody as the bot.', + guildOnly: true, + args: [ + { + key: 'msgContent', + prompt: 'What message would you like to send?', + type: 'string' + } + ], + examples: [ + 'uwu!dm @sin#1337 hi', + 'uwu!directmessage @sin#1337 hey', + 'uwu!directmsg @sin#1337 hello', + 'uwu!direct-message @sin#1337 yo', + 'uwu!direct-msg @sin#1337 aye', + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'ADMINISTRATOR'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage, { msgContent }) { + if (msg.author.id == '217348698294714370') { + if (!msg.mentions.users.first() && msgContent) { + msg.reply('You haven\'t specified anyone to send a message to.'); + } else { + var sendTo = msg.mentions.users.first().id; + var d = new Date(msg.createdTimestamp); + + msg.guild.members.fetch(sendTo).then(messageUser => { + messageUser.send(msgContent); + + var emb = new MessageEmbed() + .setColor(0xFFCC4D) + .setTitle('uwufier - DM') + .addField('Message content', `${msgContent}`) + .addField('Recipient', `${msg.mentions.users.first()}`) + .addField('Sender', `${msg.author}`) + .addField('Time sent', `Now`) + msg.say(emb) + }); + } + } else { + msg.reply('Insufficent permissions.'); + } + } +}; \ No newline at end of file diff --git a/src/commands/fun/dogeify.ts b/src/commands/fun/dogeify.ts new file mode 100644 index 0000000..3ec79bc --- /dev/null +++ b/src/commands/fun/dogeify.ts @@ -0,0 +1,34 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import doge from 'dogeify-js'; +import emoji from 'emoji-random'; + +module.exports = class DogeifyFun extends Command { + constructor(client) { + super(client, { + name: 'dogeify', + aliases: ['doge'], + group: 'fun', + memberName: 'dogeify', + description: 'Dogifys anything you send.', + args: [ + { + key: 'userMsg', + prompt: 'What would you like to dogeify?', + type: 'string' + } + ], + examples: [ + 'uwu!dogeify please dogify this', + 'uwu!doge can u do this as well' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + async run(msg: CommandoMessage, { userMsg }) { + var m = userMsg; + var u1 = await doge(m); + msg.reply(u1 + ' ' emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/emoji.js b/src/commands/fun/emoji.js deleted file mode 100644 index ca633b9..0000000 --- a/src/commands/fun/emoji.js +++ /dev/null @@ -1,24 +0,0 @@ -const emoji = require('emoji-random'); -const { Command } = require('discord.js-commando'); - -module.exports = class EmojiFun extends Command { - constructor(client) { - super(client, { - name: 'emoji', - aliases: ['moji'], - group: 'fun', - memberName: 'emoji', - description: 'Gives you a random emoji.' + emoji.random(), - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!emoji', 'uwu!moji'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg) { - msg.reply(emoji.random()); - } -}; \ No newline at end of file diff --git a/src/commands/fun/emoji.ts b/src/commands/fun/emoji.ts new file mode 100644 index 0000000..2950738 --- /dev/null +++ b/src/commands/fun/emoji.ts @@ -0,0 +1,24 @@ +import emoji from 'emoji-random'; +import { Command, CommandoMessage } from 'discord.js-commando'; + +module.exports = class EmojiFun extends Command { + constructor(client) { + super(client, { + name: 'emoji', + aliases: ['moji'], + group: 'fun', + memberName: 'emoji', + description: 'Gives you a random emoji.' + emoji.random(), + throttling: { + usages: 5, + duration: 30 + }, + examples: ['uwu!emoji', 'uwu!moji'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage) { + msg.reply(emoji.random()); + } +}; \ No newline at end of file diff --git a/src/commands/fun/gay.js b/src/commands/fun/gay.js deleted file mode 100644 index ec78ee3..0000000 --- a/src/commands/fun/gay.js +++ /dev/null @@ -1,34 +0,0 @@ -const { Command } = require('discord.js-commando'); - -module.exports = class GayFun extends Command { - constructor(client) { - super(client, { - name: 'gay', - aliases: [ - 'gayamount', - 'gayrange', - 'gayrate' - ], - group: 'fun', - memberName: 'gay', - description: 'Tells you your gay-ness amount.', - examples: [ - 'uwu!gay', - 'uwu!gayamount', - 'uwu!gayrange', - 'uwu!gayrate' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg) { - var gayAmount = Math.floor((Math.random() * 100) + 1); - var gayAmountDecimal = Math.floor((Math.random() * 100) + 1); - - msg.reply('Scanning..').then(scanningMsg => { - scanningMsg.delete() - msg.reply('Your gay-ness amount is **' + gayAmount + '.' + gayAmountDecimal + '%**. 🏳️‍🌈'); - }); - } -}; \ No newline at end of file diff --git a/src/commands/fun/gay.ts b/src/commands/fun/gay.ts new file mode 100644 index 0000000..a522cf9 --- /dev/null +++ b/src/commands/fun/gay.ts @@ -0,0 +1,35 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; + +module.exports = class GayFun extends Command { + constructor(client) { + super(client, { + name: 'gay', + aliases: [ + 'gayamount', + 'gayrange', + 'gayrate' + ], + group: 'fun', + memberName: 'gay', + description: 'Tells you your gay-ness amount.', + examples: [ + 'uwu!gay', + 'uwu!gayamount', + 'uwu!gayrange', + 'uwu!gayrate' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage) { + var gayAmount = Math.floor((Math.random() * 100) + 1); + var gayAmountDecimal = Math.floor((Math.random() * 100) + 1); + + msg.reply('Scanning..').then(scanningMsg => { + // @ts-ignore + scanningMsg.delete() + msg.reply('Your gay-ness amount is **' + gayAmount + '.' + gayAmountDecimal + '%**. 🏳️‍🌈'); + }); + } +}; \ No newline at end of file diff --git a/src/commands/fun/howify.ts b/src/commands/fun/howify.ts new file mode 100644 index 0000000..e7e7eb6 --- /dev/null +++ b/src/commands/fun/howify.ts @@ -0,0 +1,32 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import how from 'howifier'; +import emoji from 'emoji-random'; + +module.exports = class HowifyFun extends Command { + constructor(client) { + super(client, { + name: 'howify', + aliases: ['how'], + group: 'fun', + memberName: 'howify', + description: 'Howifies any image you send.', + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'EMBED_LINKS'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'EMBED_LINKS'], + examples: ['uwu!howify', 'uwu!how'] + }); + } + run(msg: CommandoMessage) { + if (msg.attachments.size) { + // fs.unlinkSync('../../../node_modules/howifier/images/blissgay.jpeg') + msg.attachments.forEach(async attachment => { + var u1 = await how(attachment.url); + setTimeout(() => { + msg.say({ files: [u1] }) + }, 2000); + }); + } else { + msg.reply('No image detected. ' + emoji.random()) + } + + } +}; \ No newline at end of file diff --git a/src/commands/fun/insult.ts b/src/commands/fun/insult.ts new file mode 100644 index 0000000..aec2219 --- /dev/null +++ b/src/commands/fun/insult.ts @@ -0,0 +1,21 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import insult from 'insult'; +import emoji from 'emoji-random'; + +module.exports = class InsultFun extends Command { + constructor(client) { + super(client, { + name: 'insult', + aliases: ['insults'], + group: 'fun', + memberName: 'insult', + description: 'Gives you a random insult.', + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + examples: ['uwu!insult', 'uwu!insults'] + }); + } + run(msg: CommandoMessage) { + msg.reply(insult.Insult() + ' ' + emoji.random()) + } +}; \ No newline at end of file diff --git a/src/commands/fun/lorem.ts b/src/commands/fun/lorem.ts new file mode 100644 index 0000000..c1d0e0e --- /dev/null +++ b/src/commands/fun/lorem.ts @@ -0,0 +1,30 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import lm from 'lorem-memesum'; +import emoji from 'emoji-random'; + +module.exports = class LoremFun extends Command { + constructor(client) { + super(client, { + name: 'lorem', + aliases: ['lorem-impsum', 'loremipsum', 'ipsum', 'lorem-memesum', 'loremmemesum', 'memesum'], + group: 'fun', + memberName: 'lorem', + description: 'Gives you a random memeified Lorem Ipsum', + examples: [ + 'uwu!lorem', + 'uwu!lorem-ipsum', + 'uwu!loremipsum', + 'uwu!ipsum', + 'uwu!lorem-memesum', + 'uwu!loremmemesum', + 'uwu!memesum' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + msg.reply(lm.sentence.randomSentence() + ' ' + emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/oddcase.ts b/src/commands/fun/oddcase.ts new file mode 100644 index 0000000..b574244 --- /dev/null +++ b/src/commands/fun/oddcase.ts @@ -0,0 +1,32 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import ct from 'culturedtext'; +import emoji from 'emoji-random'; + +module.exports = class OddcaseFun extends Command { + constructor(client) { + super(client, { + name: 'oddcase', + group: 'fun', + memberName: 'oddcase', + description: 'Oddcases anything you send.', + args: [ + { + key: 'userMsg', + prompt: 'What would you like to oddcase?', + type: 'string' + } + ], + examples: [ + 'uwu!oddcase please oddcase this' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { userMsg }) { + var m = userMsg; + var u1 = ct.oddcase(m); + msg.reply(u1 + ' ' + emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/quote.js b/src/commands/fun/quote.js deleted file mode 100644 index 4a19a31..0000000 --- a/src/commands/fun/quote.js +++ /dev/null @@ -1,40 +0,0 @@ -const atquotes = require('at-quotes'); -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class QuoteFun extends Command { - constructor(client) { - super(client, { - name: 'quote', - aliases: ['quotes'], - group: 'fun', - memberName: 'quote', - description: 'Gives you a random quote from Adventure Time.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['s5n!quote', 's5n!quote finn'], - args: [ - { - key: 'atCharacter', - prompt: 'Would you like a specific character? (Finn, Jake, Ice King, No)', - type: 'string' - } - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg, { atCharacter }) { - if (!atCharacter || atCharacter == 'no' || atCharacter == 'n') { - msg.reply(atquotes.getQuote() + ' ' + emoji.random()); - } else if (atCharacter == 'finn' || atCharacter == 'f') { - msg.reply(atquotes.getFinnQuote() + ' ' + emoji.random()); - } else if (atCharacter == 'jake' || atCharacter == 'j') { - msg.reply(atquotes.getJakeQuote() + ' ' + emoji.random()); - } else if (atCharacter == 'ice king' || atCharacter == 'ik') { - msg.reply(atquotes.getIceKingQuote() + ' ' + emoji.random()); - } - } -}; \ No newline at end of file diff --git a/src/commands/fun/quote.ts b/src/commands/fun/quote.ts new file mode 100644 index 0000000..1e130a8 --- /dev/null +++ b/src/commands/fun/quote.ts @@ -0,0 +1,45 @@ +import atquotes from 'at-quotes'; +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class QuoteFun extends Command { + constructor(client) { + super(client, { + name: 'quote', + aliases: ['quotes'], + group: 'fun', + memberName: 'quote', + description: 'Gives you a random quote from Adventure Time.', + throttling: { + usages: 5, + duration: 30 + }, + examples: [ + 'uwu!quote', + 'uwu!qutoes', + 'uwu!quote finn', + 'uwu!quotes ice king' + ], + args: [ + { + key: 'atCharacter', + prompt: 'Would you like a specific character? (Finn, Jake, Ice King, No)', + type: 'string' + } + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage, { atCharacter }) { + if (!atCharacter || atCharacter == 'no' || atCharacter == 'n') { + msg.reply(atquotes.getQuote() + ' ' + emoji.random()); + } else if (atCharacter == 'finn' || atCharacter == 'f') { + msg.reply(atquotes.getFinnQuote() + ' ' + emoji.random()); + } else if (atCharacter == 'jake' || atCharacter == 'j') { + msg.reply(atquotes.getJakeQuote() + ' ' + emoji.random()); + } else if (atCharacter == 'ice king' || atCharacter == 'ik') { + msg.reply(atquotes.getIceKingQuote() + ' ' + emoji.random()); + } + } +}; \ No newline at end of file diff --git a/src/commands/fun/respect.js b/src/commands/fun/respect.js deleted file mode 100644 index 50d185b..0000000 --- a/src/commands/fun/respect.js +++ /dev/null @@ -1,23 +0,0 @@ -const { Command } = require('discord.js-commando'); - -module.exports = class RespectFun extends Command { - constructor(client) { - super(client, { - name: 'respect', - aliases: ['f'], - group: 'fun', - memberName: 'respect', - description: 'Press F to pay respects.', - examples: ['uwu!respect', 'uwu!f'], - guildOnly: true, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg) { - msg.channel.send('Press F to pay respects.').then(m => { - m.react('🇫'); - msg.delete(); - }); - } -}; \ No newline at end of file diff --git a/src/commands/fun/respect.ts b/src/commands/fun/respect.ts new file mode 100644 index 0000000..863b9e7 --- /dev/null +++ b/src/commands/fun/respect.ts @@ -0,0 +1,23 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; + +module.exports = class RespectFun extends Command { + constructor(client) { + super(client, { + name: 'respect', + aliases: ['f'], + group: 'fun', + memberName: 'respect', + description: 'Press F to pay respects.', + examples: ['uwu!respect', 'uwu!f'], + guildOnly: true, + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage) { + msg.channel.send('Press F to pay respects.').then(m => { + m.react('🇫'); + msg.delete(); + }); + } +}; \ No newline at end of file diff --git a/src/commands/fun/say.js b/src/commands/fun/say.js deleted file mode 100644 index 667bb49..0000000 --- a/src/commands/fun/say.js +++ /dev/null @@ -1,31 +0,0 @@ -const { Command } = require('discord.js-commando'); - -module.exports = class SayFun extends Command { - constructor(client) { - super(client, { - name: 'say', - group: 'fun', - memberName: 'say', - description: 'Allows you to speak as the bot.', - guildOnly: true, - args: [ - { - key: 'say', - prompt: 'What would you like to send?', - type: 'string' - } - ], - examples: ['uwu!say hi'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg, { say }) { - if (msg.member.hasPermission('KICK_MEMBERS')) { - msg.channel.send(say); - msg.delete(); - } else { - msg.reply('Insufficent perms. ' + emoji.random()); - } - } -}; \ No newline at end of file diff --git a/src/commands/fun/say.ts b/src/commands/fun/say.ts new file mode 100644 index 0000000..0d360bd --- /dev/null +++ b/src/commands/fun/say.ts @@ -0,0 +1,32 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class SayFun extends Command { + constructor(client) { + super(client, { + name: 'say', + group: 'fun', + memberName: 'say', + description: 'Allows you to speak as the bot.', + guildOnly: true, + args: [ + { + key: 'say', + prompt: 'What would you like to send?', + type: 'string' + } + ], + examples: ['uwu!say hi'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage, { say }) { + if (msg.member.hasPermission('KICK_MEMBERS')) { + msg.channel.send(say); + msg.delete(); + } else { + msg.reply('Insufficent permsissions. ' + emoji.random()); + } + } +}; \ No newline at end of file diff --git a/src/commands/fun/spongebob.ts b/src/commands/fun/spongebob.ts new file mode 100644 index 0000000..07c7d83 --- /dev/null +++ b/src/commands/fun/spongebob.ts @@ -0,0 +1,35 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import sbm from 'spongibobu.js'; +import emoji from 'emoji-random'; + +module.exports = class SpongebobFun extends Command { + constructor(client) { + super(client, { + name: 'spongebob', + aliases: ['spongibobu', 'sbm'], + group: 'fun', + memberName: 'spongebob', + description: 'Spongebob memifys anything you send.', + args: [ + { + key: 'userMsg', + prompt: 'What would you like to spongebob memify?', + type: 'string' + } + ], + examples: [ + 'uwu!spongebob please spongebob memify this', + 'uwu!spongibobu sponge gang', + 'uwu!sbm oooh example' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { userMsg }) { + var m = userMsg; + var u1 = sbm(m); + msg.reply(u1 + ' ' + emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/stretch.ts b/src/commands/fun/stretch.ts new file mode 100644 index 0000000..19d4bfa --- /dev/null +++ b/src/commands/fun/stretch.ts @@ -0,0 +1,33 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import ct from 'culturedtext'; +import emoji from 'emoji-random'; + +module.exports = class StretchFun extends Command { + constructor(client) { + super(client, { + name: 'stretch', + aliases: ['stretched'], + group: 'fun', + memberName: 'stretch', + description: 'Stretches anything you send.', + args: [ + { + key: 'userMsg', + prompt: 'What would you like to stretch?', + type: 'string' + } + ], + examples: [ + 'uwu!stretch please stretch this' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { userMsg }) { + var m = userMsg; + var u1 = ct.stretched(m); + msg.reply(u1 + ' ' + emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/surreal.ts b/src/commands/fun/surreal.ts new file mode 100644 index 0000000..37fe21a --- /dev/null +++ b/src/commands/fun/surreal.ts @@ -0,0 +1,32 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import ct from 'culturedtext'; +import emoji from 'emoji-random'; + +module.exports = class SurrealFun extends Command { + constructor(client) { + super(client, { + name: 'surreal', + group: 'fun', + memberName: 'surreal', + description: 'Surrealifies anything you send.', + args: [ + { + key: 'userMsg', + prompt: 'What would you like to surrealify?', + type: 'string' + } + ], + examples: [ + 'uwu!surreal please surrealify this' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { userMsg }) { + var m = userMsg; + var u1 = ct.surreal(m); + msg.reply(u1 + ' ' + emoji.random()); + msg.delete(); + } +}; \ No newline at end of file diff --git a/src/commands/fun/uwufy.ts b/src/commands/fun/uwufy.ts index 9e40078..db0f19b 100644 --- a/src/commands/fun/uwufy.ts +++ b/src/commands/fun/uwufy.ts @@ -1,5 +1,5 @@ -import { Message } from "discord.js"; -import { Command } from 'discord.js-commando'; +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; module.exports = class UwufyFun extends Command { constructor(client) { @@ -16,16 +16,21 @@ module.exports = class UwufyFun extends Command { type: 'string' } ], - examples: ['uwu!say please uwufy this'], + examples: [ + 'uwu!uwufy please uwufy this', + 'uwu!uwu can u uwufy this', + 'uwu!owofy this thx', + 'uwu!owo nice now this' + ], userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], }); } - run(msg: Message, { userMsg }) { + run(msg: CommandoMessage, { userMsg }) { var m = userMsg; var u1 = m.replace('r', 'w'); var u2 = u1.replace('l', 'w'); - msg.reply(u2); + msg.reply(u2 + ' ' + emoji.random()); msg.delete(); } }; \ No newline at end of file diff --git a/src/commands/utility/btc.ts b/src/commands/utility/btc.ts index 2845194..c0c14f3 100644 --- a/src/commands/utility/btc.ts +++ b/src/commands/utility/btc.ts @@ -1,4 +1,4 @@ -import { Command } from 'discord.js-commando'; +import { Command, CommandoMessage } from 'discord.js-commando'; import emoji from 'emoji-random'; import btc from 'btc-value'; btc.setApiKey('a43419ce-fc59-4951-8af9-20c5e36ef73f'); @@ -14,7 +14,7 @@ module.exports = class BTCUtility extends Command { args: [ { key: 'currencyName', - prompt: 'What currency could you like to see it in? (USD, AUD, CAD)', + prompt: 'What currency could you like to see it in? (USD, AUD, CAD, etc.)', type: 'string' } ], @@ -27,7 +27,7 @@ module.exports = class BTCUtility extends Command { clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] }); } - run(msg: Message, { currencyName }) { + run(msg: CommandoMessage, { currencyName }) { currencyName = currencyName.toUpperCase(); btc({ isDecimal: true, currencyCode: currencyName }).then(value => { msg.reply('The current price of *Bitcoin* in **' + currencyName + '** is **' + value + '**. ' + emoji.random()); diff --git a/src/commands/utility/btcchange.js b/src/commands/utility/btcchange.js deleted file mode 100644 index 474a3ee..0000000 --- a/src/commands/utility/btcchange.js +++ /dev/null @@ -1,47 +0,0 @@ -const { Command } = require('discord.js-commando'); -const btc = require('btc-value'); -btc.setApiKey('a43419ce-fc59-4951-8af9-20c5e36ef73f'); - -module.exports = class BTCChangeUtility extends Command { - constructor(client) { - super(client, { - name: 'btcchange', - aliases: ['bitcoinchange', 'cryptochange', 'btcc'], - group: 'utility', - memberName: 'btcchange', - description: 'Allows you to check the fluctuation in Bitcoin prices within a specified amount of time.', - args: [ - { - key: 'timeAmount', - prompt: 'What time range do you want to check the fluction amount in? (day, hour, week)', - type: 'string' - } - ], - examples: [ - 'uwu!btcchange day', - 'uwu!bitcoinchange hour', - 'uwu!cryptochange week', - 'uwu!btcc day' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg, { timeAmount }) { - if (timeAmount == 'day') { - btc.getPercentageChangeLastDay().then(percentage => { - msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); - }); - } else if (timeAmount == 'hour') { - btc.getPercentageChangeLastHour().then(percentage => { - msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); - }); - } else if (timeAmount == 'week') { - btc.getPercentageChangeLastWeek().then(percentage => { - msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); - }); - } else { - msg.reply('*' + timeAmount + '* is not a valid range. ' + emoji.random()); - } - } -}; \ No newline at end of file diff --git a/src/commands/utility/btcchange.ts b/src/commands/utility/btcchange.ts new file mode 100644 index 0000000..9ef5d4d --- /dev/null +++ b/src/commands/utility/btcchange.ts @@ -0,0 +1,48 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import btc from 'btc-value'; +import emoji from 'emoji-random'; +btc.setApiKey('a43419ce-fc59-4951-8af9-20c5e36ef73f'); + +module.exports = class BTCChangeUtility extends Command { + constructor(client) { + super(client, { + name: 'btcchange', + aliases: ['bitcoinchange', 'cryptochange', 'btcc'], + group: 'utility', + memberName: 'btcchange', + description: 'Allows you to check the fluctuation in Bitcoin prices within a specified amount of time.', + args: [ + { + key: 'timeAmount', + prompt: 'What time range do you want to check the fluction amount in? (day, hour, week)', + type: 'string' + } + ], + examples: [ + 'uwu!btcchange day', + 'uwu!bitcoinchange hour', + 'uwu!cryptochange week', + 'uwu!btcc day' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage, { timeAmount }) { + if (timeAmount == 'day') { + btc.getPercentageChangeLastDay().then(percentage => { + msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); + }); + } else if (timeAmount == 'hour') { + btc.getPercentageChangeLastHour().then(percentage => { + msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); + }); + } else if (timeAmount == 'week') { + btc.getPercentageChangeLastWeek().then(percentage => { + msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); + }); + } else { + msg.reply('*' + timeAmount + '* is not a valid range. ' + emoji.random()); + } + } +}; \ No newline at end of file diff --git a/src/commands/utility/clear.js b/src/commands/utility/clear.js deleted file mode 100644 index 6871cca..0000000 --- a/src/commands/utility/clear.js +++ /dev/null @@ -1,72 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class ClearUtility extends Command { - constructor(client) { - super(client, { - name: 'clear', - aliases: ['delete', 'del', 'c', 'd'], - group: 'utility', - memberName: 'clear', - description: 'Clears a specified amount of messages.', - guildOnly: true, - args: [ - { - key: 'deleteAmount', - prompt: 'How many messages would you like to delete?', - type: 'integer' - } - ], - examples: [ - 'uwu!clear 23', - 'uwu!delete 75', - 'uwu!del 32', - 'uwu!c 45', - 'uwu!d 84' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'] - }); - } - async run(msg, { deleteAmount }) { - if (msg.member.hasPermission('MANAGE_MESSAGES')) { - if (!deleteAmount) { - msg.reply('You haven\'t specified an amount of messages which should be deleted. ' + emoji.random()).then(deleteNotificationMessage => { - deleteNotificationMessage.delete({ timeout: 1000 }); - }); - } else if (isNaN(deleteAmount)) { - msg.reply('The amount parameter isn\'t a number. ' + emoji.random()).then(deleteNotificationMessage => { - deleteNotificationMessage.delete({ timeout: 1000 }); - }); - } else if (deleteAmount > 100) { - msg.reply('You can\'t delete more than 100 messages at once. ' + emoji.random()).then(deleteNotificationMessage => { - deleteNotificationMessage.delete({ timeout: 1000 }); - }); - } else if (deleteAmount < 1) { - msg.reply('You have to delete at least 1 message. ' + emoji.random()).then(deleteNotificationMessage => { - deleteNotificationMessage.delete({ timeout: 1000 }); - }); - } - /*else if (msg.createdTimestamp > 1209600) { - msg.reply('due to discord rules, bots can only bulk delete messages that are under 14 days old :(') - } */ - else { - var clearAmount = deleteAmount + 1; - // It took me so long to figure out why this was not really working. It would delete but an insane amount at a time. - // I realized that because it was getting parsed as a string, it would just add 1 to it so if I tried to delete 1 - // message, it would delete 11 lol. Fixed by parsing as integer THEN adding one. 02:30 2020/04/03/2020 - - await msg.channel.messages.fetch({ - limit: clearAmount - }).then(messages => { // I am on v11 discord.js - msg.channel.bulkDelete(messages); - }); - msg.reply('It\'s been deleted ~uwu ' + emoji.random()).then(deleteNotificationMessage => { - deleteNotificationMessage.delete({ timeout: 1000 }); - }); - } - } else { - msg.reply('Insufficent perms. ' + emoji.random()); - } - } -}; \ No newline at end of file diff --git a/src/commands/utility/clear.ts b/src/commands/utility/clear.ts new file mode 100644 index 0000000..80e0c73 --- /dev/null +++ b/src/commands/utility/clear.ts @@ -0,0 +1,77 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class ClearUtility extends Command { + constructor(client) { + super(client, { + name: 'clear', + aliases: ['delete', 'del', 'c', 'd'], + group: 'utility', + memberName: 'clear', + description: 'Clears a specified amount of messages.', + guildOnly: true, + args: [ + { + key: 'deleteAmount', + prompt: 'How many messages would you like to delete?', + type: 'integer' + } + ], + examples: [ + 'uwu!clear 23', + 'uwu!delete 75', + 'uwu!del 32', + 'uwu!c 45', + 'uwu!d 84' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'] + }); + } + async run(msg: CommandoMessage, { deleteAmount }) { + if (msg.member.hasPermission('MANAGE_MESSAGES')) { + if (!deleteAmount) { + msg.reply('You haven\'t specified an amount of messages which should be deleted. ' + emoji.random()).then(deleteNotificationMessage => { + // @ts-ignore + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } else if (isNaN(deleteAmount)) { + msg.reply('The amount parameter isn\'t a number. ' + emoji.random()).then(deleteNotificationMessage => { + // @ts-ignore + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } else if (deleteAmount > 100) { + msg.reply('You can\'t delete more than 100 messages at once. ' + emoji.random()).then(deleteNotificationMessage => { + // @ts-ignore + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } else if (deleteAmount < 1) { + msg.reply('You have to delete at least 1 message. ' + emoji.random()).then(deleteNotificationMessage => { + // @ts-ignore + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } + /*else if (msg.createdTimestamp > 1209600) { + msg.reply('due to discord rules, bots can only bulk delete messages that are under 14 days old :(') + } */ + else { + var clearAmount = deleteAmount + 1; + // It took me so long to figure out why this was not really working. It would delete but an insane amount at a time. + // I realized that because it was getting parsed as a string, it would just add 1 to it so if I tried to delete 1 + // message, it would delete 11 lol. Fixed by parsing as integer THEN adding one. 02:30 2020/04/03/2020 + + await msg.channel.messages.fetch({ + limit: clearAmount + }).then(messages => { // I am on v11 discord.js + msg.channel.bulkDelete(messages); + }); + msg.reply('It\'s been deleted ~uwu ' + emoji.random()).then(deleteNotificationMessage => { + // @ts-ignore + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } + } else { + msg.reply('Insufficent permsissions. ' + emoji.random()); + } + } +}; \ No newline at end of file diff --git a/src/commands/utility/membercount.js b/src/commands/utility/membercount.js deleted file mode 100644 index 1178236..0000000 --- a/src/commands/utility/membercount.js +++ /dev/null @@ -1,29 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class MemberCountUtility extends Command { - constructor(client) { - super(client, { - name: 'membercount', - aliases: ['memberc', 'mcount', 'mc'], - group: 'utility', - memberName: 'membercount', - description: 'Tells you how many members are in the current server.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!membercount', - 'uwu!memberc', - 'uwu!mcount', - 'uwu!mc' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg) { - msg.reply(`There are **${msg.guild.memberCount}** members in **${msg.guild.name}**. ` + emoji.random()); - } -}; \ No newline at end of file diff --git a/src/commands/utility/membercount.ts b/src/commands/utility/membercount.ts new file mode 100644 index 0000000..4d64f5d --- /dev/null +++ b/src/commands/utility/membercount.ts @@ -0,0 +1,29 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class MemberCountUtility extends Command { + constructor(client) { + super(client, { + name: 'membercount', + aliases: ['memberc', 'mcount', 'mc'], + group: 'utility', + memberName: 'membercount', + description: 'Tells you how many members are in the current server.', + throttling: { + usages: 5, + duration: 30 + }, + examples: [ + 'uwu!membercount', + 'uwu!memberc', + 'uwu!mcount', + 'uwu!mc' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage) { + msg.reply(`There are **${msg.guild.memberCount}** members in **${msg.guild.name}**. ` + emoji.random()); + } +}; \ No newline at end of file diff --git a/src/commands/utility/server.js b/src/commands/utility/server.js deleted file mode 100644 index 58555fa..0000000 --- a/src/commands/utility/server.js +++ /dev/null @@ -1,54 +0,0 @@ -const { Command } = require('discord.js-commando'); -const { MessageEmbed } = require('discord.js'); - -module.exports = class ServerUtility extends Command { - constructor(client) { - super(client, { - name: 'server', - aliases: [ - 'serverinfo', - 'si', - 'server-info', - 'serverstats', - 'server-stats' - ], - group: 'utility', - memberName: 'server', - description: 'Gives you information about the current server.', - throttling: { - usages: 2, - duration: 60 - }, - guildOnly: true, - examples: [ - 'uwu!server', - 'uwu!serverinfo', - 'uwu!server-info', - 'uwu!serverstats', - 'uwu!server-stats', - 'uwu!si' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg) { - var o = msg.guild.members.cache.filter(m => m.presence.status === 'online').size; - - let embed = new MessageEmbed() - - .setAuthor(`${msg.guild.name} - ${msg.guild.id}`, `${msg.guild.iconURL()}`, `https://discordapp.com/channels/${msg.guild.id}/${msg.guild.id}`) - .setDescription(`Here\'s all the information on \`${msg.guild.name}\``) - .setThumbnail(`${msg.guild.iconURL()}`) - .addField('Owner', `${msg.guild.owner}`, false) - .addField(`Members [${msg.guild.memberCount}]`, `${o} members are online.`, true) - .addField('Region', `${msg.guild.region}`, true) - .addField('Text channels', `${msg.guild.channels.filter(c => c.type === 'text').size}`, true) - .addField('Voice channels', `${msg.guild.channels.filter(c => c.type === 'voice').size}`, true) - .addField('Guild created', `${msg.guild.createdAt}`, false) - .addField(`${this.client.user.username} joined`, `${msg.guild.members.get('699473263998271489').joinedAt}`) - .setColor(0xFFCC4D); - - msg.channel.send(embed); - } -}; \ No newline at end of file diff --git a/src/commands/utility/server.ts b/src/commands/utility/server.ts new file mode 100644 index 0000000..f5fddca --- /dev/null +++ b/src/commands/utility/server.ts @@ -0,0 +1,54 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; + +module.exports = class ServerUtility extends Command { + constructor(client) { + super(client, { + name: 'server', + aliases: [ + 'serverinfo', + 'si', + 'server-info', + 'serverstats', + 'server-stats' + ], + group: 'utility', + memberName: 'server', + description: 'Gives you information about the current server.', + throttling: { + usages: 2, + duration: 60 + }, + guildOnly: true, + examples: [ + 'uwu!server', + 'uwu!serverinfo', + 'uwu!server-info', + 'uwu!serverstats', + 'uwu!server-stats', + 'uwu!si' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] + }); + } + run(msg: CommandoMessage) { + var o = msg.guild.members.cache.filter(m => m.presence.status === 'online').size; + + let embed = new MessageEmbed() + + .setAuthor(`${msg.guild.name} - ${msg.guild.id}`, `${msg.guild.iconURL()}`, `https://discordapp.com/channels/${msg.guild.id}/${msg.guild.id}`) + .setDescription(`Here\'s all the information on \`${msg.guild.name}\``) + .setThumbnail(`${msg.guild.iconURL()}`) + .addField('Owner', `${msg.guild.owner}`, false) + .addField(`Members [${msg.guild.memberCount}]`, `${o} members are online.`, true) + .addField('Region', `${msg.guild.region}`, true) + .addField('Text channels', `${msg.guild.channels.cache.filter(c => c.type === 'text').size}`, true) + .addField('Voice channels', `${msg.guild.channels.cache.filter(c => c.type === 'voice').size}`, true) + .addField('Guild created', `${msg.guild.createdAt}`, false) + .addField(`${this.client.user.username} joined`, `${msg.guild.members.cache.get('699473263998271489').joinedAt}`) + .setColor(0xFFCC4D); + + msg.channel.send(embed); + } +}; \ No newline at end of file diff --git a/src/commands/utility/servercount.ts b/src/commands/utility/servercount.ts index 7e92247..b3ce320 100644 --- a/src/commands/utility/servercount.ts +++ b/src/commands/utility/servercount.ts @@ -1,5 +1,5 @@ -import { Command } from 'discord.js-commando'; -import { MessageEmbed, Message } from 'discord.js'; +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; import emoji from 'emoji-random'; module.exports = class ServerCountUtility extends Command { @@ -14,7 +14,7 @@ module.exports = class ServerCountUtility extends Command { clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] }); } - run(msg: Message) { + run(msg: CommandoMessage) { msg.channel.send('Please wait...').then(m => { m.edit(`** **`); diff --git a/src/commands/utility/uptime.ts b/src/commands/utility/uptime.ts index 1bea003..dcce606 100644 --- a/src/commands/utility/uptime.ts +++ b/src/commands/utility/uptime.ts @@ -1,9 +1,8 @@ -import { Command } from 'discord.js-commando'; +import { Command, CommandoMessage } from 'discord.js-commando'; import { duration as _duration } from 'moment'; import 'moment-duration-format'; -// @ts-ignore import emoji from 'emoji-random'; -import { MessageEmbed, Message } from 'discord.js'; +import { MessageEmbed } from 'discord.js'; export default class UptimeUtility extends Command { constructor(client) { @@ -25,13 +24,13 @@ export default class UptimeUtility extends Command { clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] }); } - run(msg: Message) { + run(msg: CommandoMessage) { const duration = _duration(this.client.uptime).format(" D [days], H [hrs], m [mins], s [secs]"); msg.channel.send('Please wait...').then(m => { m.edit(`** **`); let emb = new MessageEmbed() - .setDescription('uwufier has been up for ' + duration + '. ' + emoji.random()) + .setDescription('<@699473263998271489> has been up for ' + duration + '. ' + emoji.random()) .setColor(0xFFCC4D) msg.channel.send(emb); diff --git a/src/commands/voice/abee.ts b/src/commands/voice/abee.ts index 939b575..2af71af 100644 --- a/src/commands/voice/abee.ts +++ b/src/commands/voice/abee.ts @@ -1,6 +1,6 @@ import ytdl from 'ytdl-core'; -import { Command } from 'discord.js-commando'; -import { MessageEmbed, Message } from 'discord.js'; +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; import Youtube from 'simple-youtube-api'; //const { youtubeAPI } = require('../../config.json'); import config from '../../config.json'; @@ -21,7 +21,7 @@ module.exports = class ABeeVoice extends Command { examples: ['uwu!abee', 'uwu!a-bee'], }); } - async run(msg: Message) { + async run(msg: CommandoMessage) { const voiceChannel = msg.member.voice.channel; if (!voiceChannel) return msg.say('Please join a channel and try again. ' + emoji.random()); @@ -120,7 +120,7 @@ module.exports = class ABeeVoice extends Command { }); }); } - playSong(queue, msg) { + playSong(queue, msg: CommandoMessage) { const classThis = this; // use classThis instead of 'this' because of lexical scope below queue[0].voiceChannel .join() diff --git a/src/commands/voice/itemshop.ts b/src/commands/voice/itemshop.ts index f8c0b2b..76e1f03 100644 --- a/src/commands/voice/itemshop.ts +++ b/src/commands/voice/itemshop.ts @@ -1,6 +1,6 @@ import ytdl from 'ytdl-core'; -import { Command } from 'discord.js-commando'; -import { MessageEmbed, Message } from 'discord.js'; +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; import Youtube from 'simple-youtube-api'; //const { youtubeAPI } = require('../../config.json'); import config from '../../config.json'; @@ -21,7 +21,7 @@ module.exports = class ABeeVoice extends Command { examples: ['uwu!itemshop', 'uwu!item-shop'] }); } - async run(msg: Message) { + async run(msg: CommandoMessage) { const voiceChannel = msg.member.voice.channel; if (!voiceChannel) return msg.say('Please join a channel and try again. ' + emoji.random()); @@ -121,7 +121,7 @@ module.exports = class ABeeVoice extends Command { }); }); } - playSong(queue, msg) { + playSong(queue, msg: CommandoMessage) { const classThis = this; // use classThis instead of 'this' because of lexical scope below queue[0].voiceChannel .join() diff --git a/src/commands/voice/join.js b/src/commands/voice/join.js deleted file mode 100644 index 4410e4c..0000000 --- a/src/commands/voice/join.js +++ /dev/null @@ -1,31 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class JoinVoice extends Command { - constructor(client) { - super(client, { - name: 'join', - group: 'voice', - memberName: 'join', - description: 'Joins your current voice channel.', - throttling: { - usages: 2, - duration: 5 - }, - guildOnly: true, - examples: ['uwu!join'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - if (msg.guild.musicData.isPlaying == false && msg.member.voice.channel) { - msg.member.voice.channel.join(); - msg.reply('Succesfully joined voice channel. ' + emoji.random()); - } else if (msg.guild.musicData.isPlaying == false) { - msg.reply('I\'m already in voice channel. ' + emoji.random()); - } else if (!msg.member.voice.channel) { - msg.reply('Please join a channel and try again. ' + emoji.random()); - } - } -}; \ No newline at end of file diff --git a/src/commands/voice/join.ts b/src/commands/voice/join.ts new file mode 100644 index 0000000..ce414f4 --- /dev/null +++ b/src/commands/voice/join.ts @@ -0,0 +1,31 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class JoinVoice extends Command { + constructor(client) { + super(client, { + name: 'join', + group: 'voice', + memberName: 'join', + description: 'Joins your current voice channel.', + throttling: { + usages: 2, + duration: 5 + }, + guildOnly: true, + examples: ['uwu!join'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + if (msg.guild.musicData.isPlaying == false && msg.member.voice.channel) { + msg.member.voice.channel.join(); + msg.reply('Succesfully joined voice channel. ' + emoji.random()); + } else if (msg.guild.musicData.isPlaying == false) { + msg.reply('I\'m already in voice channel. ' + emoji.random()); + } else if (!msg.member.voice.channel) { + msg.reply('Please join a channel and try again. ' + emoji.random()); + } + } +}; \ No newline at end of file diff --git a/src/commands/voice/leave.js b/src/commands/voice/leave.js deleted file mode 100644 index 4c25e62..0000000 --- a/src/commands/voice/leave.js +++ /dev/null @@ -1,34 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class LeaveVoice extends Command { - constructor(client) { - super(client, { - name: 'leave', - aliases: ['end', 'stop'], - group: 'voice', - memberName: 'leave', - description: 'Leaves voice channel and stops currently playing audio.', - guildOnly: true, - examples: ['uwu!leave', 'uwu!end', 'uwu!stop'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - if (!msg.guild.musicData.queue) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - msg.guild.musicData.songDispatcher.end(); - msg.guild.musicData.queue.length = 0; - return; - } -}; \ No newline at end of file diff --git a/src/commands/voice/leave.ts b/src/commands/voice/leave.ts new file mode 100644 index 0000000..bdcf259 --- /dev/null +++ b/src/commands/voice/leave.ts @@ -0,0 +1,34 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class LeaveVoice extends Command { + constructor(client) { + super(client, { + name: 'leave', + aliases: ['end', 'stop'], + group: 'voice', + memberName: 'leave', + description: 'Leaves voice channel and stops currently playing audio.', + guildOnly: true, + examples: ['uwu!leave', 'uwu!end', 'uwu!stop'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + if (!msg.guild.musicData.queue) + return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); + msg.guild.musicData.songDispatcher.end(); + msg.guild.musicData.queue.length = 0; + return; + } +}; \ No newline at end of file diff --git a/src/commands/voice/loop.js b/src/commands/voice/loop.js deleted file mode 100644 index 05c0e99..0000000 --- a/src/commands/voice/loop.js +++ /dev/null @@ -1,34 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class LoopVoice extends Command { - constructor(client) { - super(client, { - name: 'loop', - aliases: ['repeat'], - group: 'voice', - memberName: 'loop', - description: 'Loops currently playing audio.', - guildOnly: true, - examples: ['uwu!loop', 'uwu!repeat'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - msg.channel.send( - `${msg.guild.musicData.nowPlaying.title} added to queue. ` + emoji.random() - ); - msg.guild.musicData.queue.unshift(msg.guild.musicData.nowPlaying); - return; - } -}; \ No newline at end of file diff --git a/src/commands/voice/loop.ts b/src/commands/voice/loop.ts new file mode 100644 index 0000000..a3bda2a --- /dev/null +++ b/src/commands/voice/loop.ts @@ -0,0 +1,34 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class LoopVoice extends Command { + constructor(client) { + super(client, { + name: 'loop', + aliases: ['repeat'], + group: 'voice', + memberName: 'loop', + description: 'Loops currently playing audio.', + guildOnly: true, + examples: ['uwu!loop', 'uwu!repeat'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + msg.channel.send( + `${msg.guild.musicData.nowPlaying.title} added to queue. ` + emoji.random() + ); + msg.guild.musicData.queue.unshift(msg.guild.musicData.nowPlaying); + return; + } +}; \ No newline at end of file diff --git a/src/commands/voice/minecraft.ts b/src/commands/voice/minecraft.ts index cad7c06..ea8fb6d 100644 --- a/src/commands/voice/minecraft.ts +++ b/src/commands/voice/minecraft.ts @@ -1,5 +1,5 @@ import ytdl from 'ytdl-core'; -import { Command } from 'discord.js-commando'; +import { Command, CommandoMessage } from 'discord.js-commando'; import { MessageEmbed } from 'discord.js'; import Youtube from 'simple-youtube-api'; //const { youtubeAPI } = require('../../config.json'); @@ -27,9 +27,9 @@ module.exports = class MinecraftVoice extends Command { ] }); } - async run(msg) { + async run(msg: CommandoMessage) { const voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.say('Join a channel and try again. ' + emoji.random()); + if (!voiceChannel) return msg.say('Please join a channel and try again. ' + emoji.random()); const playlist = await youtube.getPlaylist('https://www.youtube.com/watch?v=05UM-i4PuOY&list=PLxOTV5xn7n1i2HcKtRBthP2loWjrBGAIY').catch(function () { return msg.say('There was a problem getting the soundtrack. ' + emoji.random()); @@ -125,7 +125,7 @@ module.exports = class MinecraftVoice extends Command { }); }); } - playSong(queue, msg) { + playSong(queue, msg: CommandoMessage) { const classThis = this; // use classThis instead of 'this' because of lexical scope below queue[0].voiceChannel .join() diff --git a/src/commands/voice/pause.js b/src/commands/voice/pause.js deleted file mode 100644 index 6ab6fb0..0000000 --- a/src/commands/voice/pause.js +++ /dev/null @@ -1,32 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class PauseVoice extends Command { - constructor(client) { - super(client, { - name: 'pause', - group: 'voice', - memberName: 'pause', - description: 'Pauses audio of previously playing.', - guildOnly: true, - examples: ['uwu!pause'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - msg.say('Song paused :pause_button:'); - - msg.guild.musicData.songDispatcher.pause(); - } -}; \ No newline at end of file diff --git a/src/commands/voice/pause.ts b/src/commands/voice/pause.ts new file mode 100644 index 0000000..c2475d2 --- /dev/null +++ b/src/commands/voice/pause.ts @@ -0,0 +1,32 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class PauseVoice extends Command { + constructor(client) { + super(client, { + name: 'pause', + group: 'voice', + memberName: 'pause', + description: 'Pauses audio of previously playing.', + guildOnly: true, + examples: ['uwu!pause'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + + msg.say('Song paused :pause_button:'); + + msg.guild.musicData.songDispatcher.pause(); + } +}; \ No newline at end of file diff --git a/src/commands/voice/play.ts b/src/commands/voice/play.ts index 61cf5d4..b60cb73 100644 --- a/src/commands/voice/play.ts +++ b/src/commands/voice/play.ts @@ -1,6 +1,6 @@ import ytdl from 'ytdl-core'; -import { Command } from 'discord.js-commando'; -import { MessageEmbed, Message } from 'discord.js'; +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; import Youtube from 'simple-youtube-api'; //const { youtubeAPI } = require('../../config.json'); import config from '../../config.json'; @@ -33,7 +33,7 @@ module.exports = class PlayVoice extends Command { ] }); } - async run(msg: Message, { query }) { + async run(msg: CommandoMessage, { query }) { const voiceChannel = msg.member.voice.channel; if (!voiceChannel) return msg.say('Please join a channel and try again. ' + emoji.random()); @@ -213,7 +213,7 @@ module.exports = class PlayVoice extends Command { ); }); } - playSong(queue, msg) { + playSong(queue, msg: CommandoMessage) { const classThis = this; // use classThis instead of 'this' because of lexical scope below queue[0].voiceChannel .join() diff --git a/src/commands/voice/psycho.ts b/src/commands/voice/psycho.ts index 827c00a..115b0b8 100644 --- a/src/commands/voice/psycho.ts +++ b/src/commands/voice/psycho.ts @@ -1,6 +1,6 @@ import ytdl from 'ytdl-core'; -import { Command } from 'discord.js-commando'; -import { MessageEmbed, Message } from 'discord.js'; +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; import Youtube from 'simple-youtube-api'; //const { youtubeAPI } = require('../../config.json'); import config from '../../config.json'; @@ -20,7 +20,7 @@ module.exports = class PsychoVoice extends Command { examples: ['uwu!psycho'] }); } - async run(msg: Message, { query }) { + async run(msg: CommandoMessage, { query }) { const voiceChannel = msg.member.voice.channel; if (!voiceChannel) return msg.say('Please join a channel and try again. ' + emoji.random()); @@ -119,7 +119,7 @@ module.exports = class PsychoVoice extends Command { }); }); } - playSong(queue, msg) { + playSong(queue, msg: CommandoMessage) { const classThis = this; // use classThis instead of 'this' because of lexical scope below queue[0].voiceChannel .join() diff --git a/src/commands/voice/queue.js b/src/commands/voice/queue.js deleted file mode 100644 index 59fce1a..0000000 --- a/src/commands/voice/queue.js +++ /dev/null @@ -1,51 +0,0 @@ -const { Command } = require('discord.js-commando'); -const { MessageEmbed } = require('discord.js'); -const emoji = require('emoji-random'); - -module.exports = class QueueVoice extends Command { - constructor(client) { - super(client, { - name: 'queue', - aliases: [ - 'q', - 'song-list', - 'next-songs', - 'songlist', - 'nextsongs', - 'nextsong', - 'next-song' - ], - group: 'voice', - memberName: 'queue', - description: 'Displays the current queue.', - guildOnly: true, - examples: [ - 'uwu!queue', - 'uwu!q', - 'uwu!songlist', - 'uwu!song-list', - 'uwu!nextsong', - 'uwu!next-song', - 'uwu!nextsongs', - 'uwu!next-songs' - ], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - if (msg.guild.musicData.queue.length == 0) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - const titleArray = []; - msg.guild.musicData.queue.map(obj => { - titleArray.push(obj.title); - }); - let queueEmbed = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle('Music Queue ' + emoji.random()); - for (let i = 0; i < titleArray.length; i++) { - queueEmbed.addField(`‎`, `**${i + 1}**: ` + `${titleArray[i]}`); - } - return msg.say(queueEmbed); - } -}; \ No newline at end of file diff --git a/src/commands/voice/queue.ts b/src/commands/voice/queue.ts new file mode 100644 index 0000000..b92852a --- /dev/null +++ b/src/commands/voice/queue.ts @@ -0,0 +1,51 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed }from 'discord.js'; +import emoji from 'emoji-random'; + +module.exports = class QueueVoice extends Command { + constructor(client) { + super(client, { + name: 'queue', + aliases: [ + 'q', + 'song-list', + 'next-songs', + 'songlist', + 'nextsongs', + 'nextsong', + 'next-song' + ], + group: 'voice', + memberName: 'queue', + description: 'Displays the current queue.', + guildOnly: true, + examples: [ + 'uwu!queue', + 'uwu!q', + 'uwu!songlist', + 'uwu!song-list', + 'uwu!nextsong', + 'uwu!next-song', + 'uwu!nextsongs', + 'uwu!next-songs' + ], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + if (msg.guild.musicData.queue.length == 0) + return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); + const titleArray = []; + msg.guild.musicData.queue.map(obj => { + titleArray.push(obj.title); + }); + let queueEmbed = new MessageEmbed() + .setColor(0xFFCC4D) + .setTitle('Music Queue ' + emoji.random()); + for (let i = 0; i < titleArray.length; i++) { + queueEmbed.addField(`‎`, `**${i + 1}**: ` + `${titleArray[i]}`); + } + return msg.say(queueEmbed); + } +}; \ No newline at end of file diff --git a/src/commands/voice/remove.js b/src/commands/voice/remove.js deleted file mode 100644 index 34a30de..0000000 --- a/src/commands/voice/remove.js +++ /dev/null @@ -1,41 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class RemoveVoice extends Command { - constructor(client) { - super(client, { - name: 'remove', - group: 'voice', - memberName: 'remove', - description: 'Removes a song from the current queue.', - guildOnly: true, - args: [ - { - key: 'songNumber', - prompt: 'What song would you like to remove from the current queue?', - type: 'integer' - } - ], - examples: ['uwu!remove 2'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg, { songNumber }) { - if (songNumber < 1 && songNumber >= msg.guild.musicData.queue.length) { - return msg.reply('Please enter a valid song. ' + emoji.random()); - } - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - msg.guild.musicData.queue.splice(songNumber - 1, 1); - return msg.say(`Removed song **#${songNumber}** from current queue. ` + emoji.random()); - } -}; \ No newline at end of file diff --git a/src/commands/voice/remove.ts b/src/commands/voice/remove.ts new file mode 100644 index 0000000..5d84f0c --- /dev/null +++ b/src/commands/voice/remove.ts @@ -0,0 +1,41 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class RemoveVoice extends Command { + constructor(client) { + super(client, { + name: 'remove', + group: 'voice', + memberName: 'remove', + description: 'Removes a song from the current queue.', + guildOnly: true, + args: [ + { + key: 'songNumber', + prompt: 'What song would you like to remove from the current queue?', + type: 'integer' + } + ], + examples: ['uwu!remove 2'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { songNumber }) { + if (songNumber < 1 && songNumber >= msg.guild.musicData.queue.length) { + return msg.reply('Please enter a valid song. ' + emoji.random()); + } + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + + msg.guild.musicData.queue.splice(songNumber - 1, 1); + return msg.say(`Removed song **#${songNumber}** from current queue. ` + emoji.random()); + } +}; \ No newline at end of file diff --git a/src/commands/voice/resume.js b/src/commands/voice/resume.js deleted file mode 100644 index 1b28b28..0000000 --- a/src/commands/voice/resume.js +++ /dev/null @@ -1,32 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class ResumeVoice extends Command { - constructor(client) { - super(client, { - name: 'resume', - group: 'voice', - memberName: 'resume', - description: 'Resumes audio of previously paused.', - guildOnly: true, - examples: ['uwu!resume'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ') + emoji.random(); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - msg.say('Song resumed :play_pause:'); - - msg.guild.musicData.songDispatcher.resume(); - } -}; \ No newline at end of file diff --git a/src/commands/voice/resume.ts b/src/commands/voice/resume.ts new file mode 100644 index 0000000..39874df --- /dev/null +++ b/src/commands/voice/resume.ts @@ -0,0 +1,32 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class ResumeVoice extends Command { + constructor(client) { + super(client, { + name: 'resume', + group: 'voice', + memberName: 'resume', + description: 'Resumes audio of previously paused.', + guildOnly: true, + examples: ['uwu!resume'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ') + emoji.random(); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + + msg.say('Song resumed :play_pause:'); + + msg.guild.musicData.songDispatcher.resume(); + } +}; \ No newline at end of file diff --git a/src/commands/voice/shuffle.js b/src/commands/voice/shuffle.js deleted file mode 100644 index 3183f87..0000000 --- a/src/commands/voice/shuffle.js +++ /dev/null @@ -1,53 +0,0 @@ -const { Command } = require('discord.js-commando'); -const { MessageEmbed } = require('discord.js'); -const emoji = require('emoji-random'); - -module.exports = class ShuffleVoice extends Command { - constructor(client) { - super(client, { - name: 'shuffle', - group: 'voice', - memberName: 'shuffle', - description: 'Shuffles the current queue.', - guildOnly: true, - examples: ['uwu!shuffle'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - if (msg.guild.musicData.queue.length < 1) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - - shuffleQueue(msg.guild.musicData.queue); - - const titleArray = []; - msg.guild.musicData.queue.map(obj => { - titleArray.push(obj.title); - }); - var queueEmbed = new MessageEmbed() - .setColor(0xF97DAE) - .setTitle('New Music Queue ' + emoji.random()); - for (let i = 0; i < titleArray.length; i++) { - queueEmbed.addField(`${i + 1}:`, `${titleArray[i]}`); - } - return msg.say(queueEmbed); - } -}; - -function shuffleQueue(queue) { - for (let i = queue.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [queue[i], queue[j]] = [queue[j], queue[i]]; - } -} \ No newline at end of file diff --git a/src/commands/voice/shuffle.ts b/src/commands/voice/shuffle.ts new file mode 100644 index 0000000..c50181f --- /dev/null +++ b/src/commands/voice/shuffle.ts @@ -0,0 +1,53 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import { MessageEmbed } from 'discord.js'; +import emoji from 'emoji-random'; + +module.exports = class ShuffleVoice extends Command { + constructor(client) { + super(client, { + name: 'shuffle', + group: 'voice', + memberName: 'shuffle', + description: 'Shuffles the current queue.', + guildOnly: true, + examples: ['uwu!shuffle'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + + if (msg.guild.musicData.queue.length < 1) + return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); + + shuffleQueue(msg.guild.musicData.queue); + + const titleArray = []; + msg.guild.musicData.queue.map(obj => { + titleArray.push(obj.title); + }); + var queueEmbed = new MessageEmbed() + .setColor(0xF97DAE) + .setTitle('New Music Queue ' + emoji.random()); + for (let i = 0; i < titleArray.length; i++) { + queueEmbed.addField(`${i + 1}:`, `${titleArray[i]}`); + } + return msg.say(queueEmbed); + } +}; + +function shuffleQueue(queue) { + for (let i = queue.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [queue[i], queue[j]] = [queue[j], queue[i]]; + } +} \ No newline at end of file diff --git a/src/commands/voice/skip.js b/src/commands/voice/skip.js deleted file mode 100644 index 8638291..0000000 --- a/src/commands/voice/skip.js +++ /dev/null @@ -1,29 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class SkipVoice extends Command { - constructor(client) { - super(client, { - name: 'skip', - group: 'voice', - memberName: 'skip', - description: 'Skips one song ahead in the current queue.', - guildOnly: true, - examples: ['uwu!skip'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - const voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - msg.guild.musicData.songDispatcher.end(); - } -}; \ No newline at end of file diff --git a/src/commands/voice/skip.ts b/src/commands/voice/skip.ts new file mode 100644 index 0000000..c8c4c62 --- /dev/null +++ b/src/commands/voice/skip.ts @@ -0,0 +1,29 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class SkipVoice extends Command { + constructor(client) { + super(client, { + name: 'skip', + group: 'voice', + memberName: 'skip', + description: 'Skips one song ahead in the current queue.', + guildOnly: true, + examples: ['uwu!skip'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + const voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + msg.guild.musicData.songDispatcher.end(); + } +}; \ No newline at end of file diff --git a/src/commands/voice/skipall.js b/src/commands/voice/skipall.js deleted file mode 100644 index e981f46..0000000 --- a/src/commands/voice/skipall.js +++ /dev/null @@ -1,44 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class SkipAllVoice extends Command { - constructor(client) { - super(client, { - name: 'skipall', - aliases: [ - 'endqueue', - 'endq', - 'skipqueue', - 'skipq' - ], - group: 'voice', - memberName: 'skipall', - description: 'Removes all the songs from current queue.', - guildOnly: true, - examples: [ - 'uwu!endqueue', - 'uwu!endq', - 'uwu!skipqueue', - 'uwu!skipq' - ], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - if (!msg.guild.musicData.queue) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - msg.guild.musicData.songDispatcher.end(); - msg.guild.musicData.queue.length = 0; // clear queue - return; - } -}; \ No newline at end of file diff --git a/src/commands/voice/skipall.ts b/src/commands/voice/skipall.ts new file mode 100644 index 0000000..dbcfeb5 --- /dev/null +++ b/src/commands/voice/skipall.ts @@ -0,0 +1,44 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class SkipAllVoice extends Command { + constructor(client) { + super(client, { + name: 'skipall', + aliases: [ + 'endqueue', + 'endq', + 'skipqueue', + 'skipq' + ], + group: 'voice', + memberName: 'skipall', + description: 'Removes all the songs from current queue.', + guildOnly: true, + examples: [ + 'uwu!endqueue', + 'uwu!endq', + 'uwu!skipqueue', + 'uwu!skipq' + ], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage) { + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + if (!msg.guild.musicData.queue) + return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); + msg.guild.musicData.songDispatcher.end(); + msg.guild.musicData.queue.length = 0; // clear queue + return; + } +}; \ No newline at end of file diff --git a/src/commands/voice/skipto.js b/src/commands/voice/skipto.js deleted file mode 100644 index f43d56c..0000000 --- a/src/commands/voice/skipto.js +++ /dev/null @@ -1,43 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class SkipToVoice extends Command { - constructor(client) { - super(client, { - name: 'skipto', - group: 'voice', - memberName: 'skipto', - description: 'Skip to a certain song in the current queue.', - guildOnly: true, - args: [{ - key: 'songNumber', - prompt: 'What song would you like to skip to in the current queue?', - type: 'integer' - }], - examples: ['uwu!skipto 5'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg, { songNumber }) { - if (songNumber < 1 && songNumber >= msg.guild.musicData.queue.length) { - return msg.reply('Please enter a valid song. ' + emoji.random()); - } - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - if (msg.guild.musicData.queue < 1) - return msg.reply('There aren\'t any songs in the current queue. ' + emoji.random()); - - msg.guild.musicData.queue.splice(0, songNumber - 1); - msg.guild.musicData.songDispatcher.end(); - return; - } -}; \ No newline at end of file diff --git a/src/commands/voice/skipto.ts b/src/commands/voice/skipto.ts new file mode 100644 index 0000000..fab0d68 --- /dev/null +++ b/src/commands/voice/skipto.ts @@ -0,0 +1,43 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class SkipToVoice extends Command { + constructor(client) { + super(client, { + name: 'skipto', + group: 'voice', + memberName: 'skipto', + description: 'Skip to a certain song in the current queue.', + guildOnly: true, + args: [{ + key: 'songNumber', + prompt: 'What song would you like to skip to in the current queue?', + type: 'integer' + }], + examples: ['uwu!skipto 5'], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { songNumber }) { + if (songNumber < 1 && songNumber >= msg.guild.musicData.queue.length) { + return msg.reply('Please enter a valid song. ' + emoji.random()); + } + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + + if (msg.guild.musicData.queue < 1) + return msg.reply('There aren\'t any songs in the current queue. ' + emoji.random()); + + msg.guild.musicData.queue.splice(0, songNumber - 1); + msg.guild.musicData.songDispatcher.end(); + return; + } +}; \ No newline at end of file diff --git a/src/commands/voice/volume.js b/src/commands/voice/volume.js deleted file mode 100644 index 96a6de3..0000000 --- a/src/commands/voice/volume.js +++ /dev/null @@ -1,45 +0,0 @@ -const { Command } = require('discord.js-commando'); -const emoji = require('emoji-random'); - -module.exports = class VolumeVoice extends Command { - constructor(client) { - super(client, { - name: 'volume', - aliases: ['vol'], - group: 'voice', - memberName: 'volume', - description: 'Changes volume of any currentaly playing audio.', - guildOnly: true, - args: [ - { - key: 'wantedVol', - prompt: 'What would volume you like? (1 to 200)', - type: 'integer', - validate: wantedVol => wantedVol >= 1 && wantedVol <= 200 - } - ], - examples: [ - 'uwu!volume 20', - 'uwu!vol 50' - ], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg, { wantedVol }) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - if ( - typeof msg.guild.musicData.songDispatcher == 'undefined' || - msg.guild.musicData.songDispatcher == null - ) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - const volume = wantedVol / 100; - msg.guild.musicData.volume = volume; - msg.guild.musicData.songDispatcher.setVolume(volume); - msg.reply(`Volume is now: **${wantedVol}%**. ` + emoji.random()); - } -}; \ No newline at end of file diff --git a/src/commands/voice/volume.ts b/src/commands/voice/volume.ts new file mode 100644 index 0000000..debd798 --- /dev/null +++ b/src/commands/voice/volume.ts @@ -0,0 +1,45 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; + +module.exports = class VolumeVoice extends Command { + constructor(client) { + super(client, { + name: 'volume', + aliases: ['vol'], + group: 'voice', + memberName: 'volume', + description: 'Changes volume of any currentaly playing audio.', + guildOnly: true, + args: [ + { + key: 'wantedVol', + prompt: 'What would volume you like? (1 to 200)', + type: 'integer', + validate: wantedVol => wantedVol >= 1 && wantedVol <= 200 + } + ], + examples: [ + 'uwu!volume 20', + 'uwu!vol 50' + ], + clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + }); + } + run(msg: CommandoMessage, { wantedVol }) { + var voiceChannel = msg.member.voice.channel; + if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); + + if ( + typeof msg.guild.musicData.songDispatcher == 'undefined' || + msg.guild.musicData.songDispatcher == null + ) { + return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); + } + + const volume = wantedVol / 100; + msg.guild.musicData.volume = volume; + msg.guild.musicData.songDispatcher.setVolume(volume); + msg.reply(`Volume is now: **${wantedVol}%**. ` + emoji.random()); + } +}; \ No newline at end of file -- cgit v1.2.3