diff options
| author | 8cy <[email protected]> | 2020-07-23 23:24:17 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-07-23 23:24:17 -0700 |
| commit | bb511abc03bb66848947e37a999502b813c77269 (patch) | |
| tree | 612c010fc8317e1cdf11471a18aad0270819d33e /src | |
| parent | fix: if clear amount equal or over 100, round down to 99 (diff) | |
| download | dep-core-bb511abc03bb66848947e37a999502b813c77269.tar.xz dep-core-bb511abc03bb66848947e37a999502b813c77269.zip | |
goodbye old uwufier :cry:
Diffstat (limited to 'src')
213 files changed, 0 insertions, 9574 deletions
diff --git a/src/app.ts b/src/app.ts deleted file mode 100644 index 10b4d50..0000000 --- a/src/app.ts +++ /dev/null @@ -1,8 +0,0 @@ -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-dev'] }); - -manager.spawn(); -console.log('\x1b[0m' + 'Connecting...'); -manager.on('shardCreate', shard => console.log('\x1b[0m' + 'Launched shard: ' + '\x1b[36m' + shard.id)); diff --git a/src/assets/audio/farts/1.mp3 b/src/assets/audio/farts/1.mp3 Binary files differdeleted file mode 100644 index 39c85c7..0000000 --- a/src/assets/audio/farts/1.mp3 +++ /dev/null diff --git a/src/assets/audio/farts/2.mp3 b/src/assets/audio/farts/2.mp3 Binary files differdeleted file mode 100644 index ee702d8..0000000 --- a/src/assets/audio/farts/2.mp3 +++ /dev/null diff --git a/src/assets/audio/farts/3.mp3 b/src/assets/audio/farts/3.mp3 Binary files differdeleted file mode 100644 index f9179ad..0000000 --- a/src/assets/audio/farts/3.mp3 +++ /dev/null diff --git a/src/assets/audio/farts/4.mp3 b/src/assets/audio/farts/4.mp3 Binary files differdeleted file mode 100644 index 2a88503..0000000 --- a/src/assets/audio/farts/4.mp3 +++ /dev/null diff --git a/src/assets/audio/farts/5.mp3 b/src/assets/audio/farts/5.mp3 Binary files differdeleted file mode 100644 index b4ccf9d..0000000 --- a/src/assets/audio/farts/5.mp3 +++ /dev/null diff --git a/src/assets/audio/farts/6.mp3 b/src/assets/audio/farts/6.mp3 Binary files differdeleted file mode 100644 index f57c501..0000000 --- a/src/assets/audio/farts/6.mp3 +++ /dev/null diff --git a/src/assets/audio/farts/7.mp3 b/src/assets/audio/farts/7.mp3 Binary files differdeleted file mode 100644 index 5ea9d51..0000000 --- a/src/assets/audio/farts/7.mp3 +++ /dev/null diff --git a/src/assets/audio/farts/8.mp3 b/src/assets/audio/farts/8.mp3 Binary files differdeleted file mode 100644 index d135519..0000000 --- a/src/assets/audio/farts/8.mp3 +++ /dev/null diff --git a/src/assets/audio/longest_fart_ever.mp3 b/src/assets/audio/longest_fart_ever.mp3 Binary files differdeleted file mode 100644 index 82b11e1..0000000 --- a/src/assets/audio/longest_fart_ever.mp3 +++ /dev/null diff --git a/src/assets/audio/squeak.wav b/src/assets/audio/squeak.wav Binary files differdeleted file mode 100644 index fea330b..0000000 --- a/src/assets/audio/squeak.wav +++ /dev/null diff --git a/src/assets/audio/uhhhh.wav b/src/assets/audio/uhhhh.wav Binary files differdeleted file mode 100644 index f8dfb24..0000000 --- a/src/assets/audio/uhhhh.wav +++ /dev/null diff --git a/src/assets/audio/wahoo.mp3 b/src/assets/audio/wahoo.mp3 Binary files differdeleted file mode 100644 index b507034..0000000 --- a/src/assets/audio/wahoo.mp3 +++ /dev/null diff --git a/src/assets/json/meme.json b/src/assets/json/meme.json deleted file mode 100644 index 02687e0..0000000 --- a/src/assets/json/meme.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - "memes", - "wholesomememes", - "tumblr", - "meirl", - "historymemes", - "animemes", - "programmerhumor", - "programmeranimemes", - "bikinibottomtwitter", - "prequelmemes", - "mothmemes", - "meme", - "PoliticalHumor" -]
\ No newline at end of file diff --git a/src/assets/json/month.json b/src/assets/json/month.json deleted file mode 100644 index d02be0a..0000000 --- a/src/assets/json/month.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - "january", - "february", - "march", - "april", - "may", - "june", - "july", - "august", - "september", - "october", - "november", - "december" -]
\ No newline at end of file diff --git a/src/bot.ts b/src/bot.ts deleted file mode 100644 index 658f263..0000000 --- a/src/bot.ts +++ /dev/null @@ -1,207 +0,0 @@ -import config from './config.json'; // Import config -import { CommandoClient } from 'discord.js-commando'; - -//import WS from './server'; - -// Import MongoDB database models -import Welcome from './models/welcome.js'; -import Goodbye from './models/goodbye.js'; -import Verify from './models/Verify'; - -// Connect to database -import mongoose from 'mongoose'; -mongoose.connect(config['mongodburi'], { useNewUrlParser: true, useUnifiedTopology: true }) - -import path from 'path'; -// @ts-ignore emoji-random doesn't have types -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -// Import music functions -require('./models/MusicGuild.js') - -// Register client with basic information -const client = new CommandoClient({ - commandPrefix: 'uwu!', - owner: '217348698294714370', - invite: 'https://discord.gg/DVwXUwx' -}); - -// Make webserver public -//const ws = new WS(process.env.PORT, client) - -// Register more client information -client.registry - .registerDefaultTypes() - .registerGroups([ - ['fun', 'Fun Command Group'], - ['moderation', 'Moderation Command Group'], - ['server', 'Server Command Group'], - ['voice', 'Voice Command Group'], - ['nsfw', 'NSFW Command Group'], - ['anime', 'Anime Command Group'], - ['crypto', 'Crypto Command Group'], - ['zerotwo', 'Zero Two Command Group'], - ['bot', 'Bot Command Group'], - ['user', 'User Command Group'], - ['utility', 'Utility Command Group'], - ['minecraft', 'Minecraft Command Group'], - ['animals', 'Animal Command Group'], - ['roleplay', 'Roleplay Command Group'], - ['emma', 'Emma\'s Command Group'] - ]) - .registerDefaultGroups() - .registerDefaultCommands({ - help: true, - //eval: false - }) - .registerCommandsIn(path.join(__dirname, 'commands')); - -client.once('ready', async () => { - // Console out basic bot information - //console.log(`Started bot: ${client.user.tag} (ID: ${client.user.id})\nCurrently running on ${client.guilds.cache.size} server(s).`); - console.log('\x1b[0m' + 'Bot online!') - console.log('\x1b[31m' + ` _ _ __ _ -| | | | / _(_) -| | | |_ ___ _| |_ _ ___ _ __ -| | | \\ \\ /\\ / / | | | _| |/ _ \\ '__| -| |_| |\\ V V /| |_| | | | | __/ | - \\___/ \\_/\\_/ \\__,_|_| |_|\\___|_| - - `) - console.log('\x1b[0m' + 'discord.js Version: ' + '\x1b[36m' + '2.11') - console.log('\x1b[0m' + 'Node.js Version: ' + '\x1b[36m' + process.version) - console.log('\x1b[0m' + 'OS Version: ' + '\x1b[36m' + process.platform) - console.log('\x1b[0m' + 'Name: ' + '\x1b[36m' + `${client.user?.tag}`) - console.log('\x1b[0m' + 'ID: ' + '\x1b[36m' + `${client.user?.id}`) - console.log('\x1b[0m' + 'Servers: ' + '\x1b[36m' + `${client.guilds.cache.size}` + '\x1b[0m') - console.log() - - // Set status - // i would use a set interval in the main msg body but this is better for now because during maintenance you tend to refresh refresh a lot - // kinda crap if you forget to change uppity's status off of maintainence... 2020/05/05, 17:29 - if ((await client.users.fetch('705537104339402815')).presence.activities[0].name == 'maintenance') { - client.user?.setActivity('uwu!help | Maintenance', { - type: 'WATCHING' - }); - } else { - client.user?.setActivity('uwu!help | v' + config['version'], { - type: 'WATCHING' - }); - } -}); - -// Debug stuff -client.on('error', console.error); -//client.on('debug', console.debug); -client.on('warn', console.warn) - -// Logging information -client.on('guildCreate', guild => { - console.log(`Joined server: ${guild.name}`) - let embed = new MessageEmbed() - .setDescription(`Hi! Thank you for inviting uwufier to your server! To view the complete list of commands, do \`uwu!help\`. If you want to contact the lead developer for possible suggestions or to report a bug, please join the [support server](https://discord.com/invite/DVwXUwx). You can also do \`uwu!suggest<thing>\`. If you like the bot, please support the bot on our [top.gg page](https://top.gg/bot/699473263998271489/vote) or our [DBL page](https://discordbotlist.com/bots/699473263998271489/upvote)! ${emoji.random()}`) - guild.owner?.send(embed) - //@ts-ignore - client.guilds.cache.get('704032355987488791')?.channels.cache.get('706818034999754792')?.send(`Joined server: **${guild.name}**.`) -}) -client.on('guildDelete', guild => { - console.log(`Left server: ${guild.name}`) - //@ts-ignore - client.guilds.cache.get('704032355987488791')?.channels.cache.get('706818034999754792')?.send(`Joined server: **${guild.name}**.`) -}) - -client.on('guildMemberAdd', async member => { - /* if (member.guild.id.toString() == '663964105983393793') { - const captchaKey = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15); - const emmaServer = 663964105983393793; - const unverRole = '729928740359897101'; - member.roles.add(unverRole); - const verify = new Verify({ - _id: mongoose.Types.ObjectId(), - username: member.user.username, - userID: member.user.id, - status: false, - key: captchaKey - }) - await verify.save() - .then(result => console.log(result)) - .catch(err => console.log(err)) - //@ts-ignore - member.send(`Please type \`uwu!verify ${captchaKey}\` to be verified.`) - // member.guild.channels.cache.get('729931444008517762')?.send(`Please send the message; \`uwu!verify ${captchaKey}\` to the server channel; \`#verification\` in order to be verified. ${emoji.random()}`); - } */ - - // Execute welcome command if present - Welcome.findOne({ guildID: member.guild.id }, async (error, guild) => { - if (error) { - console.log(error) - } else if (!guild) { - return - } else if (guild) { - // @ts-ignore linting error shows that channelID doesnt exist when it does - member.guild.channels.cache.get(guild.channelID)?.send(`<@${member.id}> has joined the server! ${emoji.random()}`) - } else { - return - } - }) -}) -client.on('guildMemberRemove', member => { - // Execute goodbye command if present - Goodbye.findOne({ guildID: member.guild.id }, async (error, guild) => { - if (error) { - console.log(error) - } else if (!guild) { - return - } else if (guild) { - // @ts-ignore linting error shows that channelID doesnt exist when it does - member.guild.channels.cache.get(guild.channelID)?.send(`<@${member.id}> (**${member.user.tag ? member.user.tag : member.nickname}**) has left the server! ${emoji.random()}`).then(m => m.react('🇫')); - } else { - return - } - }) -}) - -// Just more logging stuff basically -client.on('message', async msg => { - const msgContent = msg.content.toLowerCase(); - // Check if the prefix is present in a string - function prefixCheck() { - // shorthand ? : if else doesn't work for some reason - if (msgContent.startsWith('uwu!')) - return true; - else - return false; - } - if (prefixCheck()) { - if (msg.channel.type == 'dm') { - console.log(msg.author.tag, 'says', msgContent, 'in a DM'); - //@ts-ignore - client.guilds.cache.get('704032355987488791')?.channels.cache.get('706818034999754792')?.send(`**${msg.author.tag}** says **${msgContent}** in a **DM.**`) - } else { - console.log(msg.member?.user.tag, 'says', msgContent, 'in #' + msg.channel.name + ' in ' + msg.guild?.name); - //@ts-ignore - client.guilds.cache.get('704032355987488791')?.channels.cache.get('706818034999754792')?.send(`**${msg.author.tag}** says **${msgContent}** in **#${msg.channel.name}** in **${msg.guild?.name}**.`) - } - } - - // If a message mentions everyone, react with a random emoji - if (msg.mentions.everyone) msg.react(emoji.random()); - - // If a message is in Kat's Korner and it mentions the word water, react with LizardsWater emoji. - if (msg.guild?.id == '663964105983393793') - if (msg.content.toLowerCase().includes("water") || msg.content.toLowerCase().includes("wader")) { - msg.react('733894420700594187') - msg.react('732062891162992720') - } - - // If message has ugycat then react with ugycat - if (msg.guild?.id == '663964105983393793') { - if (msg.content.toLowerCase().includes('ugy') || msg.content.toLowerCase().includes('ugly')) - msg.react('733301856054280253') - } -}); - -// Register client -client.login(config['secret']); -//client.login(config['secret-dev']); diff --git a/src/commands/animals/bunny.ts b/src/commands/animals/bunny.ts deleted file mode 100644 index 0da4942..0000000 --- a/src/commands/animals/bunny.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { MessageEmbed } from 'discord.js'; -import axios from 'axios'; - -module.exports = class BunnyAnimals extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'bunny', - aliases: [ - 'randombunny', - 'random-bunny' - ], - group: 'animals', - memberName: 'bunny', - description: 'Gives you a random bunny.', - examples: ['uwu!bunny'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - try { - let emb = new MessageEmbed() - .setAuthor('bunnies.io') - .setColor(0xFFCC4D) - .setImage(await (await axios.get('https://api.bunnies.io/v2/loop/random/?media=gif,png')).data.media.gif) - return msg.say(emb) - } catch (err) { - console.log(err) - return msg.reply('Woops, there was an error with the (https://api.bunnies.io) API. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/animals/cat.ts b/src/commands/animals/cat.ts deleted file mode 100644 index d4781a5..0000000 --- a/src/commands/animals/cat.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { MessageEmbed } from 'discord.js'; -import axios from 'axios'; - -module.exports = class CatAnimals extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'cat', - aliases: [ - 'randomcat', - 'random-cat' - ], - group: 'animals', - memberName: 'cat', - description: 'Gives you a random cat.', - examples: ['uwu!cat'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - try { - let emb = new MessageEmbed() - .setAuthor('random.cat', 'https://i.imgur.com/Ik0Gf0r.png', 'https://random.cat') - .setColor(0xFFCC4D) - .setImage(await (await axios.get('https://aws.random.cat/meow')).data.file) - return msg.say(emb) - } catch (err) { - console.log(err) - return msg.reply('Woops, there was an error with the (http://random.cat) API. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/animals/cow.ts b/src/commands/animals/cow.ts deleted file mode 100644 index 3c84f09..0000000 --- a/src/commands/animals/cow.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import cows from 'cows'; - -module.exports = class CowAnimals extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'cow', - aliases: ['cows'], - group: 'animals', - memberName: 'cow', - description: 'Gives you a random cow.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!cow', 'uwu!cows'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - let cowNumber = Math.round((Math.random() * cows().length)) - let cow = cows()[cowNumber] - return msg.reply(`\`\`\`${cow}\`\`\``); - } -};
\ No newline at end of file diff --git a/src/commands/animals/dog.ts b/src/commands/animals/dog.ts deleted file mode 100644 index 0498dbf..0000000 --- a/src/commands/animals/dog.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { MessageEmbed } from 'discord.js'; -import axios from 'axios'; - -module.exports = class DogAnimals extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'dog', - aliases: [ - 'randomdog', - 'random-dog' - ], - group: 'animals', - memberName: 'dog', - description: 'Gives you a random dog.', - examples: ['uwu!dog'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - try { - let emb = new MessageEmbed() - .setAuthor('dog.ceo', 'https://dog.ceo/img/favicon.png', 'https://dog.ceo/dog-api/') - .setColor(0xFFCC4D) - .setImage(await (await axios.get('https://dog.ceo/api/breeds/image/random')).data.message) - return msg.say(emb) - } catch (err) { - console.log(err) - return msg.reply('Woops, there was an error with the (http://dog.ceo/dog-api) API. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/animals/duck.ts b/src/commands/animals/duck.ts deleted file mode 100644 index a3683e0..0000000 --- a/src/commands/animals/duck.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { MessageEmbed } from 'discord.js'; -import axios from 'axios'; - -module.exports = class DuckAnimals extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'duck', - aliases: [ - 'randomduck', - 'random-duck' - ], - group: 'animals', - memberName: 'duck', - description: 'Gives you a random duck.', - examples: ['uwu!duck'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - try { - let emb = new MessageEmbed() - .setAuthor('random-d.uk', 'https://random-d.uk/favicon.ico', 'https://random-d.uk') - .setColor(0xFFCC4D) - .setImage(await (await axios.get('https://random-d.uk/api/v1/random?type=gif')).data.url) - return msg.say(emb) - } catch (err) { - console.log(err) - return msg.reply('Woops, there was an error with the (https://random-d.uk) API. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/animals/fox.ts b/src/commands/animals/fox.ts deleted file mode 100644 index 155a987..0000000 --- a/src/commands/animals/fox.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { MessageEmbed } from 'discord.js'; -import axios from 'axios'; - -module.exports = class FoxAnimals extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'fox', - aliases: [ - 'randomfox', - 'random-fox' - ], - group: 'animals', - memberName: 'fox', - description: 'Gives you a random fox.', - examples: ['uwu!fox'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - try { - let emb = new MessageEmbed() - .setAuthor('randomfox.ca') - .setColor(0xFFCC4D) - .setImage(await (await axios.get('https://randomfox.ca/floof/')).data.image) - return msg.say(emb) - } catch (err) { - console.log(err) - return msg.reply('Woops, there was an error with the (https://randomfox.ca/) API. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/animals/owl.ts b/src/commands/animals/owl.ts deleted file mode 100644 index 6a5f583..0000000 --- a/src/commands/animals/owl.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { MessageEmbed } from 'discord.js'; -import axios from 'axios'; - -module.exports = class OwlAnimals extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'owl', - aliases: [ - 'randomowl', - 'random-owl' - ], - group: 'animals', - memberName: 'owl', - description: 'Gives you a random owl.', - examples: ['uwu!owl'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - try { - let emb = new MessageEmbed() - .setAuthor('pics.floofybot.moe/owl', 'http://pics.floofybot.moe/assets/favicon.svg', 'http://pics.floofybot.moe/') - .setColor(0xFFCC4D) - .setImage(await (await axios.get('http://pics.floofybot.moe/owl')).data.image) - return msg.say(emb) - } catch (err) { - console.log(err) - return msg.reply('Woops, there was an error with the (http://pics.floofybot.moe/) API. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/anime/uwufy.ts b/src/commands/anime/uwufy.ts deleted file mode 100644 index f9f0187..0000000 --- a/src/commands/anime/uwufy.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; -import uwufy from 'uwufy' - -module.exports = class UwufyAnime extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'uwufy', - aliases: ['uwu', 'owofy', 'owo'], - group: 'anime', - memberName: 'uwufy', - description: 'Uwufys anything you send.', - args: [ - { - key: 'userMsg', - prompt: 'What would you like to uwufy?', - type: 'string' - } - ], - 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage, { userMsg }: any) { - msg.reply(uwufy(userMsg) + ' ' + emoji.random()) - return msg.delete(); - } -};
\ No newline at end of file diff --git a/src/commands/anime/waifu.ts b/src/commands/anime/waifu.ts deleted file mode 100644 index d72348f..0000000 --- a/src/commands/anime/waifu.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import request from 'node-superfetch'; -import { MessageEmbed } from 'discord.js'; -//@ts-ignore yes it does tf -import { shorten } from '../../utils/Util.js' - -module.exports = class WaifuAnime extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'waifu', - aliases: ['thiswaifudoesnotexist', 'this-waifu-does-not-exist'], - group: 'anime', - memberName: 'waifu', - description: 'Replies with a randomly generated waifu and a backstory. WARNING: don\'t get too attatched.', - examples: [ - - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - async run(msg: CommandoMessage) { - const num = Math.floor(Math.random() * 100000) - const { text } = await request.get(`https://www.thiswaifudoesnotexist.net/snippet-${num}.txt`) - let emb = new MessageEmbed() - .setDescription(shorten(text, 1000)) - .setColor(0xFFCC4D) - .setThumbnail(`https://www.thiswaifudoesnotexist.net/example-${num}.jpg`) - return msg.reply(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/api.ts b/src/commands/bot/api.ts deleted file mode 100644 index 98486a9..0000000 --- a/src/commands/bot/api.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class APIBot extends Command { - constructor(client) { - super(client, { - name: 'api', - group: 'bot', - memberName: 'api', - description: 'Gives you uwufier\'s API link and documentation.', - examples: ['uwu!api'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - //.setDescription('Here\'s a link to my [API](http://uwufier.kyzer.co/api/v1/). (To use, copy the given URL, then append the API endpoints looking to get to it.) As for documentation, it is currently under heavy re-writing. As soon as the documentation goes live, you can read through it on the [official uwufier website](https://kyzer.co/discord/bots/uwufier/)! ' + emoji.random()) - .setDescription(`Uwifier's API is currently down. ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/clientid.ts b/src/commands/bot/clientid.ts deleted file mode 100644 index 1b084e4..0000000 --- a/src/commands/bot/clientid.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class ClientIDBot extends Command { - constructor(client) { - super(client, { - name: 'clientid', - aliases: ['cid'], - group: 'bot', - memberName: 'clientid', - description: 'Tells you uwufier\'s client ID.', - examples: ['uwu!clientid', 'uwu!cid'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - msg.reply(`**uwufier\'s** client ID is **699473263998271489**. ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/bot/commandsamount.ts b/src/commands/bot/commandsamount.ts deleted file mode 100644 index 49b743e..0000000 --- a/src/commands/bot/commandsamount.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; - -module.exports = class CommandsAmountBot extends Command { - constructor(client) { - super(client, { - name: 'commandsamount', - aliases: [ - 'commands-amount', - 'cmdsamount', - 'cmds-amount' - ], - group: 'bot', - memberName: 'commandsamount', - description: 'Tells you the amount of available commands uwufier has.', - examples: ['uwu!cmdsamount'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - async run(msg: CommandoMessage) { - msg.reply(`${this.client.user?.tag} has ${this.client.registry.commands.size} available commands! ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/bot/email.ts b/src/commands/bot/email.ts deleted file mode 100644 index f326c22..0000000 --- a/src/commands/bot/email.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class TwitchBot extends Command { - constructor(client) { - super(client, { - name: 'email', - aliases: ['mail', 'contact', 'gmail'], - group: 'bot', - memberName: 'email', - description: 'Gives you a reference to uwufier\'s authors\' (Sin) best method of contact.', - examples: ['uwu!email'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`To contact <@217348698294714370>, please send a email to \`[email protected]\`. Alternatively, you can either send a DM to <@217348698294714370> on Discord or on [Twitter](https://twitter.com/9inny). (All spam and unsolicited inquiries will be dealt with accordingly). ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/generatecommands.ts b/src/commands/bot/generatecommands.ts deleted file mode 100644 index e1079f1..0000000 --- a/src/commands/bot/generatecommands.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; - -module.exports = class GenerateCommandsBot extends Command { - constructor(client) { - super(client, { - name: 'generatecommands', - aliases: [ - 'generate-commands', - 'generatecmds', - 'generate-cmds', - 'gencommands', - 'gen-commands', - 'gencmds', - 'gen-cmds' - ], - group: 'bot', - memberName: 'generatecommands', - description: 'Generates a .txt file with all of the available commands.', - examples: ['uwu!gencmds'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - ownerOnly: true, - guarded: true - }); - } - async run(msg: CommandoMessage) { - const list = this.client.registry.groups - .map(g => { - const commands = g.commands.filter(c => !c.hidden) - return `\n### ${g.name}\n\n${commands.map(c => { - const extra = `${c.ownerOnly ? ' (Owner-Only)' : ''}${c.nsfw ? ' (NSFW)' : ''}` - return `* ** ${c.name}:** ${c.description}${extra}` - }).join('\n')}` - }) - const text = `Total: ${this.client.registry.commands.size}\n${list.join('\n')}` - return msg.reply({ files: [{ attachment: Buffer.from(text), name: 'commands.txt' }] }) - } -};
\ No newline at end of file diff --git a/src/commands/bot/generateservers.ts b/src/commands/bot/generateservers.ts deleted file mode 100644 index 50c65e2..0000000 --- a/src/commands/bot/generateservers.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; - -module.exports = class GenerateServersBot extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'generateservers', - aliases: [ - 'generate-servers', - 'genservers', - 'gen-servers' - ], - group: 'bot', - memberName: 'generateservers', - description: 'Generates a .txt file with all of the servers uwufier is in.', - examples: ['uwu!genservers'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - ownerOnly: true, - guarded: true, - hidden: true - }); - } - async run(msg: CommandoMessage) { - const list = this.client.guilds.cache - .map(g => { - const servers = g.name - return `* ** ${servers}:** ${g.id} - ${g.owner?.user.tag}` - }) - const text = `Total: ${this.client.guilds.cache.size}\n\n### Servers\n\n${list.join('\n')}` - return msg.reply({ files: [{ attachment: Buffer.from(text), name: 'servers.txt' }] }) - } -};
\ No newline at end of file diff --git a/src/commands/bot/github.ts b/src/commands/bot/github.ts deleted file mode 100644 index 9a9b08d..0000000 --- a/src/commands/bot/github.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class GitHubBot extends Command { - constructor(client) { - super(client, { - name: 'github', - aliases: ['git', 'gitlab'], - group: 'bot', - memberName: 'github', - description: 'Gives you a link to uwufier\'s authors\' (Sin) GitHub profile.', - examples: ['uwu!github'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`Here is <@217348698294714370>'s [GitHub profile](https://github.com/8cy). ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/guildbackdoor.ts b/src/commands/bot/guildbackdoor.ts deleted file mode 100644 index 1282cdd..0000000 --- a/src/commands/bot/guildbackdoor.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random' - -module.exports = class GuildBackdoorBot extends Command { - constructor(client) { - super(client, { - name: 'guildbackdoor', - aliases: [ - 'guild-backdoor', - 'serverbackdoor', - 'server-backdoor' - ], - group: 'fun', - memberName: 'guildbackdoor', - description: 'Checks who the oldest member on the server is.', - examples: ['uwu!guildbackdoor 1234567890'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - hidden: true, - args: [ - { - key: 'gGuild', - prompt: 'What server would you like to join?', - type: 'string' - } - ], - ownerOnly: true - }); - } - async run(msg: CommandoMessage, { gGuild }) { - if (this.client.guilds.cache.has(gGuild)) msg.reply(`Either that is not a valid guild ID or ${this.client.user} is not a member of that guild.`) - - gGuild = this.client.guilds.cache.get(gGuild) - - const invites = await gGuild.fetchInvites() - console.debug('This guild\'s invites:', invites) - if (invites.size > 0) { - msg.author.send(invites.first().url) - } - - // TODO: fix this one day, no idea how to. error: cant find permissionsfor on the channel thing - // for (const channel of gGuild.channels.cache.values()) { - // if (channel.permissionsFor(gGuild.me).has('CREATE_INSTANT_INVITE')) { - // msg.reply(await channel.createInvite({ maxAge: 0 }).url) - // } - // } - - //msg.reply('No existing invites or channels to invite you to. ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/bot/invite.ts b/src/commands/bot/invite.ts deleted file mode 100644 index c6fee83..0000000 --- a/src/commands/bot/invite.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class InviteBot extends Command { - constructor(client) { - super(client, { - name: 'invite', - aliases: ['inv'], - group: 'bot', - memberName: 'invite', - description: 'Gives you uwufier\'s invite link.', - examples: ['uwu!invite', 'uwu!inv'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription('To invite the bot, please use [this link](https://kyzer.co/discord/bots/uwufier/). ' + emoji.random()) - msg.say(emb) - } -}; diff --git a/src/commands/bot/ip.ts b/src/commands/bot/ip.ts deleted file mode 100644 index c565cec..0000000 --- a/src/commands/bot/ip.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; -import request from 'node-superfetch' - -module.exports = class IPBot extends Command { - constructor(client) { - super(client, { - name: 'ip', - group: 'bot', - memberName: 'ip', - description: 'Gives you uwufier\'s ip.', - examples: ['uwu!ip'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - ownerOnly: true - }); - } - async run(msg: CommandoMessage) { - let { body } = await request - .get('https://api.ipify.org') - .query({ format: 'json' }) - - msg.say('Please wait...').then(m => { - m.edit(`** **`); - - let emb = new MessageEmbed() - .setDescription(`uwufier\'s current IP address is **${body.ip}**. ` + emoji.random()) - .setColor(0xFFCC4D) - - msg.say(emb); - }); - } -};
\ No newline at end of file diff --git a/src/commands/bot/joinmessage.ts b/src/commands/bot/joinmessage.ts deleted file mode 100644 index 4de424f..0000000 --- a/src/commands/bot/joinmessage.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class InviteBot extends Command { - constructor(client) { - super(client, { - name: 'joinmessage', - aliases: ['joinm', 'mjoin', 'joinmsg'], - group: 'bot', - memberName: 'joinmessage', - description: 'Resends the message which the bot sent when initially joining a server, however, this one does NOT get sent to the guild owner.', - examples: [ - 'uwu!joinmessage', - 'uwu!joinm', - 'uwu!mjoin', - 'uwu!joinmsg' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let embed = new MessageEmbed() - .setDescription(`Hi! Thank you for inviting uwufier to your server! To view the complete list of commands, do \`uwu!help\`. If you want to contact the lead developer for possible suggestions or to report a bug, please join the [support server](https://discord.com/invite/DVwXUwx). You can also do \`uwu!suggest<thing>\`. If you like the bot, please support the bot on our [top.gg page](https://top.gg/bot/699473263998271489/vote) or our [DBL page](https://discordbotlist.com/bots/699473263998271489/upvote)! ${emoji.random()}`) - msg.say(embed) - } -};
\ No newline at end of file diff --git a/src/commands/bot/leaveserver.ts b/src/commands/bot/leaveserver.ts deleted file mode 100644 index 8b7fee9..0000000 --- a/src/commands/bot/leaveserver.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { Message } from 'discord.js'; -//@ts-ignore -import * as emoji from 'emoji-random'; - -module.exports = class LeaveServerBot extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'leaveserver', - aliases: [ - 'leave-server' - ], - group: 'bot', - memberName: 'leaveserver', - description: 'Leaves a specified server uwufier is in.', - examples: ['uwu!leaveserver'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - ownerOnly: true, - guarded: true, - hidden: true, - args: [ - { - key: 'serverId', - prompt: 'Which server would you like to leave? (ID)', - type: 'string', - } - ] - }); - } - async run(msg: CommandoMessage, { serverId }: any): Promise<Message | Message[]> { - await this.client.guilds.cache.get(serverId)?.leave(); - return msg.reply(`Succesfully left server **${this.client.guilds.cache.get(serverId)?.name} (${this.client.guilds.cache.get(serverId)?.id})**. ${emoji.random()}`); - } -};
\ No newline at end of file diff --git a/src/commands/bot/memorystats.ts b/src/commands/bot/memorystats.ts deleted file mode 100644 index cc2a424..0000000 --- a/src/commands/bot/memorystats.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; - -module.exports = class MemoryStatsBot extends Command { - constructor(client) { - super(client, { - name: 'memorystats', - aliases: [ - 'memstats', - 'mem-stats', - 'memory-stats', - 'memorystats', - 'memstat', - 'mem-stat', - 'memory-stat', - 'memorystat' - ], - group: 'bot', - memberName: 'memorystats', - description: 'Checks the full, current, approximate memory usage statistics of uwufier\'s Node.js process.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - ownerOnly: true - }); - } - run(msg: CommandoMessage) { - const used = process.memoryUsage(); - msg.reply(`The full, current, approximate memory usage statistics are currentaly; -\`\`\`js -rss: ${Math.round(used.rss / 1024 / 1024 * 100) / 100} MBs -heapTotal: ${Math.round(used.heapTotal / 1024 / 1024 * 100) / 100} MBs -heapUsed: ${Math.round(used.heapUsed / 1024 / 1024 * 100) / 100} MBs -external: ${Math.round(used.external / 1024 / 1024 * 100) / 100} MBs -\`\`\``) - } -};
\ No newline at end of file diff --git a/src/commands/bot/memoryusage.ts b/src/commands/bot/memoryusage.ts deleted file mode 100644 index e5ed33b..0000000 --- a/src/commands/bot/memoryusage.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; - -module.exports = class MemoryUsageBot extends Command { - constructor(client) { - super(client, { - name: 'memoryusage', - aliases: [ - 'memusage', - 'mem-usage', - 'memory-usage', - 'mem', - 'memory' - ], - group: 'bot', - memberName: 'memoryusage', - description: 'Checks the current, approximate memory usage of uwufier\'s Node.js process.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - ownerOnly: true - }); - } - run(msg: CommandoMessage) { - const used = process.memoryUsage().heapUsed / 1024 / 1024; - msg.reply(`The current, approximate memory usage is currently **${Math.round(used * 100) / 100}** MBs. ${emoji.random()}`) - } -}; diff --git a/src/commands/bot/npm.ts b/src/commands/bot/npm.ts deleted file mode 100644 index 06b9f43..0000000 --- a/src/commands/bot/npm.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class NPMBot extends Command { - constructor(client) { - super(client, { - name: 'npm', - group: 'bot', - memberName: 'npm', - description: 'Gives you a link to uwufier\'s authors\' (Sin) NPM profile.', - examples: ['uwu!npm'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`Here is <@217348698294714370>'s [NPM profile](https://www.npmjs.com/~sinny). ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/owner.ts b/src/commands/bot/owner.ts deleted file mode 100644 index ac3ba93..0000000 --- a/src/commands/bot/owner.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class OwnerBot extends Command { - constructor(client) { - super(client, { - name: 'owner', - group: 'bot', - memberName: 'owner', - description: 'Self explanatory.', - examples: ['uwu!owner'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`<@217348698294714370> is the owner/ maintainer of this bot. ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/servercount.ts b/src/commands/bot/servercount.ts deleted file mode 100644 index 31f6482..0000000 --- a/src/commands/bot/servercount.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -import emoji from 'emoji-random'; - -module.exports = class ServerCountBot extends Command { - constructor(client) { - super(client, { - name: 'servercount', - aliases: ['sc', 'scount', 'serverc'], - group: 'bot', - memberName: 'servercount', - description: 'Tells you the amount of servers uwufier is in.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - ownerOnly: true - }); - } - run(msg: CommandoMessage) { - msg.say('Please wait...').then(m => { - m.edit(`** **`); - - let emb = new MessageEmbed() - .setDescription(`Currently running on ${this.client.guilds.cache.size} server(s). ` + emoji.random()) - .setColor(0xFFCC4D) - - msg.say(emb); - }); - } -};
\ No newline at end of file diff --git a/src/commands/bot/status.ts b/src/commands/bot/status.ts deleted file mode 100644 index dbb5080..0000000 --- a/src/commands/bot/status.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { Command } from 'discord.js-commando'; -import emoji from 'emoji-random' -import config from '../../config.json' - -module.exports = class StatusBot extends Command { - constructor(client) { - super(client, { - name: 'status', - aliases: ['botstatus', 'bot-status'], - group: 'bot', - memberName: 'status', - description: 'Allows you to change uwufier\'s status.', - args: [ - { - key: 'uType', - prompt: 'Would you like to change the status type or status message?', - type: 'string', - default: '' - }, - { - key: 'uActivity', - prompt: 'What would you like to set the status message to?', - type: 'string', - default: '' - } - ], - examples: [ - 'uwu!botstatus type watching', - 'uwu!status t w', - 'uwu!status message youtube', - 'uwu!bs m lol' - ], - ownerOnly: true, - guarded: true - }); - } - async run(msg, { uType, uActivity }) { - let bType = this.client.user?.presence.activities[0].type; - let bActivity = this.client.user?.presence.activities[0].name; - - function uActivityCheck() { - if (uActivity == 'playing' || uActivity == 'p') { - return true - } else if (uActivity == 'streaming' || uActivity == 's') { - return true - } else if (uActivity == 'listening' || uActivity == 'l') { - return true - } else if (uActivity == 'watching' || uActivity == 'w') { - return true - } else { - return false - } - } - - if (uType == 'type' || uType == 't') { - if (uActivity == 'reset' || uActivity == 'r') { - this.client.user?.setActivity(this.client.user.presence.activities[0].name, { - type: 'WATCHING' - }); - } else { - if (uActivityCheck()) { - this.client.user?.setActivity(this.client.user.presence.activities[0].name, { - type: uActivity - }); - // TODO: fix this not settings the type - } else { - return msg.reply(`That is not a valid status type. ${emoji.random()}`) - } - } - } else if (uType == 'message' || uType == 'msg' || uType == 'm') { - if (uActivity == 'reset' || uActivity == 'r') { - this.client.user?.setActivity('uwu!help | v' + config['version'], { - type: bType - }); - } else { - this.client.user?.setActivity(uActivity, { - type: bType - }); - } - } else if (uType == 'reset' || uType == 'r') { - this.client.user?.setActivity('uwu!help | v' + config['version'], { - type: 'WATCHING' - }); - } else { - if (bType == 'WATCHING') { - var bTypeSoften = 'Watching' - } else if (bType == 'STREAMING') { - var bTypeSoften = 'Watching' - } else if (bType == 'PLAYING') { - var bTypeSoften = 'Playing' - } else if (bType == 'LISTENING') { - var bTypeSoften = 'Listening' - } else { - var bTypeSoften = 'Unresolved' - } - return msg.reply(`My current status is \`${bTypeSoften} ${bActivity}\`. ${emoji.random()}`) - } - } -};
\ No newline at end of file diff --git a/src/commands/bot/suggest.ts b/src/commands/bot/suggest.ts deleted file mode 100644 index a610a68..0000000 --- a/src/commands/bot/suggest.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class SuggestBot extends Command { - constructor(client) { - super(client, { - name: 'suggest', - group: 'bot', - memberName: 'suggest', - description: 'Allows you to suggest an addition or change!', - examples: ['uwu!suggest add more cool commands'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`Thank you for your suggestion! ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/support.ts b/src/commands/bot/support.ts deleted file mode 100644 index 9475295..0000000 --- a/src/commands/bot/support.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class SupportBot extends Command { - constructor(client) { - super(client, { - name: 'support', - group: 'bot', - memberName: 'support', - description: 'Gives you uwufier\'s support server link.', - examples: ['uwu!support'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`For support, please join [this Discord server](https://discord.com/invite/DVwXUwx). ${emoji.random()}`) - msg.say(emb) - } -}; diff --git a/src/commands/bot/test.ts b/src/commands/bot/test.ts deleted file mode 100644 index 8140c6e..0000000 --- a/src/commands/bot/test.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; - -module.exports = class TestBot extends Command { - constructor(client) { - super(client, { - name: 'test', - group: 'bot', - memberName: 'test', - description: 'Do not test in production!', - examples: ['uwu!test'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - run(msg: CommandoMessage) { - msg.reply(`Do not test in production! ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/bot/twitch.ts b/src/commands/bot/twitch.ts deleted file mode 100644 index eb935c1..0000000 --- a/src/commands/bot/twitch.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class TwitchBot extends Command { - constructor(client) { - super(client, { - name: 'twitch', - aliases: ['stream', 'streaming'], - group: 'bot', - memberName: 'twitch', - description: 'Gives you a link to uwufier\'s authors\' (Sin) Twitch profile.', - examples: ['uwu!twitch'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`Here is <@217348698294714370>'s [Twitch profile](https://www.twitch.tv/yosinny)! ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/twitter.ts b/src/commands/bot/twitter.ts deleted file mode 100644 index 04a8e56..0000000 --- a/src/commands/bot/twitter.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class TwitterBot extends Command { - constructor(client) { - super(client, { - name: 'twitter', - group: 'bot', - memberName: 'twitter', - description: 'Gives you a link to uwufier\'s authors\' (Sin) Twitter profile.', - examples: ['uwu!twitter'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`Here is <@217348698294714370>'s [Twitter profile](https://twitter.com/9inny). ${emoji.random()}`) - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/uptime.ts b/src/commands/bot/uptime.ts deleted file mode 100644 index 768d43a..0000000 --- a/src/commands/bot/uptime.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { duration as _duration } from 'moment'; -import 'moment-duration-format'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -export default class UptimeBot extends Command { - constructor(client) { - super(client, { - name: 'uptime', - aliases: ['ut'], - group: 'bot', - memberName: 'uptime', - description: 'Tells you how long uwufier has been online.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!uptime', - 'uwu!ut' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - const duration = _duration(this.client.uptime).format(" D [days], H [hrs], m [mins], s [secs]"); - msg.say('Please wait...').then(m => { - m.edit(`** **`); - - let emb = new MessageEmbed() - .setDescription('<@699473263998271489> has been up for ' + duration + '. ' + emoji.random()) - .setColor(0xFFCC4D) - - msg.say(emb); - }); - } -}
\ No newline at end of file diff --git a/src/commands/bot/version.ts b/src/commands/bot/version.ts deleted file mode 100644 index 564fd2f..0000000 --- a/src/commands/bot/version.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; -import config from '../../config.json'; - -export default class VersionBot extends Command { - constructor(client) { - super(client, { - name: 'version', - group: 'bot', - memberName: 'version', - description: 'Tells you uwufier\'s current build version.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!version' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - msg.say('Please wait...').then(m => { - m.edit(`** **`); - - let emb = new MessageEmbed() - .setDescription(`uwufier\'s current build version is **v${config['version']}**. ` + emoji.random()) - .setColor(0xFFCC4D) - - msg.say(emb); - }); - } -}
\ No newline at end of file diff --git a/src/commands/bot/vote.ts b/src/commands/bot/vote.ts deleted file mode 100644 index 61ac999..0000000 --- a/src/commands/bot/vote.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class VoteBot extends Command { - constructor(client) { - super(client, { - name: 'vote', - group: 'bot', - memberName: 'vote', - description: 'Gives you uwufier\'s top.gg vote link.', - examples: ['uwu!vote'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription('To vote, please use [this link](https://discordbots.org/bot/699473263998271489/vote). 🗳') - msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/bot/website.ts b/src/commands/bot/website.ts deleted file mode 100644 index afc1ef3..0000000 --- a/src/commands/bot/website.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class WebsiteBot extends Command { - constructor(client) { - super(client, { - name: 'website', - aliases: ['site'], - group: 'bot', - memberName: 'website', - description: 'Gives you a link to uwufier\'s authors\' (Sin) website.', - examples: ['uwu!website'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`Here is <@217348698294714370>'s [website](https://kyzer.co/)! ${emoji.random()}`) - msg.say(emb) - } -}; diff --git a/src/commands/bot/youtube.ts b/src/commands/bot/youtube.ts deleted file mode 100644 index c0c5289..0000000 --- a/src/commands/bot/youtube.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class YouTubeBot extends Command { - constructor(client) { - super(client, { - name: 'youtube', - aliases: ['yt'], - group: 'bot', - memberName: 'youtube', - description: 'Gives you a link to uwufier\'s authors\' (Sin) YouTube profile.', - examples: ['uwu!youtube'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setDescription(`Here is <@217348698294714370>'s [YouTube profile](https://youtube.com/s1nny). Not the command you were looking for? If you were trying to play YouTube audio via the bot, please do \`uwu!play\` instead. ${emoji.random()}`) - msg.say(emb) - } -}; diff --git a/src/commands/crypto/btc.ts b/src/commands/crypto/btc.ts deleted file mode 100644 index 88cbf5a..0000000 --- a/src/commands/crypto/btc.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; -import btc from 'btc-value'; -btc.setApiKey('a43419ce-fc59-4951-8af9-20c5e36ef73f'); - -module.exports = class BTCCrypto extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'btc', - aliases: ['bitcoin', 'crypto'], - group: 'crypto', - memberName: 'btc', - description: 'Allows you to check the current Bitcoin price.', - args: [ - { - key: 'currencyName', - prompt: 'What currency could you like to see it in? (USD, AUD, CAD, etc.)', - type: 'string', - default: 'USD' - } - ], - examples: [ - 'uwu!bitcoin aud', - 'uwu!crypto cad', - 'uwu!btc usd' - ], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage, { currencyName }: any) { - currencyName = currencyName.toUpperCase(); - return btc({ isDecimal: true, currencyCode: currencyName }).then(value => { - return msg.reply(`The current price of *Bitcoin* is **${value} ${currencyName}**. ${emoji.random()}`); - }); - } -};
\ No newline at end of file diff --git a/src/commands/crypto/btcchange.ts b/src/commands/crypto/btcchange.ts deleted file mode 100644 index 002a2cb..0000000 --- a/src/commands/crypto/btcchange.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import btc from 'btc-value'; -//@ts-ignore no types -import emoji from 'emoji-random'; -btc.setApiKey('a43419ce-fc59-4951-8af9-20c5e36ef73f'); - -module.exports = class BTCChangeCrypto extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'btcchange', - aliases: ['bitcoinchange', 'cryptochange', 'btcc'], - group: 'crypto', - 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', - default: 'USD' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - 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 }: any) { - if (timeAmount == 'day') { - return btc.getPercentageChangeLastDay().then(percentage => { - return msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); - }); - } else if (timeAmount == 'hour') { - return btc.getPercentageChangeLastHour().then(percentage => { - return msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); - }); - } else if (timeAmount == 'week') { - return btc.getPercentageChangeLastWeek().then(percentage => { - return msg.reply('The fluction amount of *Bitcoin* in the last **' + timeAmount + '** is **' + percentage + '%**. ' + emoji.random()); - }); - } else { - return msg.reply('*' + timeAmount + '* is not a valid range. ' + emoji.random()); - } - } -};
\ No newline at end of file diff --git a/src/commands/crypto/securitykey.ts b/src/commands/crypto/securitykey.ts deleted file mode 100644 index a1852e7..0000000 --- a/src/commands/crypto/securitykey.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import crypto from 'crypto' - -module.exports = class RateCrypto extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'securitykey', - aliases: ['security-key'], - group: 'crypto', - memberName: 'securitykey', - description: 'Generates a security key.', - examples: ['uwu!securitykey'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - msg.reply(`Check your DMs! ${emoji.random()}`) - return msg.author.send(crypto.randomBytes(15).toString('hex') + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/emma/art.ts b/src/commands/emma/art.ts deleted file mode 100644 index ee8c451..0000000 --- a/src/commands/emma/art.ts +++ /dev/null @@ -1,202 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; -import FanArt from '../../models/FanArt'; -import mongo from 'mongoose'; -import config from '../../config.json'; -mongo.connect(config['mongodburi'], { useNewUrlParser: true, useUnifiedTopology: true }) - -module.exports = class ArtEmma extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'art', - aliases: ['artwork'], - group: 'emma', - memberName: 'art', - description: 'Allows you to submit artwork to Emma\'s artwork channel.', - args: [ - { - key: 'type', - prompt: 'What type of interaction would you like to do?', - type: 'string', - default: 'submit' - }, - { - key: 'comment', - prompt: 'Would you like to leave a comment?', - type: "string", - default: '' - } - ], - examples: [ - 'uwu!art submit <attached file>', - 'uwu!art set', - 'uwu!art remove' - ], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - //@ts-ignore not assignable bc async - run(msg: CommandoMessage, { type, comment }: any) { - const fanart = new FanArt({ - _id: mongo.Types.ObjectId(), - username: msg.author.username, - userID: msg.author.id, - guildname: msg.guild.name, - guildID: msg.guild.id, - channelname: msg.channel, - channelID: msg.channel.id, - time: msg.createdAt - }) - //let fanartServer = this.client.guilds.cache.get('663964105983393793'); - //@ts-ignore - if (msg.guild.id.toString() != '663964105983393793') return msg.reply(`You are not submitting from **Kat\'s Korner**! ${emoji.random()}`); - if (type == 'submit') { - FanArt.findOne({ guildID: msg.guild.id}, async (error, guild) => { - if (error) return console.log(error); - //@ts-ignore - let fanartServer = this.client.guilds.cache.get(guild.guildID); - //@ts-ignore - let fanartChannel = guild.channelID; - if (msg.attachments.size) { - msg.attachments.forEach(fanart => { - if (fanart.url) { - //@ts-ignore - return fanartServer?.channels.cache.get(fanartChannel)?.send(`**New fanart submitted!**\nFanart by <@${msg.author.id}>.\n\n**Comment**\n${comment ? comment : 'None'}\n\n**Video** ` + fanart.url).then(m => { - msg.delete(); - m.react('😍'); - m.react('😂'); - m.react('😁'); - m.react('😳'); - m.react('😱'); - }) - - /* let emb = new MessageEmbed() - .setDescription(`Fanart by <@${msg.author.id}>.`) - .setTitle('New fanart submitted!') - .setURL(fanart.url) - .addField('Comment', `ok`, true) - .setFooter('Do you want to submit and image or video? Do uwu!help art') - - fanartServer?.channels.cache.get('704032357640044556')?.send(emb); */ - } else - return msg.reply(`No attachment was submitted! If you need help, please do \`uwu!art help\`. ${emoji.random()}`); - } - ); - } else { - return msg.reply(`No attachment was submitted! If you need help, please do \`uwu!art help\`. ${emoji.random()}`); - } - }) - } if (type == 'help') { - // msg.guild.channels.cache.get("fanart")?.fetch().then(bool => console.log('get' + bool)) - // msg.guild.channels.cache.find(c => c.name == 'fanart')?.fetch().then(bool => console.log(bool + 'ok')) - /* msg.guild.channels.cache.find(c => c.name === 'fanart', (bool) => { - if (!bool) { - console.log('ok') - msg.guild.channels.create('fanart', { - type: 'text', - reason: 'Initialize fanart channel. This is an automated action by the Uwufier bot.', - nsfw: false - }) - console.log('made channel') - } else { - console.log('exists') - } - }) */ - let emb = new MessageEmbed() - .setTitle('Fanart - Help ' + emoji.random()) - .setColor(0xFFCC4D) - .setDescription(`How to submit fanart:`) - //@ts-ignore - .setThumbnail(msg.guild.iconURL()) - .addFields([ - { - name: '#1', - value: 'Go to the `#media` channel.' - }, - { - name: '#2', - value: 'Click on the add media button in the bottom left corner of your screen and select a video or image.' - }, - { - name: '#3', - value: 'In the message section, please put `uwu!art submit`.' - }, - { - name: '#4 (Optional)', - value: 'If you would like, you can also put a comment on your fanart, you can do this by adding an extra string to the end of your submit command. e.g. `uwu!art submit this is where the comment goes!`, if you followed the steps correctly, your comment should be `this is where the comment goes!` ' + emoji.random() - }, - { - name: 'Admin Stuff', - value: 'If you are an admin or moderator who would like to set/ remove a fanart channel, you can do this by going to to the channel you would like to set as the new fanart channel and doing `uwu!art set`, this will set the current channel as the fanart channel. To remove a fanart channel, just do `uwu!art remove`.' - }, - { - name: 'More Admin Info', - value: 'You can only have **ONE** fanart channel (I think, I haven\'t tested it lol. If you change the name of the fanart channel, you will have to re-register with the bot by simply removing and re-setting the fanart channel.' - } - ]) - - return msg.say(emb); - } else if (type == 'set') { - if (!msg.member.hasPermission('MANAGE_GUILD')) return msg.reply(`Insufficient permission! ${emoji.random()}`); - - FanArt.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) return console.log(error); - - if (guild) { - //@ts-ignore this exists - return msg.reply(`There already is a welcome channel set! It's ${guild.channelname}! ` + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (!guild) { - await fanart.save() - .then(result => console.log(result)) - .catch(err => console.log(err)) - - return msg.reply(`The welcome channel has been set to ${msg.channel}! ${emoji.random()}`).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } - }) - } else if (type == 'remove') { - if (!msg.member.hasPermission('MANAGE_GUILD')) return msg.reply(`Insufficient permission! ${emoji.random()}`); - - FanArt.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) return console.log(error); - - if (guild) { - await FanArt.findOneAndDelete({ guildID: msg.guild.id }); - return msg.say(`The current fanart channel has been unset! ${emoji.random()}`).then(mnotif => { - //@ts-ignore - mnotif.delete({ timeout: 2000 }); - //@ts-ignore - msg.delete({ timeout: 2000 }); - }) - } else if (!guild) { - return msg.reply(`There is no current fanart channel set for this guild! ${emoji.random()}`).then(m => { - //@ts-ignore - m.delete({ timeout: 2000 }) - //@ts-ignore - msg.delete({ timeout: 2000 }) - }) - } - }) - } - - /* else { - return msg.reply(`That is not a valid operation! ${emoji.random()}`); - } */ - } -};
\ No newline at end of file diff --git a/src/commands/emma/verify.ts b/src/commands/emma/verify.ts deleted file mode 100644 index 6f4584a..0000000 --- a/src/commands/emma/verify.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; -import Verify from '../../models/Verify'; -import mongo from 'mongoose'; -import config from '../../config.json'; -mongo.connect(config['mongodburi'], { useNewUrlParser: true, useUnifiedTopology: true }) - -module.exports = class VerifyEmma extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'verify', - group: 'emma', - memberName: 'verify', - description: 'Lists all the roles on the current server.', - examples: ['uwu!verify set', 'uwu!verify remove'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - guildOnly: true, - args: [ - { - key: 'code', - prompt: 'What is the verification code?', - type: 'string' - } - ] - }); - } - //@ts-ignore this ok - async run(msg: CommandoMessage, { code }: any) { - if (msg.guild.id == '704032355987488791') return msg.reply(`You are not submitting from **Kat\'s Korner**! ${emoji.random()}`); - Verify.findOne({ userID: msg.author.id }, async (error, member) => { - if (error) return console.error(error) - //@ts-ignore this exists - if (msg.author.id == member.userID) { - //@ts-ignore this in-fact - if (code == member.key) { - await Verify.findOneAndDelete({ userID: msg.author.id }); - const unverRole = '729928740359897101'; - return msg.guild.member(msg.author.id)?.roles.remove(unverRole); - } else { - //@ts-ignore this exists - return msg.author.send(`That is not the correct key! Please try again with the correct key: \`${member.key}\`. ${emoji.random()}`); - } - } else { - return msg.author.send(`You are already verified! ${emoji.random()}`) - } - }) - } -};
\ No newline at end of file diff --git a/src/commands/fun/8ball.ts b/src/commands/fun/8ball.ts deleted file mode 100644 index 989e036..0000000 --- a/src/commands/fun/8ball.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -import emoji from 'emoji-random' - -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 002'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'bType', - prompt: 'What type of 8ball would you like?', - type: 'string', - default: '' - } - ] - }); - } - run(msg: CommandoMessage, { bType }) { - if (bType == 'darling' || bType == '002' || bType == 'zero two' || bType == 'zero-two') { - var r = [ - 'Maybe, darling.', - 'Certainly not, darling.', - 'I hope so, darling.', - 'Not in our wildest dreams, darling.', - 'There is a good chance, darling.', - 'Quite likely, darling.', - 'I think so, darling.', - 'I hope not, darling.', - 'I hope so, darling.', - 'Never!', - 'Ahaha! Really?!? XD', - 'Hell, yes.', - 'Hell to the no.', - 'The future is bleak, darling', - 'The future is uncertain, darling', - 'I would rather not say, darling', - 'Who cares?', - 'Possibly, darling', - 'Never, ever, ever... ever.', - 'There is a small chance, darling.', - 'Yes, darling!' - ] - } else if (bType) { - msg.reply('Arguments? Try `uwu!8ball 002`. ' + emoji.random()) - var r = ['yes~ uwu', 'no.', 'yes!', 'no!', 'what, no.', 'yes.', 'maybe.', 'perhaps.', 'try again.', 'I\'m not sure.']; - } else { - 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.say(embed); - } -};
\ No newline at end of file diff --git a/src/commands/fun/advice.ts b/src/commands/fun/advice.ts deleted file mode 100644 index 49e011c..0000000 --- a/src/commands/fun/advice.ts +++ /dev/null @@ -1,27 +0,0 @@ -import axios from 'axios' -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; - -module.exports = class AdviceFun extends Command { - constructor(client) { - super(client, { - name: 'advice', - group: 'fun', - memberName: 'advice', - description: 'Gives you a random piece of advice.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!advice' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - let res = await axios.get('http://api.adviceslip.com/advice') - msg.reply(res.data.slip.advice + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/fun/aesthetic.ts b/src/commands/fun/aesthetic.ts deleted file mode 100644 index a565d84..0000000 --- a/src/commands/fun/aesthetic.ts +++ /dev/null @@ -1,37 +0,0 @@ -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: 'Aestheticifies anything you send.', - args: [ - { - key: 'userMsg', - prompt: 'What would you like to aestheticifie?', - type: 'string' - } - ], - examples: [ - 'uwu!aesthetic please aestheticifie this' - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/clapify.ts b/src/commands/fun/clapify.ts deleted file mode 100644 index f05c768..0000000 --- a/src/commands/fun/clapify.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; - -module.exports = class ClapFun extends Command { - constructor(client) { - super(client, { - name: 'clapify', - aliases: ['clap', 'clappify'], - group: 'fun', - memberName: 'clapify', - description: 'Allows you to clapify anything.', - args: [ - { - key: 'say', - prompt: 'What would you like to clapify?', - type: 'string' - } - ], - examples: ['uwu!clapify please clap this lol'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage, { say }) { - msg.say(say.split(' ').join('👏')) - msg.delete() - } -};
\ No newline at end of file diff --git a/src/commands/fun/coinflip.ts b/src/commands/fun/coinflip.ts deleted file mode 100644 index f491d93..0000000 --- a/src/commands/fun/coinflip.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class CoinFlipFun extends Command { - constructor(client) { - super(client, { - name: 'coinflip', - aliases: ['flipcoin'], - group: 'fun', - memberName: 'coinflip', - description: 'Flip a coin.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!coinflip', 'uwu!flipcoin'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - var r = ['heads!', 'tails!']; - var s = r[Math.floor(Math.random() * r.length)]; - let embed = new MessageEmbed() - - .setAuthor('The coin landed on', 'https://i.imgur.com/pr7JCce.png') - .setDescription('`' + s + '`'); - - msg.say(embed); - } -};
\ No newline at end of file diff --git a/src/commands/fun/culturedtext.ts b/src/commands/fun/culturedtext.ts deleted file mode 100644 index 48b3fb8..0000000 --- a/src/commands/fun/culturedtext.ts +++ /dev/null @@ -1,53 +0,0 @@ -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' - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/datefact.ts b/src/commands/fun/datefact.ts deleted file mode 100644 index 378aa52..0000000 --- a/src/commands/fun/datefact.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import axios from 'axios' -import emoji from 'emoji-random' - -module.exports = class DateFactFun extends Command { - constructor(client) { - super(client, { - name: 'datefact', - aliases: [ - 'date-fact', - 'datefacts', - 'date-facts' - ], - group: 'fun', - memberName: 'datefact', - description: 'Grabs facts about a specified date.', - args: [ - { - key: 'day', - prompt: 'What day would you like to get facts for?', - type: 'integer', - max: 31, - min: 1, - default: 'random' - }, - { - key: 'month', - prompt: 'What month would you like to get facts for?', - type: 'integer', - max: 12, - min: 1, - default: 'random' - } - ], - examples: ['uwu!datefact', 'uwu!datefact 12'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage, { day, month }) { - const uri = `http://numbersapi.com/${month === 'random' || day === 'random' ? 'random' : `${month}/${day}`}/date` - const fact = await axios.get(uri).catch(err => { - console.log(err) - msg.reply('Woops, here was an error with the (http://numbersapi.com) API. ' + emoji.random()) - }) - msg.reply(fact.data) - } -};
\ No newline at end of file diff --git a/src/commands/fun/dayfact.ts b/src/commands/fun/dayfact.ts deleted file mode 100644 index f30b828..0000000 --- a/src/commands/fun/dayfact.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import axios from 'axios' -import emoji from 'emoji-random' - -module.exports = class DayFactFun extends Command { - constructor(client) { - super(client, { - name: 'dayfact', - aliases: [ - 'day-fact', - 'dayfacts', - 'day-facts' - ], - group: 'fun', - memberName: 'dayfact', - description: 'Grabs facts about a specified day.', - args: [ - { - key: 'day', - prompt: 'What day would you like to get facts for?', - type: 'integer', - max: 31, - min: 1, - default: 'random' - } - ], - examples: ['uwu!dayfact', 'uwu!dayfact 12'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage, { day }) { - const fact = await axios.get(`http://numbersapi.com/${day}/date`).catch(err => { - console.log(err) - msg.reply('Woops, here was an error with the (http://numbersapi.com) API. ' + emoji.random()) - }) - msg.reply(fact.data) - } -};
\ No newline at end of file diff --git a/src/commands/fun/dicksize.ts b/src/commands/fun/dicksize.ts deleted file mode 100644 index 13986f1..0000000 --- a/src/commands/fun/dicksize.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; - -module.exports = class DickSizeFun extends Command { - constructor(client) { - super(client, { - name: 'dicksize', - aliases: [ - 'peepeesize', - 'ppsize' - ], - group: 'fun', - memberName: 'dicksize', - description: 'Tells you your dick size.', - examples: [ - 'uwu!dicksize', - 'uwu!peepeesize', - 'uwu!ppsize' - ], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - let size = msg.author.id.slice(-3) % 20 + 1 - - msg.reply('Scanning..').then(scanningMsg => { - // @ts-ignore - scanningMsg.delete() - msg.reply('Your dick size is **' + size + '** inches. ' + emoji.random()); - }); - } -}; */
\ No newline at end of file diff --git a/src/commands/fun/dogeify.ts b/src/commands/fun/dogeify.ts deleted file mode 100644 index a5af4a2..0000000 --- a/src/commands/fun/dogeify.ts +++ /dev/null @@ -1,38 +0,0 @@ -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' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/drawcards.ts b/src/commands/fun/drawcards.ts deleted file mode 100644 index 5d53b72..0000000 --- a/src/commands/fun/drawcards.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { shuffle } from '../../utils/Util.js' -const suits = ['♣', '♥', '♦', '♠'] -const faces = ['Jack', 'Queen', 'King'] - -module.exports = class DrawCardsFun extends Command { - constructor(client) { - super(client, { - name: 'drawcards', - aliases: [ - 'draw-cards', - 'drawhand', - 'draw-hand' - ], - group: 'fun', - memberName: 'drawcards', - description: 'Draw a hand of playing cards.', - examples: ['uwu!drawcards 5'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'aAmount', - label: 'hand size', - prompt: 'How many cards would you like to draw?', - type: 'integer', - max: 10, - min: 1 - }, - { - key: 'aJokers', - prompt: 'Do you want to include jokers in the draw?', - type: 'boolean', - default: false - } - ], - }); - this.deck = null - } - run(msg: CommandoMessage, { aAmount, aJokers }) { - if (!this.deck) this.deck = this.generateDeck() - let cards = this.deck - if (!aJokers) cards = cards.filter(card => !card.includes('Joker')) - return msg.reply(`${aAmount === 1 ? '' : '\n'}${shuffle(cards).slice(0, aAmount).join('\n')}`) - } - generateDeck() { - const deck = [] - for (const suit of suits) { - deck.push(`${suit} Ace`) - for (let i = 2; i <= 10; i++) deck.push(`${suit} ${i}`) - for (const face of faces) deck.push(`${suit} ${face}`) - } - deck.push('⭐ Joker') - deck.push('⭐ Joker') - return deck - } -};
\ No newline at end of file diff --git a/src/commands/fun/embed.ts b/src/commands/fun/embed.ts deleted file mode 100644 index fb59845..0000000 --- a/src/commands/fun/embed.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class EmbedFun extends Command { - constructor(client) { - super(client, { - name: 'embed', - group: 'fun', - memberName: 'embed', - description: 'Allows you to speak as the bot, except with embeds.', - args: [ - { - key: 'say', - prompt: 'What would you like to embed?', - type: 'string' - } - ], - examples: ['uwu!embed hi'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage, { say }) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setDescription(say) - msg.say(emb) - msg.delete(); - } -};
\ No newline at end of file diff --git a/src/commands/fun/emoji.ts b/src/commands/fun/emoji.ts deleted file mode 100644 index f830387..0000000 --- a/src/commands/fun/emoji.ts +++ /dev/null @@ -1,24 +0,0 @@ -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/fml.ts b/src/commands/fun/fml.ts deleted file mode 100644 index a3fa600..0000000 --- a/src/commands/fun/fml.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import request from 'node-superfetch' -import emoji from 'emoji-random' -import cheerio from 'cheerio' - -module.exports = class FMLFun extends Command { - constructor(client) { - super(client, { - name: 'fml', - aliases: [ - 'fuckmylife', - 'fuck-my-life' - ], - group: 'fun', - memberName: 'fml', - description: 'Gives you a random FML.', - examples: ['uwu!fml'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - async run(msg: CommandoMessage) { - try { - const { text } = await request.get('http://www.fmylife.com/random') - const $ = cheerio.load(text, { normalizeWhitespace: true }) - const fml = $('a.article-link').first().text().trim() - return msg.reply(fml + ' ' + emoji.random()) - } catch (err) { - return msg.reply(`Woops, an error has occured: \`${err.message}\`. Try again later! ${emoji.random()}`) - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/gay.ts b/src/commands/fun/gay.ts deleted file mode 100644 index a70dfc3..0000000 --- a/src/commands/fun/gay.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* 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 level of homosexuality amount. Because we\'re all queens here.🏳️🌈 ', - examples: [ - 'uwu!gay', - 'uwu!gayamount', - 'uwu!gayrange', - 'uwu!gayrate' - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/githubzen.ts b/src/commands/fun/githubzen.ts deleted file mode 100644 index cc2f0a2..0000000 --- a/src/commands/fun/githubzen.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import request from 'node-superfetch' -import emoji from 'emoji-random' -import cheerio from 'cheerio' - -module.exports = class GitHubZenFun extends Command { - constructor(client) { - super(client, { - name: 'githubzen', - aliases: [ - 'github-zen', - 'ghzen', - 'gh-zen' - ], - group: 'fun', - memberName: 'githubzen', - description: 'Gives you a random GitHub design philosophy.', - examples: ['uwu!githubzen'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - async run(msg: CommandoMessage) { - try { - const { text } = await request.get('https://api.github.com/zen') - return msg.reply(text + ' ' + emoji.random()) - } catch (err) { - return msg.reply(`Woops, an error has occured: \`${err.message}\`. Try again later! ${emoji.random()}`) - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/hello.ts b/src/commands/fun/hello.ts deleted file mode 100644 index e555a30..0000000 --- a/src/commands/fun/hello.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; - -module.exports = class HelloFun extends Command { - constructor(client) { - super(client, { - name: 'hello', - aliases: ['hey', 'hi'], - group: 'fun', - memberName: 'hello', - description: 'Say hello to uwufier!', - examples: ['uwu!hello', 'uwu!hey', 'uwu!hi'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - msg.reply('Hi! ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/fun/howify.ts b/src/commands/fun/howify.ts deleted file mode 100644 index c1337f9..0000000 --- a/src/commands/fun/howify.ts +++ /dev/null @@ -1,39 +0,0 @@ -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'], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - 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); - msg.delete() - msg.reply('Please wait...').then(m => m.delete({ timeout: 2000 })) - 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 deleted file mode 100644 index 47643e7..0000000 --- a/src/commands/fun/insult.ts +++ /dev/null @@ -1,25 +0,0 @@ -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', 'roast', 'roasts'], - group: 'fun', - memberName: 'insult', - description: 'Gives you a random insult.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - 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/iq.ts b/src/commands/fun/iq.ts deleted file mode 100644 index 2185878..0000000 --- a/src/commands/fun/iq.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MersenneTwister19937, integer } from 'random-js' - -module.exports = class IQFun extends Command { - constructor(client) { - super(client, { - name: 'iq', - group: 'fun', - memberName: 'iq', - description: 'Tells you your IQ.', - examples: ['uwu!iq'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'uUser', - prompt: 'Which user\'s IQ would you like to guess?', - type: 'user', - default: '' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }) { - let random = MersenneTwister19937.seed(uUser.id) - let iq = integer(20, 270)(random) - if (!uUser) { - msg.reply('Scanning..').then(scanningMsg => { - // @ts-ignore - scanningMsg.delete() - msg.reply(`Your IQ score is **${iq}**. ${emoji.random()}`); - }); - } else { - if (uUser.id === this.client.user.id) { - msg.reply('Me? My IQ is too high for you to even comprehend. ' + emoji.random()) - } else { - msg.reply(`${uUser.username}'s IQ score is **${iq}**. ${emoji.random()}`) - } - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/kissmarrykill.ts b/src/commands/fun/kissmarrykill.ts deleted file mode 100644 index 1a7622d..0000000 --- a/src/commands/fun/kissmarrykill.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { shuffle } from '../../utils/Util.js' -import emoji from 'emoji-random' - -module.exports = class KissMarryKillFun extends Command { - constructor(client) { - super(client, { - name: 'kissmarrykill', - aliases: [ - 'kisskillmarry', - 'kiss-kill-marry', - 'killkissmarry', - 'kill-kiss-marry', - 'killmarrykiss', - 'kill-marry-kiss', - 'marrykisskill', - 'marry-kiss-kill', - 'marrykillkiss', - 'marry-kill-kiss', - 'fuck-marry-kill', - 'fuckmarrykill', - 'fuck-kill-marry', - 'fuckkillmarry', - 'kill-fuck-marry', - 'killfuckmarry', - 'kill-marry-fuck', - 'killmarryfuck', - 'marry-fuck-kill', - 'marryfuckkill', - 'marry-kill-fuck', - 'marrykillfuck', - 'kiss-mary-kill' - ], - group: 'fun', - memberName: 'kissmarrykill', - description: 'Kiss Marry Kill.', - examples: ['uwu!kissmarrykill'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'first', - label: 'first name', - prompt: 'Who is the first person you choose?', - type: 'string', - max: 500 - }, - { - key: 'second', - label: 'second name', - prompt: 'Who is the second person you choose?', - type: 'string', - max: 500 - }, - { - key: 'third', - label: 'third name', - prompt: 'Who is the third person you choose?', - type: 'string', - max: 500 - } - ] - }); - } - async run(msg: CommandoMessage, { first, second, third }) { - const kissFuck = msg.channel.nsfw ? 'fuck' : 'kiss'; - const things = shuffle([first, second, third]); - return msg.say(`I'd ${kissFuck} ${things[0]}, marry ${things[1]}, and kill ${things[2]}. ${emoji.random()}`); - } -};
\ No newline at end of file diff --git a/src/commands/fun/lorem.ts b/src/commands/fun/lorem.ts deleted file mode 100644 index 3189375..0000000 --- a/src/commands/fun/lorem.ts +++ /dev/null @@ -1,34 +0,0 @@ -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' - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/modplz.ts b/src/commands/fun/modplz.ts deleted file mode 100644 index 14f9955..0000000 --- a/src/commands/fun/modplz.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class ModPlzFun extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'modplz', - group: 'fun', - memberName: 'modplz', - description: 'Send this when someone talking about mods.', - examples: [ - 'uwu!modplz' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - msg.delete() - let emb = new MessageEmbed() - .setColor(0xFFD0DF) - .setImage('https://discordapp.com/channels/663964105983393793/664659637039005696/730279064132255794') - return msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/fun/motivate.ts b/src/commands/fun/motivate.ts deleted file mode 100644 index 3dcd7f6..0000000 --- a/src/commands/fun/motivate.ts +++ /dev/null @@ -1,29 +0,0 @@ -import mq from 'motivations'; -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; - -module.exports = class MotivateFun extends Command { - constructor(client) { - super(client, { - name: 'motivate', - aliases: ['motivateme', 'motivation'], - group: 'fun', - memberName: 'motivate', - description: 'Gives you a random motivating quote from Star Wars.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!motivate', - 'uwu!motivateme' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - var quoteNum = Math.floor((Math.random() * 62) + 1); - msg.reply(mq[quoteNum] + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/fun/numberfact.ts b/src/commands/fun/numberfact.ts deleted file mode 100644 index 9e7b698..0000000 --- a/src/commands/fun/numberfact.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import axios from 'axios' -import emoji from 'emoji-random' - -module.exports = class NumberFactFun extends Command { - constructor(client) { - super(client, { - name: 'numberfact', - aliases: [ - 'number-fact', - 'numberfacts', - 'number-facts', - 'numfact', - 'num-fact', - 'numfacts', - 'num-facts' - ], - group: 'fun', - memberName: 'numberfact', - description: 'Grabs facts about a specified number.', - args: [ - { - key: 'nNum', - prompt: 'What number would you like to get facts for?', - type: 'integer', - max: 31, - min: 1, - default: 'random' - } - ], - examples: ['uwu!numberfact', 'uwu!numberfact 12'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage, { nNum }) { - const fact = await axios.get(`http://numbersapi.com/${nNum}`).catch(err => { - console.log(err) - msg.reply('Woops, here was an error with the (http://numbersapi.com) API. ' + emoji.random()) - }) - msg.reply(fact.data) - } -};
\ No newline at end of file diff --git a/src/commands/fun/oddcase.ts b/src/commands/fun/oddcase.ts deleted file mode 100644 index 890773d..0000000 --- a/src/commands/fun/oddcase.ts +++ /dev/null @@ -1,36 +0,0 @@ -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' - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/offspring.ts b/src/commands/fun/offspring.ts deleted file mode 100644 index e603f76..0000000 --- a/src/commands/fun/offspring.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random' -const genders = ['boy', 'girl'] - -module.exports = class OffspringFun extends Command { - constructor(client) { - super(client, { - name: 'offspring', - aliases: ['gender'], - group: 'fun', - memberName: 'offspring', - description: 'Determines your future child\'s gender.', - examples: ['uwu!offspring'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg: CommandoMessage) { - msg.reply(`It\'s a ${genders[Math.floor(Math.random() * genders.length)]}! ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/fun/onion.ts b/src/commands/fun/onion.ts deleted file mode 100644 index 341b461..0000000 --- a/src/commands/fun/onion.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random' -import { stripIndents } from 'common-tags' -import RSS from 'rss-parser' - -module.exports = class OnionFun extends Command { - constructor(client) { - super(client, { - name: 'onion', - aliases: ['theonion', 'the-onion'], - group: 'fun', - memberName: 'onion', - description: 'Reples with a random Onion article.', - examples: ['uwu!onion'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - async run(msg: CommandoMessage) { - const parser = new RSS() - try { - const feed = await parser.parseURL('https://www.theonion.com/rss') - const article = feed.items[Math.floor(Math.random() * feed.items?.length)] - return msg.reply(stripIndents` - ${article.title} - ${article.link} - `) - } catch (err) { - return msg.reply(`Woops, an error has occurred: \`${err.message}\`. Try again later! ${emoji.random()}`); - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/opinion.ts b/src/commands/fun/opinion.ts deleted file mode 100644 index 353846f..0000000 --- a/src/commands/fun/opinion.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random' -import { stripIndents } from 'common-tags' -const opinions = ['👍', '👎'] - -module.exports = class OpinionFun extends Command { - constructor(client) { - super(client, { - name: 'opinion', - group: 'fun', - memberName: 'opinion', - description: 'Determines uwufier\'s opinion of a specified thing.', - examples: ['uwu!opinion'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'qQuestion', - prompt: 'What do you want to get an opinion on?', - type: 'string', - max: 1950 - } - ] - }); - } - run(msg: CommandoMessage, { qQuestion }) { - msg.reply(stripIndents` - ${qQuestion} - ${opinions[Math.floor(Math.random() * opinions.length)]} - `) - } -};
\ No newline at end of file diff --git a/src/commands/fun/quantumcoinflip.ts b/src/commands/fun/quantumcoinflip.ts deleted file mode 100644 index 3f2446d..0000000 --- a/src/commands/fun/quantumcoinflip.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -const sides = [NaN, 0, null, undefined, '']; - -module.exports = class QuantumCoinFlipFun extends Command { - constructor(client) { - super(client, { - name: 'quantumcoinflip', - aliases: ['quantumflipcoin'], - group: 'fun', - memberName: 'quantumcoinflip', - description: 'Flip a quantum coin.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!coinflip', 'uwu!flipcoin'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - var s = sides[Math.floor(Math.random() * sides.length)] - let embed = new MessageEmbed() - - .setAuthor('The quantum coin landed on', 'https://i.imgur.com/pr7JCce.png') - .setDescription('`' + s + '`'); - - msg.say(embed); - } -};
\ No newline at end of file diff --git a/src/commands/fun/quote.ts b/src/commands/fun/quote.ts deleted file mode 100644 index e090574..0000000 --- a/src/commands/fun/quote.ts +++ /dev/null @@ -1,80 +0,0 @@ -// Quote Packages -import mq from 'popular-movie-quotes'; -import hsq from 'harvey-specter-quotes' -import aq from 'animequote' -import cq from 'chewbacca-quotes' -import asq from 'arnie-quote' -import ztq from 'zero-two-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: 'Either gives you a random quote or a quote from a specified category.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!quote', - 'uwu!qutoes', - 'uwu!quote movie', - 'uwu!quotes harvey specter' - ], - args: [ - { - key: 'atCharacter', - prompt: 'Would you like a specific type?\nTypes: movie, harvey specter, anime, chewbacca, arnold schwarzenegger or zero two.', - type: 'string' - } - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage, { atCharacter }) { - if (atCharacter == 'random' || atCharacter == 'no') { - var quoteNum = Math.floor((Math.random() * 6) + 1); - switch (quoteNum) { - case 1: - msg.reply(mq.getRandomQuote() + ' ' + emoji.random()); - break - case 2: - msg.reply(hsq.random() + ' ' + emoji.random()); - break - case 3: - msg.reply(aq().quotesentence + ' ' + emoji.random()); - break - case 4: - msg.reply(cq() + ' ' + emoji.random()) - break - case 5: - msg.reply(asq() + ' ' + emoji.random()) - break - case 6: - msg.reply(ztq() + ' ' + emoji.random()) - break - } - } else if (atCharacter == 'movie' || atCharacter == 'movies') { - msg.reply(mq.getRandomQuote() + ' ' + emoji.random()); - } else if (atCharacter == 'harvey specter' || atCharacter == 'harvey') { - msg.reply(hsq.random() + ' ' + emoji.random()); - } else if (atCharacter == 'anime' || atCharacter == 'animes') { - msg.reply(aq().quotesentence + ' ' + emoji.random()); - } else if (atCharacter == 'chewbacca') { - msg.reply(cq() + ' ' + emoji.random()) - } else if (atCharacter == 'arnold schwarzenegger' || atCharacter == 'arnold' || atCharacter == 'schwarzenegger') { - msg.reply(asq() + ' ' + emoji.random()) - } else if (atCharacter == 'zero two' || atCharacter == 'ditf' || atCharacter == '002' || atCharacter == 'darling in the franxx') { - msg.reply(ztq() + ' ' + emoji.random()) - } else { - msg.reply('That was not at option. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/randomfacts.ts b/src/commands/fun/randomfacts.ts deleted file mode 100644 index 5d9777e..0000000 --- a/src/commands/fun/randomfacts.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import request from 'node-superfetch' -import emoji from 'emoji-random' - -module.exports = class RandomFactFun extends Command { - constructor(client) { - super(client, { - name: 'randomfact', - aliases: [ - 'random-fact', - 'fact', - 'facts' - ], - group: 'fun', - memberName: 'randomfact', - description: 'Gives you a random fact.', - examples: ['uwu!randomfact'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - async run(msg: CommandoMessage) { - try { - const article = await this.randomWikipediaArticle() - const { body } = await request - .get('https://en.wikipedia.org/w/api.php') - .query({ - action: 'query', - prop: 'extracts', - format: 'json', - titles: article, - exintro: '', - explaintext: '', - redirects: '', - formatversion: 2 - }) - let fact = body.query.pages[0].extract; - if (fact.length > 200) { - const facts = fact.split('.'); - fact = `${facts[0]}.`; - if (fact.length < 200 && facts.length > 1) fact += `${facts[1]}.`; - } - return msg.reply(fact + ' ' + emoji.random()); - } catch (err) { - return msg.reply(`Woops, an error has occured: \`${err.message}\`. Try again later! ${emoji.random()}`) - } - } - async randomWikipediaArticle() { - const { body } = await request - .get('https://en.wikipedia.org/w/api.php') - .query({ - action: 'query', - list: 'random', - rnnamespace: 0, - rnlimit: 1, - format: 'json', - formatversion: 2 - }); - if (!body.query.random[0].title) return 'Facts are hard to find sometimes.'; - return body.query.random[0].title; - } -};
\ No newline at end of file diff --git a/src/commands/fun/rate.ts b/src/commands/fun/rate.ts deleted file mode 100644 index 0dfc505..0000000 --- a/src/commands/fun/rate.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random' - -module.exports = class RateFun extends Command { - constructor(client) { - super(client, { - name: 'rate', - group: 'fun', - memberName: 'rate', - description: 'Rate something.', - examples: ['uwu!rate deez nuts'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'tThing', - prompt: 'What would you like to rate?', - type: 'string', - max: 1950 - } - ] - }); - } - run(msg: CommandoMessage, { tThing }) { - msg.reply(`I'd give ${tThing} a ${Math.floor(Math.random() * 10) + 1}/10! ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/fun/respect.ts b/src/commands/fun/respect.ts deleted file mode 100644 index 362773a..0000000 --- a/src/commands/fun/respect.ts +++ /dev/null @@ -1,26 +0,0 @@ -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'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - msg.say('Press F to pay respects.').then(m => { - m.react('🇫'); - msg.delete(); - }); - } -};
\ No newline at end of file diff --git a/src/commands/fun/roastwilly.ts b/src/commands/fun/roastwilly.ts deleted file mode 100644 index 24503cd..0000000 --- a/src/commands/fun/roastwilly.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import insult from 'insult'; -import emoji from 'emoji-random'; - -module.exports = class RoastWillyFun extends Command { - constructor(client) { - super(client, { - name: 'roastwilly', - aliases: ['insultwilly'], - group: 'fun', - memberName: 'roastwilly', - description: 'Gives you a random insult directed towards willy.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!insultwilly', 'uwu!roastwilly'], - args: [ - { - key: 'type', - prompt: 'None', - type: 'string', - default: '' - } - ] - }); - } - run(msg: CommandoMessage, { type }: any) { - const willysRoasts = ['you smell like weenie water', 'you are dead built like a german sausage', 'you are that one flavour of ice cream no one eats']; - const roastCustomBool = Math.floor(Math.random() * 3); - if (type == 'custom' || type == 'c') { - const customRoastNum = Math.floor(Math.random() * willysRoasts.length); - msg.reply(`${willysRoasts[customRoastNum]} <@${msg.guild.member('608481389444333583')?.id}> ${emoji.random()}`) - } else { - if (roastCustomBool == 1) { - const customRoastNum = Math.floor(Math.random() * willysRoasts.length); - msg.reply(`${willysRoasts[customRoastNum]} <@${msg.guild.member('608481389444333583')?.id}> ${emoji.random()}`) - } else { - msg.reply(`${insult.Insult()} <@${msg.guild.member('608481389444333583')?.id}> ${emoji.random()}`) - } - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/roastwillyc.ts b/src/commands/fun/roastwillyc.ts deleted file mode 100644 index 2bb4ee2..0000000 --- a/src/commands/fun/roastwillyc.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import insult from 'insult'; -import emoji from 'emoji-random'; - -module.exports = class RoastWillyCustomFun extends Command { - constructor(client) { - super(client, { - name: 'roastwillyc', - aliases: ['insultwillyc'], - group: 'fun', - memberName: 'roastwillyc', - description: 'Gives you a random custom insult directed towards willy.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!insultwillyc', 'uwu!roastwillyc'], - args: [ - { - key: 'type', - prompt: 'None', - type: 'string', - default: '' - } - ] - }); - } - run(msg: CommandoMessage, { type }: any) { - const willysRoasts = ['you smell like weenie water', 'you are dead built like a german sausage', 'you are that one flavour of ice cream no one eats']; - const roastCustomBool = Math.floor(Math.random() * 3); - const customRoastNum = Math.floor(Math.random() * willysRoasts.length); - msg.reply(`${willysRoasts[customRoastNum]} <@${msg.guild.member('608481389444333583')?.id}> ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/fun/rockpaperscissors.ts b/src/commands/fun/rockpaperscissors.ts deleted file mode 100644 index 422481f..0000000 --- a/src/commands/fun/rockpaperscissors.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class RockPaperScissorsFun extends Command { - constructor(client) { - super(client, { - name: 'rockpaperscissors', - aliases: ['rps'], - group: 'fun', - memberName: 'rockpaperscissors', - description: '**[Disabled]** Play Rock, Paper Scissors.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!rockpaperscissors', 'uwu!rps'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - // TODO: fix this - msg.reply('Command disabled.') - - // const rock = '💎' - // const paper = '🧻' - // const scissors = '✂️' - - // let embed = new MessageEmbed() - // .setAuthor(msg.author.tag, msg.author.displayAvatarURL()) - // .setDescription('What would you like to choose?') - // .setColor(0xFFCC4D) - // .setTimestamp() - - // const m = await msg.channel.send(embed) - - // const react1 = await m.react(rock) - // const react2 = await m.react(paper) - // const react3 = await m.react(scissors) - - // const chooseArr = [rock, paper, scissors] - - // const randChoice = await chooseArr[Math.floor(Math.random() * chooseArr.length)] - - // let collector = await m.createReactionCollector((reacted, user) => user.id === msg.author.id) - - // collector.on('collect', async (reaction, user) => { - // let winEmb = new MessageEmbed() - // .setAuthor(msg.author.tag, msg.author.displayAvatarURL()) - // .setDescription('You won!') - // .addField('Results:', `${reaction.emoji} vs ${randChoice}`) - // .setColor('GREEN') - // .setTimestamp() - - // let tieEmb = new MessageEmbed() - // .setAuthor(msg.author.tag, msg.author.displayAvatarURL()) - // .setDescription('You tied!') - // .addField('Results:', `${reaction.emoji} vs ${randChoice}`) - // .setColor(0xFFCC4D) - // .setTimestamp() - - // let lostEmb = new MessageEmbed() - // .setAuthor(msg.author.tag, msg.author.displayAvatarURL()) - // .setDescription('You lost!') - // .addField('Results:', `${reaction.emoji} vs ${randChoice}`) - // .setColor('RED') - // .setTimestamp() - // if ((reaction.emoji === rock && randChoice === scissors) || (reaction.emoji === paper && randChoice === rock) || (reaction.emoji === scissors && randChoice === paper)) { - // m.delete() - // msg.channel.send(winEmb) - // } else if (reaction.emoji === randChoice) { - // m.delete() - // msg.channel.send(tieEmb) - // } else { - // m.delete() - // msg.channel.send(lostEmb) - // } - // }) - } -};
\ No newline at end of file diff --git a/src/commands/fun/rolldie.ts b/src/commands/fun/rolldie.ts deleted file mode 100644 index 6426238..0000000 --- a/src/commands/fun/rolldie.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class RollDieFun extends Command { - constructor(client) { - super(client, { - name: 'rolldie', - aliases: ['dice'], - group: 'fun', - memberName: 'rolldie', - description: 'Role a die.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!roledie', 'uwu!dice'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - var r = [1, 2, 3, 4, 5, 6]; - var s = r[Math.floor(Math.random() * r.length)]; - let embed = new MessageEmbed() - - .setAuthor('The die landed on', 'https://i.imgur.com/dK18NpV.png') - .setDescription('`' + s + '`'); - - msg.say(embed); - } -};
\ No newline at end of file diff --git a/src/commands/fun/russianroulette.ts b/src/commands/fun/russianroulette.ts deleted file mode 100644 index ba67118..0000000 --- a/src/commands/fun/russianroulette.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class RussianRouletteFun extends Command { - constructor(client) { - super(client, { - name: 'russianroulette', - aliases: ['rr'], - group: 'fun', - memberName: 'russianroulette', - description: 'Play a game of Russian Roulette.', - throttling: { - usages: 5, - duration: 30 - }, - examples: ['uwu!russianroulette', 'uwu!rr'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - var s = Math.floor(Math.random() * 6) - if (s === 0) { - return msg.reply('💥 *Bang.* You lose.') - } else { - return msg.reply("🔫 *Click.* You survived."); - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/say.ts b/src/commands/fun/say.ts deleted file mode 100644 index 7a610b4..0000000 --- a/src/commands/fun/say.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import * as emoji from 'emoji-random' -import * as config from '../../config.json' - -module.exports = class SayFun extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'say', - group: 'fun', - memberName: 'say', - description: 'Allows you to speak as the bot.', - args: [ - { - key: 'say', - prompt: 'What would you like to send?', - type: 'string' - } - ], - examples: ['uwu!say hi'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - //@ts-ignore - run(msg: CommandoMessage, { say }: any) { - if (config['validUsers'].includes(msg.author.id)) { - if (msg.author.id == '217348698294714370' || msg.guild.member(msg.author.id)?.hasPermission('MANAGE_MESSAGES')) { - msg.say(say) - msg.delete(); - return - } else { - //@ts-ignore - return msg.reply(`Insufficent permissions! ${emoji.random()}`).then(m => m.delete({ timeout: 3000 })) - } - } else { - msg.delete() - //@ts-ignore - return msg.reply(`Insufficent permissions! ${emoji.random()}`).then(m => m.delete({ timeout: 3000 })) - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/showerthought.ts b/src/commands/fun/showerthought.ts deleted file mode 100644 index ba7e86a..0000000 --- a/src/commands/fun/showerthought.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import SubredditCommand from '../../models/commands/Subreddit.js' - -module.exports = class ShowerThoughtFun extends SubredditCommand { - constructor(client) { - super(client, { - name: 'showerthought', - aliases: [ - 'shower-thought', - 'showerthoughts', - 'shower-thoughts' - ], - group: 'fun', - memberName: 'showerthought', - description: 'Gives you a shower thought from **r/Showerthought**.', - examples: ['uwu!showerthought'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - subreddit: 'Showerthoughts' - }); - } - generateText(post) { - return post.title; - } -};
\ No newline at end of file diff --git a/src/commands/fun/smashorpass.ts b/src/commands/fun/smashorpass.ts deleted file mode 100644 index c6aecbc..0000000 --- a/src/commands/fun/smashorpass.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import emoji from 'emoji-random'; -import { MersenneTwister19937, bool } from 'random-js' - -module.exports = class SmashOrPassFun extends Command { - constructor(client) { - super(client, { - name: 'smashorpass', - aliases: [ - 'smash-or-pass', - 'sop', - 's-o-p' - ], - group: 'fun', - memberName: 'smashorpass', - description: 'Smash or pass.', - examples: ['uwu!sop'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'uUser', - prompt: 'Which user\'s would you like me to check?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }) { - let random = MersenneTwister19937.seed(uUser.id) - let smashOrPass = bool()(random) - if (uUser.id === this.client.user?.id) { - msg.reply(`Obviously smash, Google me. ${emoji.random()}`) - } else { - msg.reply(smashOrPass ? 'Smash, I\'d definetly smash. ' : 'Hard pass. Yuck. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/fun/spoiler.ts b/src/commands/fun/spoiler.ts deleted file mode 100644 index ff1093c..0000000 --- a/src/commands/fun/spoiler.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; - -module.exports = class SpoilerFun extends Command { - constructor(client) { - super(client, { - name: 'spoiler', - aliases: ['spoil', 'spoilertext', 'spoiler-text', 'spoiltext', 'spoil-text'], - group: 'fun', - memberName: 'spoiler', - description: 'Turn every character in a specified phrase as a ||s||||p||||o||||i||||l||||e||||r||.', - args: [ - { - key: 'say', - prompt: 'What would you like to spoil?', - type: 'string' - } - ], - examples: ['uwu!spoiler hi lol'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage, { say }) { - msg.delete(); - msg.say(say.replace(/./g, '||$&||')) - } -}; diff --git a/src/commands/fun/spongebob.ts b/src/commands/fun/spongebob.ts deleted file mode 100644 index d8010a6..0000000 --- a/src/commands/fun/spongebob.ts +++ /dev/null @@ -1,39 +0,0 @@ -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' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - 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 deleted file mode 100644 index 4bb8d00..0000000 --- a/src/commands/fun/stretch.ts +++ /dev/null @@ -1,37 +0,0 @@ -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' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/subreddit.ts b/src/commands/fun/subreddit.ts deleted file mode 100644 index a9369d2..0000000 --- a/src/commands/fun/subreddit.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import SubredditCommandBase from '../../models/commands/Subreddit.js' -import { shorten, formatNumber } from '../../utils/Util.js' -import { MessageEmbed } from 'discord.js'; - -module.exports = class SubredditFun extends SubredditCommandBase { - constructor(client) { - super(client, { - name: 'subreddit', - aliases: ['r/', 'sub', 'reddit'], - patterns: [/^r\/(.+)/i], - group: 'fun', - memberName: 'subreddit', - description: 'Replies with a random post from a specified subreddit.', - args: [ - { - key: 'sSub', - prompt: 'Which subreddit would you like to get a post from?', - type: 'string', - parse: subreddit => encodeURIComponent(subreddit) - } - ], - examples: ['uwu!say hi'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - generateText(post, subreddit, icon) { - const embed = new MessageEmbed() - .setColor(0xFFCC4D) - .setAuthor(`r/${subreddit}`, icon, `https://www.reddit.com/r/${subreddit}/`) - .setTitle(shorten(post.title, 256)) - .setImage(post.post_hint === 'image' ? post.url : null) - .setURL(`https://www.reddit.com${post.permalink}`) - .setTimestamp(post.created_utc * 1000) - .setFooter(`⬆ ${formatNumber(post.score)}`); - if (post.thumbnail && post.thumbnail !== 'self' && post.post_hint !== 'image') { - embed.setThumbnail(post.thumbnail); - } - return embed; - } -};
\ No newline at end of file diff --git a/src/commands/fun/surreal.ts b/src/commands/fun/surreal.ts deleted file mode 100644 index 024874a..0000000 --- a/src/commands/fun/surreal.ts +++ /dev/null @@ -1,36 +0,0 @@ -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' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - 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/uglycat.ts b/src/commands/fun/uglycat.ts deleted file mode 100644 index 343bc2d..0000000 --- a/src/commands/fun/uglycat.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; - -module.exports = class UglyCatFun extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'uglycat', - aliases: ['ugycat'], - group: 'fun', - memberName: 'uglycat', - description: 'Sends an ugly cat.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'EMBED_LINKS'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'EMBED_LINKS'], - examples: ['uwu!uglycat'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - return msg.say({ files: ['https://i.pinimg.com/originals/4d/19/0f/4d190f1307b35e7155bb4b898e19d545.jpg'] }) - } -};
\ No newline at end of file diff --git a/src/commands/fun/yearfact.ts b/src/commands/fun/yearfact.ts deleted file mode 100644 index 8448efc..0000000 --- a/src/commands/fun/yearfact.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import axios from 'axios' -import emoji from 'emoji-random' - -module.exports = class DayFactFun extends Command { - constructor(client) { - super(client, { - name: 'yearfact', - aliases: [ - 'year-fact', - 'yearfacts', - 'year-facts' - ], - group: 'fun', - memberName: 'yearfact', - description: 'Grabs facts about a specified year.', - args: [ - { - key: 'year', - prompt: 'What year would you like to get facts for?', - type: 'integer', - default: 'random' - } - ], - examples: ['uwu!yearfact', 'uwu!yearfact 2012'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage, { year }) { - const fact = await axios.get(`http://numbersapi.com/${year}/year`).catch(err => { - console.log(err) - msg.reply('Woops, here was an error with the (http://numbersapi.com) API. ' + emoji.random()) - }) - msg.reply(fact.data) - } -};
\ No newline at end of file diff --git a/src/commands/fun/yomomma.ts b/src/commands/fun/yomomma.ts deleted file mode 100644 index c0b1743..0000000 --- a/src/commands/fun/yomomma.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import axios from 'axios' -import { MessageEmbed } from 'discord.js'; -import emoji from 'emoji-random' - -module.exports = class YoMommaFun extends Command { - constructor(client) { - super(client, { - name: 'yomomma', - aliases: ['yo-momma', 'yomama', 'mum', 'mam', 'mom'], - group: 'fun', - memberName: 'yomomma', - description: 'Gives you a yo momma joke.', - examples: ['uwu!yomomma'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - async run(msg: CommandoMessage) { - try { - let text = await (await axios.get('http://api.yomomma.info/')).data.joke - msg.reply(`${text}` + ' ' + emoji.random()) - } catch (err) { - console.log(err) - msg.reply('Woops, there was an error with the (https://yomomma.info/) API. ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/minecraft/getbody.ts b/src/commands/minecraft/getbody.ts deleted file mode 100644 index 072a9d2..0000000 --- a/src/commands/minecraft/getbody.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class GetBodyMinecraft extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'getbody', - aliases: [ - 'get-body', - 'getmcbody', - 'get-mc-body', - 'gmcb' - ], - group: 'minecraft', - memberName: 'getbody', - description: 'Grabs a specified player\'s body from Minecraft.', - examples: [ - 'uwu!getbody notch', - 'uwu!gmcb sin' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUsername', - prompt: 'What is the account name of the user?', - type: 'string' - } - ] - }); - } - async run(msg: CommandoMessage, { uUsername }: any) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setAuthor(uUsername, `https://minotar.net/body/${encodeURIComponent(uUsername)}`) - .setImage(`https://minotar.net/body/${encodeURIComponent(uUsername)}`) - - console.debug(`URL for ${uUsername}:`, emb.image?.url) - return msg.reply(emb) - } -};
\ No newline at end of file diff --git a/src/commands/minecraft/getface.ts b/src/commands/minecraft/getface.ts deleted file mode 100644 index 7565d68..0000000 --- a/src/commands/minecraft/getface.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class GetFaceMinecraft extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'getface', - aliases: [ - 'get-face', - 'getmcface', - 'get-mc-face', - 'gmcf' - ], - group: 'minecraft', - memberName: 'getface', - description: 'Grabs a specified player\'s face from Minecraft.', - examples: [ - 'uwu!getface notch', - 'uwu!gmcf sin' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUsername', - prompt: 'What is the account name of the user?', - type: 'string' - } - ] - }); - } - async run(msg: CommandoMessage, { uUsername }: any) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`) - .setImage(`https://minotar.net/helm/${encodeURIComponent(uUsername)}`) - return msg.reply(emb) - } -};
\ No newline at end of file diff --git a/src/commands/minecraft/gethead.ts b/src/commands/minecraft/gethead.ts deleted file mode 100644 index 4ae61e2..0000000 --- a/src/commands/minecraft/gethead.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class GetHeadMinecraft extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'gethead', - aliases: [ - 'get-head', - 'getmchead', - 'get-mc-head', - 'gmch' - ], - group: 'minecraft', - memberName: 'gethead', - description: 'Grabs a specified player\'s head from Minecraft.', - examples: [ - 'uwu!gethead notch', - 'uwu!gmch sin' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUsername', - prompt: 'What is the account name of the user?', - type: 'string' - } - ] - }); - } - async run(msg: CommandoMessage, { uUsername }: any) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`) - .setImage(`https://minotar.net/cube/${encodeURIComponent(uUsername)}/100.png`) - return msg.reply(emb) - } -};
\ No newline at end of file diff --git a/src/commands/minecraft/getminime.ts b/src/commands/minecraft/getminime.ts deleted file mode 100644 index c06c7aa..0000000 --- a/src/commands/minecraft/getminime.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class GetMiniMeMinecraft extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'getminime', - aliases: [ - 'get-mini-me', - 'getmcminime', - 'get-mc-mini-me', - 'gmcmm' - ], - group: 'minecraft', - memberName: 'getminime', - description: 'Grabs a specified player\'s skin from Minecraft.', - examples: [ - 'uwu!getminime notch', - 'uwu!gmcmm sin false' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUsername', - prompt: 'What is the account name of the user?', - type: 'string' - }, - { - key: 'uTrans', - prompt: 'Would you like the background to be transparant? (yes or no)', - type: 'string', - default: true - } - ] - }); - } - async run(msg: CommandoMessage, { uUsername, uTrans }: any) { - console.debug('Transparency value:', uTrans) - - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setAuthor(uUsername, `http://minecraftskinavatar.com/customize?id=${encodeURIComponent(uUsername)}&source=minecraft`, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`) - .setFooter('[Provided by minecraftskinavatar.com](Provided by minecraftskinavatar.com)') - - if (uTrans) { - emb.setImage(`http://avatar.yourminecraftservers.com/avatar/trnsp/steve/tall/128/${encodeURIComponent(uUsername)}.png`) - } else { - emb.setImage(`http://avatar.yourminecraftservers.com/avatar/rad/steve/tall/128/${encodeURIComponent(uUsername)}.png`) - } - - console.debug(`Image URL for ${uUsername}: ${emb.image?.url}`) - return msg.reply(emb) - } -};
\ No newline at end of file diff --git a/src/commands/minecraft/getskin.ts b/src/commands/minecraft/getskin.ts deleted file mode 100644 index 137e9b0..0000000 --- a/src/commands/minecraft/getskin.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class GetSkinMinecraft extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'getskin', - aliases: [ - 'get-skin', - 'getmcskin', - 'get-mc-skin', - 'gmcs' - ], - group: 'minecraft', - memberName: 'getskin', - description: 'Grabs a specified player\'s skin from Minecraft.', - examples: [ - 'uwu!getskin notch', - 'uwu!gmcs sin' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUsername', - prompt: 'What is the account name of the user?', - type: 'string' - } - ] - }); - } - async run(msg: CommandoMessage, { uUsername }: any) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`) - .setImage(`https://minotar.net/skin/${encodeURIComponent(uUsername)}`) - return msg.reply(emb) - } -};
\ No newline at end of file diff --git a/src/commands/minecraft/minecraftserverstatus.ts b/src/commands/minecraft/minecraftserverstatus.ts deleted file mode 100644 index 706b43f..0000000 --- a/src/commands/minecraft/minecraftserverstatus.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -import axios from 'axios' -//@ts-ignore no types -import emoji from 'emoji-random' - -module.exports = class MinecraftServerMinecraft extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'minecraftserverstatus', - aliases: [ - 'mcserverstatus', - 'minecraft-server-status', - 'mcss' - ], - group: 'utility', - memberName: 'minecraftserverstatus', - description: 'Grabs you the server status of a Minecraft server.', - examples: [ - 'uwu!minecraftserverstatus', - 'uwu!mcss' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'ip', - prompt: 'What is the IP of the server?', - type: 'string' - }, - { - key: 'port', - prompt: 'What is the port of the server?', - type: 'integer', - default: '25565', - max: 65535, - min: 1 - } - ] - }); - } - async run(msg: CommandoMessage, { ip, port }: any) { - const res = ( - await axios(`https://mcapi.us/server/status?ip=${ip}&port=${port}`).catch(err => { - console.error(err) - return msg.reply('Woops, an error has occured. ' + emoji.random()) - }) - //@ts-ignore yes this exists... - ).data - - if (res.status !== 'success') { - return msg.reply('Woops, there was an error with your request. ' + emoji.random()) - } - - let emb = new MessageEmbed() - .setTitle(ip) - .setTimestamp(res.last_updated) - .setColor(0xFFCC4D) - - if (res.online) { - emb.addField('Server Status', 'Currentaly online.', true) - emb.addField('Version', res.server.name, true) - emb.addField('Members', `${res.players.now}/${res.players.max}`, true) - emb.addField('MOTD', `\`\`\`${res.motd}\`\`\``, true) - } else if (res.last_online) { - emb.addField('Server Status', `Offline. Last seen ${new Date(res.last_online)}`, true) - } else { - emb.addField('Server Status', 'Offline. Never seen online before.', true) - } - return msg.reply(emb) - } -};
\ No newline at end of file diff --git a/src/commands/moderation/addrole.ts b/src/commands/moderation/addrole.ts deleted file mode 100644 index 015775b..0000000 --- a/src/commands/moderation/addrole.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore this has no types -import emoji from 'emoji-random' - -module.exports = class AddRoleModeration extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'addrole', - aliases: ['roleadd'], - group: 'moderation', - memberName: 'addrole', - description: '**[Disabled]** Adds a role to a specific user.', - // args: [ - // { - // key: 'userID', - // prompt: 'Who would you like to add the role to? (@someone or myself)', - // type: 'string' - // }, - // { - // key: 'roleID', - // prompt: 'What role would you like to add?', - // type: 'string' - // } - // ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - examples: [ - 'uwu!addrole @CoolRole', - 'uwu!addrole @sin#1337 @CoolRole', - 'uwu!roleadd @sin#1337', - 'uwu!roleadd @sin#1337 @CoolerRole' - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - run(msg: CommandoMessage, { userID, roleID }: any) { - return msg.reply(`Command disabled. ${emoji.random()}`) - // let role = roleID - // console.log('role:', role) - // let member = userID - // console.log('member:', member) - // if (role) { - // if (msg.guild.member(member)?.roles.cache.some(role)) { - // msg.reply(member + ' already has that role! ' + emoji.random()) - // } else { - // msg.guild.member(member)?.roles.add(role).catch(err => console.log(err)) - // msg.reply(`The role **${role}** has been added to **${userID}**.`) - // } - // } else { - // msg.reply('The role or user is either non-existant or you might\'ve mispelled it.') - // } - } -};
\ No newline at end of file diff --git a/src/commands/moderation/ban.ts b/src/commands/moderation/ban.ts deleted file mode 100644 index 6bf6168..0000000 --- a/src/commands/moderation/ban.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore this has no types -import emoji from 'emoji-random' - -module.exports = class BanModeration extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'ban', - aliases: ['banuser', 'ban-user'], - group: 'moderation', - memberName: 'ban', - description: 'Ban someone.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - examples: [ - 'uwu!ban @sin#1337', - 'uwu!banuser @sin#1337', - 'uwu!ban-user @sin#1337' - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - //@ts-ignore this is not promsise based - run(msg: CommandoMessage) { - let userID = msg.mentions.members?.first() - if (!userID?.id) { - return msg.reply('No member was mentioned. ' + emoji.random()) - } else if (userID?.id == msg.author.id) { - return msg.reply('You cannot ban yourself.' + emoji.random()) - } else if (userID?.id == this.client.user?.id) { - return msg.reply('Not funny. ' + emoji.random()) - } else if (!msg.guild.member(userID.id)) { - return msg.reply('Member does not exist in server.') - } else { - msg.guild.members.ban(userID.id) - return msg.say(`**${userID}** has been banned!`).then(m => { - //@ts-ignore yes this exists - m.react('🇫'); - }) - } - } -};
\ No newline at end of file diff --git a/src/commands/moderation/clear.ts b/src/commands/moderation/clear.ts deleted file mode 100644 index c162ac4..0000000 --- a/src/commands/moderation/clear.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class ClearModeration extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'clear', - aliases: ['delete', 'del', 'c'], - group: 'moderation', - 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' - ], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'] - }); - } - //@ts-ignore this is not promise based - async run(msg: CommandoMessage, { deleteAmount }: any) { - if (deleteAmount >= 100) { - deleteAmount == 100; - msg.author.send(`Due to Discord API limitations, your request has been rounded down to **100**. ${emoji.random()}`) - } - if (msg.member.hasPermission('MANAGE_MESSAGES')) { - if (!deleteAmount) { - return msg.reply('You haven\'t specified an amount of messages which should be deleted. ' + emoji.random()).then(deleteNotificationMessage => { - //@ts-ignore this exists - deleteNotificationMessage.delete({ timeout: 2000 }); - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }); - } else if (isNaN(deleteAmount)) { - return msg.reply('The amount parameter isn\'t a number. ' + emoji.random()).then(deleteNotificationMessage => { - //@ts-ignore this exists - deleteNotificationMessage.delete({ timeout: 2000 }); - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }); - } else if (deleteAmount > 100) { - return msg.reply('You can\'t delete more than 100 messages at once. ' + emoji.random()).then(deleteNotificationMessage => { - //@ts-ignore this exists - deleteNotificationMessage.delete({ timeout: 2000 }); - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }); - } else if (deleteAmount < 1) { - return msg.reply('You have to delete at least 1 message. ' + emoji.random()).then(deleteNotificationMessage => { - //@ts-ignore this exists - deleteNotificationMessage.delete({ timeout: 2000 }); - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }); - } - /*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 - // why the hell did i put this msg here lol, its 07:56 on 2020/04/27 and i woke up at 6am and i dont really know - // why i put this msg here lol, i am on v12 so that msg mustve been a while ago lol - //@ts-ignore this exists - msg.channel.bulkDelete(messages); - }); - return msg.reply('It\'s been deleted ~uwu ' + emoji.random()).then(deleteNotificationMessage => { - //@ts-ignore this exists - deleteNotificationMessage.delete({ timeout: 2000 }); - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }); - } - } else { - return msg.reply('Insufficent permsissions. ' + emoji.random()); - } - } -};
\ No newline at end of file diff --git a/src/commands/moderation/kick.ts b/src/commands/moderation/kick.ts deleted file mode 100644 index c3e57a2..0000000 --- a/src/commands/moderation/kick.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore this has no types -import emoji from 'emoji-random' - -module.exports = class KickModeration extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'kick', - aliases: ['kickuser', 'kick-user'], - group: 'moderation', - memberName: 'kick', - description: 'Kick someone.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - examples: [ - 'uwu!kick @sin#1337', - 'uwu!kickuser @sin#1337', - 'uwu!kick-user @sin#1337' - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - //@ts-ignore this aint async - run(msg: CommandoMessage) { - let userID = msg.mentions.members?.first() - if (!userID?.id) { - return msg.reply('No member was mentioned. ' + emoji.random()) - } else if (userID?.id == msg.author.id) { - return msg.reply('You cannot kick yourself.' + emoji.random()) - } else if (userID?.id == this.client.user?.id) { - return msg.reply('Not funny. ' + emoji.random()) - } else if (!msg.guild.member(userID.id)) { - return msg.reply('Member does not exist in server.') - } else { - //@ts-ignore stupid typescript error this exists - msg.guild.members.prune(userID.id) - return msg.say(`**${userID}** has been kicked!`).then(m => { - //@ts-ignore this exists - m.react('🇫'); - }) - } - } -};
\ No newline at end of file diff --git a/src/commands/moderation/nickname.ts b/src/commands/moderation/nickname.ts deleted file mode 100644 index 910f7ca..0000000 --- a/src/commands/moderation/nickname.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore this has no types -import emoji from 'emoji-random' - -module.exports = class NicknameModeration extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'nickname', - aliases: ['nick'], - group: 'moderation', - memberName: 'nickname', - description: 'Change someones nickname', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'CHANGE_NICKNAME', 'MANAGE_NICKNAMES'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'CHANGE_NICKNAME', 'MANAGE_NICKNAMES'], - examples: [ - 'uwu!nickname @sin#1337 loser', - 'uwu!nick @sin#1337 loser' - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true, - args: [ - { - key: 'user', - prompt: 'Which users nickname would you like to change?', - type: 'string' - }, - { - key: 'nick', - prompt: 'What would you like to change their nickname to?', - type: 'string' - } - ] - }); - } - //@ts-ignore this aint async - run(msg: CommandoMessage, { nick, user }: any) { - msg.delete() - if (msg.mentions.users) { - user = msg.mentions.users.first()?.id - if (nick) { - msg.guild.members.cache.get(user)?.setNickname(nick) - return msg.reply(`<@${user}>'s nickname has been changed to **${nick}**! ${emoji.random()}`).then(m => m.delete({ timeout: 3000 })) - } else { - return msg.reply(`No nickname was provided! ${emoji.random()}`) - } - } else { - return msg.reply(`No valid member was mentioned! ${emoji.random()}`) - } - } -};
\ No newline at end of file diff --git a/src/commands/moderation/removerole.ts b/src/commands/moderation/removerole.ts deleted file mode 100644 index e8a950c..0000000 --- a/src/commands/moderation/removerole.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class RemoveRoleModeration extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'removerole', - aliases: ['roleremove'], - group: 'moderation', - memberName: 'removerole', - description: '**[Disabled]** Removes a role from a specific user.', - // args: [ - // { - // key: 'userID', - // prompt: 'Who would you like to remove the role from? (@someone or myself)', - // type: 'string' - // }, - // { - // key: 'roleID', - // prompt: 'What role would you like to remove?', - // type: 'string' - // } - // ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'BAN_MEMBERS'], - examples: [ - 'uwu!removerole @CoolRole', - 'uwu!removerole @sin#1337 @CoolRole', - 'uwu!roleremove @sin#1337', - 'uwu!roleremove @sin#1337 @CoolerRole' - ] - }); - } - run(msg: CommandoMessage, { userID, roleID }: any) { - return msg.reply(`Command disabled. ${emoji.random()}`) - // let role = roleID - // console.log('role:', role) - // let member = userID - // console.log('member:', member) - // if (role) { - // if (msg.guild.member(member)?.roles.cache.some(role)) { - // msg.reply(member + ' already has that role! ' + emoji.random()) - // } else { - // msg.guild.member(member)?.roles.remove(role).catch(err => console.log(err)) - // msg.reply(`The role **${role}** has been remove from **${userID}**.`) - // } - // } else { - // msg.reply('The role or user is either non-existant or you might\'ve mispelled it.') - // } - } -};
\ No newline at end of file diff --git a/src/commands/nsfw/danbooru.ts b/src/commands/nsfw/danbooru.ts deleted file mode 100644 index 065c01b..0000000 --- a/src/commands/nsfw/danbooru.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -import axios from 'axios' - -export default class DanbooruNSFW extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'danbooru', - group: 'nsfw', - memberName: 'danbooru', - description: 'Danbooru.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!danbooru', - 'uwu!danbooru minecraft' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'tTags', - prompt: 'What tag(s) would you like?', - type: 'string', - default: '' - } - ], - nsfw: true - }); - } - async run(msg: CommandoMessage, { tTags }: any) { - const tags = await tTags.trim().toLowerCase() - console.log(tags) - const blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat', 'poop', 'kid', 'shit', 'turd', 'feces', 'excrement', 'excrete']; - - if (tags) { - if (blacklist.includes(tags)) { - return msg.reply('Blacklisted word was used! ⛔') - } - } - - const res = await axios.get(`https://danbooru.donmai.us/posts.json?limit=200&tags=${tags}+-rating:safe`) - .catch(error => console.log(error)) - - //@ts-ignore yes data exists - const randomInt = Math.floor(Math.random() * res.data.length) - - //@ts-ignore yes data exists - if (blacklist.includes(res.data[randomInt].tags)) { - return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔') - } - - //@ts-ignore yes all code paths return a value - let getRating = (rating: any) => { - if (rating === 's') { - return 'Safe' - } if (rating === 'q') { - return 'Questionable' - } if (rating === 'e') { - return 'Explicit' - } if (rating === 'u') { - return 'Unrated' - } - } - - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle(`Danbooru - ${!tags ? 'Random Image' : tags}`) - //@ts-ignore yes data exists - .setDescription(`[Source](http://danbooru.donmai.us/posts/${res.data[randomInt].id})\n\nFixed bug where responses were being evaluated out of 100 instead of data length!`) - //@ts-ignore yes data exists - .setImage(res.data[randomInt].file_url) - .setTimestamp(new Date()) - //@ts-ignore yes data exists - .setFooter(`Score: ${res.data[randomInt].score} | Rating: ${getRating(res.data[randomInt].rating)}`, msg.author.avatarURL()) - return msg.say(emb); - } -}
\ No newline at end of file diff --git a/src/commands/nsfw/gelbooru.ts b/src/commands/nsfw/gelbooru.ts deleted file mode 100644 index a9890fa..0000000 --- a/src/commands/nsfw/gelbooru.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -import axios from 'axios' - -export default class GelbooruNSFW extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'gelbooru', - group: 'nsfw', - memberName: 'gelbooru', - description: 'Gelbooru.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!gelbooru', - 'uwu!gelbooru minecraft' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'tTags', - prompt: 'What tag(s) would you like?', - type: 'string', - default: '' - } - ], - nsfw: true - }); - } - async run(msg: CommandoMessage, { tTags }: any) { - const tags = await tTags.trim() - const blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat', 'poop', 'kid', 'shit', 'turd', 'feces', 'excrement', 'excrete']; - - if (tags) { - if (blacklist.includes(tags.toLowerCase())) { - return msg.reply('Blacklisted word was used! ⛔') - } - } - - const res = await axios.get(`https://gelbooru.com/index.php?page=dapi&s=post&q=index&limit=100&tags=${tags}+-rating:safe&json=1`) - .catch(error => console.log(error)) - - //@ts-ignore yes data exists - const randomInt = Math.floor(Math.random() * res.data.length) - - //@ts-ignore yes data exists - if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) { - return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔') - } - - - //@ts-ignore yes all code paths return a value - let getRating = (rating: any) => { - if (rating === 's') { - return 'Safe' - } if (rating === 'q') { - return 'Questionable' - } if (rating === 'e') { - return 'Explicit' - } if (rating === 'u') { - return 'Unrated' - } - } - - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle(`Gelbooru - ${!tags ? 'Random Image' : tags}`) - //@ts-ignore yes data exists - .setDescription(`[Source](https://gelbooru.com/index.php?page=post&s=view&id=${res.data[randomInt].id})\n\nFixed bug where responses were being evaluated out of 100 instead of data length!`) - //@ts-ignore yes data exists - .setImage(res.data[randomInt].file_url) - .setTimestamp(new Date()) - //@ts-ignore yes data exists - .setFooter(`Score: ${res.data[randomInt].score} | Rating: ${getRating(res.data[randomInt].rating)}`, msg.author.avatarURL()) - return msg.say(emb); - } -}
\ No newline at end of file diff --git a/src/commands/nsfw/rule34.ts b/src/commands/nsfw/rule34.ts deleted file mode 100644 index 568b07a..0000000 --- a/src/commands/nsfw/rule34.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -import axios from 'axios' - -export default class Rule34NSFW extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'rule34', - aliases: ['r34'], - group: 'nsfw', - memberName: 'rule34', - description: 'Rule34.', - throttling: { - usages: 5, - duration: 30 - }, - examples: [ - 'uwu!rule34', - 'uwu!rule34 minecraft' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'tTags', - prompt: 'What tag(s) would you like?', - type: 'string', - default: '' - } - ], - nsfw: true - }); - } - async run(msg: CommandoMessage, { tTags }: any) { - const tags = await tTags.trim() - const blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat', 'poop', 'kid', 'shit', 'turd', 'feces', 'excrement', 'excrete']; - - if (tags) { - if (blacklist.includes(tags.toLowerCase())) { - return msg.reply('Blacklisted word was used! ⛔') - } - } - - const res = await axios.get(`http://rule34.xxx/index.php?page=dapi&s=post&q=index&limit=100&tags=${tags}+-rating:safe&json=1`) - .catch(error => console.log(error)) - - //@ts-ignore yes data exists - const randomInt = Math.floor(Math.random() * res.data.length) - - //@ts-ignore yes data exists - if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) { - return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔') - } - - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle(`Rule34 - ${!tags ? 'Random Image' : tags}`) - //@ts-ignore yes data exists - .setDescription(`[Source](https://rule34.xxx/index.php?page=post&s=view&id=${res.data[randomInt].id})\n\nFixed bug where responses were being evaluated out of 100 instead of data length!`) - //@ts-ignore yes data exists - .setImage(`https://rule34.xxx/images/${res.data[randomInt].directory}/${res.data[randomInt].image}`) - .setTimestamp(new Date()) - //@ts-ignore yes data exists - .setFooter(`Score: ${res.data[randomInt].score} | Rating: ${res.data[randomInt].rating}`, msg.author.avatarURL()) - return msg.say(emb); - } -}
\ No newline at end of file diff --git a/src/commands/roleplay/blush.ts b/src/commands/roleplay/blush.ts deleted file mode 100644 index 5abdb26..0000000 --- a/src/commands/roleplay/blush.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class BlushRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'blush', - group: 'roleplay', - memberName: 'blush', - description: 'Blush at a specified user.', - examples: ['uwu!blush @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to blush at?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** blushes at **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/celebrate.ts b/src/commands/roleplay/celebrate.ts deleted file mode 100644 index d5b012c..0000000 --- a/src/commands/roleplay/celebrate.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class CelebrateRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'celebrate', - group: 'roleplay', - memberName: 'celebrate', - description: 'Celebrate.', - examples: ['uwu!celebrate'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - run(msg: CommandoMessage) { - msg.delete(); - return msg.say(`***${msg.author.username}** celebrates.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/eat.ts b/src/commands/roleplay/eat.ts deleted file mode 100644 index 8af76d5..0000000 --- a/src/commands/roleplay/eat.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class EatRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'eat', - group: 'roleplay', - memberName: 'eat', - description: 'Eat.', - examples: ['uwu!eat'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - run(msg: CommandoMessage) { - msg.delete(); - return msg.say(`***${msg.author.username}** eats.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/fistbump.ts b/src/commands/roleplay/fistbump.ts deleted file mode 100644 index 129c89f..0000000 --- a/src/commands/roleplay/fistbump.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class FistBumpRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'fistbump', - aliases: ['fist-bump'], - group: 'roleplay', - memberName: 'fistbump', - description: 'Fist-bump a specified user.', - examples: ['uwu!fistbump @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to fist-bump?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** fist-bumps **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/highfive.ts b/src/commands/roleplay/highfive.ts deleted file mode 100644 index 28187ef..0000000 --- a/src/commands/roleplay/highfive.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class HighFiveRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'highfive', - aliases: ['high-five'], - group: 'roleplay', - memberName: 'highfive', - description: 'High-fave a specified user.', - examples: ['uwu!highfive @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to high-five?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** high-fives **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/holdhands.ts b/src/commands/roleplay/holdhands.ts deleted file mode 100644 index 88babdd..0000000 --- a/src/commands/roleplay/holdhands.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class HoldHandsRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'holdhands', - aliases: ['hold-hands', 'holdhand', 'hold-hand'], - group: 'roleplay', - memberName: 'holdhands', - description: 'Hold hands with a specified user.', - examples: ['uwu!holdhands @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to hold hands with?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** holds **${uUser.username}** hand.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/hug.ts b/src/commands/roleplay/hug.ts deleted file mode 100644 index f64d6d5..0000000 --- a/src/commands/roleplay/hug.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class HugRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'hug', - group: 'roleplay', - memberName: 'hug', - description: 'Hug a specified user.', - examples: ['uwu!hug @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to hug?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** hugs **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/inhale.ts b/src/commands/roleplay/inhale.ts deleted file mode 100644 index e302e2e..0000000 --- a/src/commands/roleplay/inhale.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class InhaleRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'inhale', - group: 'roleplay', - memberName: 'inhale', - description: 'Inhale a specified user.', - examples: ['uwu!inhale @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to inhale?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** inhales **${uUser.username}** but gained no abilities.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/kill.ts b/src/commands/roleplay/kill.ts deleted file mode 100644 index 809db32..0000000 --- a/src/commands/roleplay/kill.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class KillRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'kill', - group: 'roleplay', - memberName: 'kill', - description: 'Kill a specified user.', - examples: ['uwu!kill @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to kill?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** kills **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/kiss.ts b/src/commands/roleplay/kiss.ts deleted file mode 100644 index ab37cb5..0000000 --- a/src/commands/roleplay/kiss.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class KissRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'kiss', - group: 'roleplay', - memberName: 'kiss', - description: 'Kiss a specified user.', - examples: ['uwu!kiss @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to kiss?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** kisses **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/pat.ts b/src/commands/roleplay/pat.ts deleted file mode 100644 index 923c670..0000000 --- a/src/commands/roleplay/pat.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class PatRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'pat', - group: 'roleplay', - memberName: 'pat', - description: 'Pat a specified user.', - examples: ['uwu!pat @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to pat?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** pats **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/poke.ts b/src/commands/roleplay/poke.ts deleted file mode 100644 index 227e2b6..0000000 --- a/src/commands/roleplay/poke.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class PokeRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'poke', - group: 'roleplay', - memberName: 'poke', - description: 'Poke a specified user.', - examples: ['uwu!poke @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to poke?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** pokes **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/punch.ts b/src/commands/roleplay/punch.ts deleted file mode 100644 index e8a59a6..0000000 --- a/src/commands/roleplay/punch.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class PunchRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'punch', - group: 'roleplay', - memberName: 'punch', - description: 'Punch a specified user.', - examples: ['uwu!punch @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to punch?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** punches **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/slap.ts b/src/commands/roleplay/slap.ts deleted file mode 100644 index 16a52b2..0000000 --- a/src/commands/roleplay/slap.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class SlapRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'slap', - group: 'roleplay', - memberName: 'slap', - description: 'Slap a specified user.', - examples: ['uwu!slap @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to slap?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** slaps **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/sleep.ts b/src/commands/roleplay/sleep.ts deleted file mode 100644 index 3b5c5da..0000000 --- a/src/commands/roleplay/sleep.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class SleepRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'sleep', - group: 'roleplay', - memberName: 'sleep', - description: 'Sleep.', - examples: ['uwu!sleep'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - run(msg: CommandoMessage) { - msg.delete(); - return msg.say(`***${msg.author.username}** falls asleep.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/wakeup.ts b/src/commands/roleplay/wakeup.ts deleted file mode 100644 index 37667a6..0000000 --- a/src/commands/roleplay/wakeup.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class WakeUpRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'wakeup', - aliases: ['wake-up'], - group: 'roleplay', - memberName: 'wakeup', - description: 'Wake up.', - examples: ['uwu!wakeup'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - run(msg: CommandoMessage) { - msg.delete(); - return msg.say(`***${msg.author.username}** wakes up.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/wave.ts b/src/commands/roleplay/wave.ts deleted file mode 100644 index 779e56e..0000000 --- a/src/commands/roleplay/wave.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class WaveRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'wave', - group: 'roleplay', - memberName: 'wave', - description: 'Wave at a specified user.', - examples: ['uwu!wave @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to wave at?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** waves at **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/roleplay/wink.ts b/src/commands/roleplay/wink.ts deleted file mode 100644 index 480b9ab..0000000 --- a/src/commands/roleplay/wink.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class WinkRoleplay extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'wink', - group: 'roleplay', - memberName: 'wink', - description: 'Wink at a specified user.', - examples: ['uwu!wink @sin#1337'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to wink at?', - type: 'user' - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - msg.delete(); - return msg.say(`***${msg.author.username}** winks at **${uUser.username}**.*` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/server/goodbye.ts b/src/commands/server/goodbye.ts deleted file mode 100644 index b924654..0000000 --- a/src/commands/server/goodbye.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; -import Goodbye from '../../models/goodbye.js'; -import mongo from 'mongoose'; -import config from '../../config.json'; -mongo.connect(config['mongodburi'], { useNewUrlParser: true, useUnifiedTopology: true }) - -module.exports = class GoodbyeServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'goodbye', - group: 'server', - memberName: 'goodbye', - description: 'Allows you to set, change or delete a server goodbye message.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - examples: [ - 'uwu!goodbye', - 'uwu!goodbye set', - 'uwu!goodbye remove' - ], - args: [ - { - key: 'wType', - prompt: 'Would you like to set, remove or change the current goodbye channel?', - type: 'string', - default: '' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - //@ts-ignore doesnt matter if not all code paths return a value - async run(msg: CommandoMessage, { wType }: any) { - const goodbye = new Goodbye({ - _id: mongo.Types.ObjectId(), - username: msg.author.username, - userID: msg.author.id, - guildname: msg.guild.name, - guildID: msg.guild.id, - channelname: msg.channel, - channelID: msg.channel.id, - time: msg.createdAt - }) - const guildExist = await Goodbye.findOne({ guildID: msg.guild.id }) - - if (msg.member.hasPermission('MANAGE_GUILD')) { - Goodbye.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) { - console.log(error) - } else if (guild && wType == 'remove') { - await Goodbye.findOneAndDelete({ guildID: msg.guild.id }) - msg.say('The current goodbye channel has been unset! ' + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (!guild && wType == 'remove') { - msg.reply('There is no current goodbye channel set for this guild! ' + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (guild && wType == 'set') { - //@ts-ignore this exists - msg.reply(`There already is a goodbye channel set! It's ${guild.channelname}! ` + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (!guild && wType == 'set') { - await goodbye.save() - .then(result => console.log(result)) - .catch(err => console.log(err)) - - msg.reply(`The goodbye channel has been set to ${msg.channel}! ` + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (!guild) { - msg.reply('There is no current goodbye channel set for this guild! To set one, do `uwu!goodbye set` in the channel you want to set it in. ' + emoji.random()) - } else if (guild) { - //@ts-ignore this exists - msg.reply(`The current goodbye channel is ${guild.channelname}. ` + emoji.random()) - } - }) - } else { - return msg.reply('Insufficent permissions! ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/server/membercount.ts b/src/commands/server/membercount.ts deleted file mode 100644 index ef1d271..0000000 --- a/src/commands/server/membercount.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class MemberCountServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'membercount', - aliases: ['memberc', 'mcount', 'mc'], - group: 'server', - memberName: 'membercount', - description: 'Tells you how many members are in the current server.', - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true, - examples: [ - 'uwu!membercount', - 'uwu!memberc', - 'uwu!mcount', - 'uwu!mc' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - return 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/server/oldestmember.ts b/src/commands/server/oldestmember.ts deleted file mode 100644 index 974e476..0000000 --- a/src/commands/server/oldestmember.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { formatDistance, formatRelative } from 'date-fns' -//@ts-ignore no types -import { stripIndents } from 'common-tags' - -module.exports = class OldestMemberServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'oldestmember', - aliases: [ - 'oldest-member', - 'oldestuser', - 'oldest-user', - 'oldest' - ], - group: 'server', - memberName: 'oldestmember', - description: 'Checks who the oldest member on the server is.', - examples: ['uwu!oldestmember'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - guildOnly: true - }); - } - run(msg: CommandoMessage) { - const oldest = msg.guild.members - .cache.sort((member1, member2) => { - const timestamp1 = member1.user.createdTimestamp - const timestamp2 = member2.user.createdTimestamp - - if (timestamp1 > timestamp2) { - return 1 - } else if (timestamp1 < timestamp2) { - return -1 - } - return 0 - }).first()?.user; - - // TODO: - //@ts-ignore no idea why - const { createdAt } = oldest - const age = formatDistance(createdAt, new Date()) - const date = formatRelative(createdAt, new Date()) - return msg.reply(stripIndents`${oldest?.tag} is the oldest member in this server. - Their account is **${age}** old (created **${date}**).` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/server/poll.ts b/src/commands/server/poll.ts deleted file mode 100644 index 8eafcb9..0000000 --- a/src/commands/server/poll.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -//@ts-ignore no types -import emoji from 'emoji-random' -import config from '../../config.json' - -module.exports = class PollServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'poll', - group: 'server', - memberName: 'poll', - description: 'Make a poll.', - examples: ['uwu!poll am i cool?'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - guildOnly: true - }); - } - //@ts-ignore this is not async - run(msg: CommandoMessage) { - if (config['validUsers'].includes(msg.author.id)) { - let messageArray = msg.content.split(' ') - let args = messageArray.slice(1) - - if (!args || args.length < 1) { - return msg.reply(`No poll content was specified. ${emoji.random()}`) - } else { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setFooter('React to vote.') - .setDescription(args.join(' ')) - .setTitle(`Poll Created by ${msg.author.username} ${emoji.random()}`) - return msg.say(emb).then(fMsg => { - //@ts-ignore yes these exist - fMsg.react('✅') - //@ts-ignore yes these exist - fMsg.react('❎') - //@ts-ignore yes these exist - msg.delete({ timeout: 1000 }) - }) - } - } else { - msg.delete() - //@ts-ignore - return msg.reply(`Insufficent permissions! ${emoji.random()}`).then(m => m.delete({ timeout: 3000 })) - } - } -};
\ No newline at end of file diff --git a/src/commands/server/quotemessage.ts b/src/commands/server/quotemessage.ts deleted file mode 100644 index d421f68..0000000 --- a/src/commands/server/quotemessage.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -const tt = require('../../utils/truncateText.js') -import path from 'path' - -module.exports = class QuoteMessageServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'quotemessage', - aliases: [ - 'quote-message', - 'quotemsg', - 'quote-msg' - ], - group: 'fun', - memberName: 'quotemessage', - description: 'Quote a message from a text channel.', - examples: ['uwu!quotemessage 424936127154094080'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'mMsg', - prompt: 'What message would you like to quote?', - type: 'message', - label: 'message ID' - } - ] - }); - } - run(msg: CommandoMessage, { mMsg }: any) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setTimestamp(mMsg.createdAt) - .setAuthor(mMsg.author.tag, mMsg.author.avatarUrl) // TODO: fix avatarurl not working - .addFields([ - { - name: 'Channel', - value: mMsg.channel.toString() - }, - { - name: 'Message', - value: `[Jump to](https://discordapp.com/channels/${mMsg.guild.id}/${mMsg.channel.id}/${mMsg.id})` - } - ]) - - // check if msg had content - console.debug('Does the message have content:', Boolean(mMsg.content)) - if (mMsg.content) emb.setDescription(tt(mMsg.content)) - - // get img from msg - let messageImage - // valid img file extensions - const extensions = ['.png', '.jpg', '.jpeg', '.gif', '.webp'] - // regex for url to img - const linkRegex = /https?:\/\/(?:\w+\.)?[\w-]+\.[\w]{2,3}(?:\/[\w-_.]+)+\.(?:png|jpg|jpeg|gif|webp)/; - - // embed (that may or may not exist) with an img in it - const imageEmbed = mMsg.embeds.find((msgEmbed: { type: string; image: { url: string; }; }) => { - msgEmbed.type === 'rich' && msgEmbed.image && extensions.includes(path.extname(msgEmbed.image.url)) - }) - - if (imageEmbed) messageImage = imageEmbed.image.url - - // uploaded img - const attachment = mMsg.attachments.find((file: { url: string; }) => extensions.includes(path.extname(file.url))) - if (attachment) { - messageImage = attachment.url - } - - // if there wasnt an uploaded img check if there was a url to one - if (!messageImage) { - const linkMatch = mMsg.content.match(linkRegex) - if (linkMatch && extensions.includes(path.extname(linkMatch[0]))) { - [messageImage] = linkMatch - } - } - - // if there was an img, set embed image to it - if (messageImage) emb.setImage(messageImage) - - return msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/server/randommember.ts b/src/commands/server/randommember.ts deleted file mode 100644 index 5514561..0000000 --- a/src/commands/server/randommember.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' - -module.exports = class RandomMemberServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'randommember', - aliases: [ - 'random-member', - 'randomuser', - 'random-user', - 'someone', - '@someone', - ], - group: 'fun', - memberName: 'randommember', - description: 'Gets a random member from the server.', - examples: ['uwu!randommember'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'] - }); - } - run(msg: CommandoMessage) { - if (msg.channel.type === 'dm') { - const members = [this.client.user, msg.channel.recipient]; - return msg.reply(`I choose ${members[Math.floor(Math.random() * members.length)]?.username}! ${emoji.random()}`); - } - return msg.reply(`I choose ${msg.guild.members.cache.random().displayName}! ${emoji.random()}`); - } -};
\ No newline at end of file diff --git a/src/commands/server/roleinfo.ts b/src/commands/server/roleinfo.ts deleted file mode 100644 index cfd5d33..0000000 --- a/src/commands/server/roleinfo.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class RoleInfoServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'roleinfo', - aliases: [ - 'role-info' - ], - group: 'server', - memberName: 'roleinfo', - description: 'Gets information on a specified role.', - examples: ['uwu!roleinfo @Role'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - guildOnly: true, - args: [ - { - key: 'rRole', - prompt: 'What role would you like to get information on?', - type: 'role' - } - ] - }); - } - run(msg: CommandoMessage, { rRole }: any) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle(`${rRole.name} (${rRole.id})`) - .setTimestamp(rRole.createdAt) - .addFields([ - { - name: '🔢 Position', - value: `${rRole.position + 1} (raw position: ${rRole.rawPosition})` - }, - { - name: '**@** Mentionable', - value: rRole.mentionable ? 'Yes' : 'No' - }, - { - name: "💡 Display separately", - value: rRole.hoist ? "Yes" : "No" - }, - { - name: "👥 Members", - value: rRole.members.size - }, - { - name: "🔍 Color", - value: `Use ${msg.anyUsage(`color ${rRole.hexColor}`)}` - } - ]) - return msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/server/roles.ts b/src/commands/server/roles.ts deleted file mode 100644 index 4ab14fe..0000000 --- a/src/commands/server/roles.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -const tt = require('../../utils/truncateText.js') - -module.exports = class RolesServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'roles', - aliases: [ - 'list-roles', - 'listroles', - 'roles-list', - 'roleslist' - ], - group: 'server', - memberName: 'roles', - description: 'Lists all the roles on the current server.', - examples: ['uwu!roles'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - guildOnly: true - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle('All Roles') - .setDescription(tt( - msg.guild.roles - .cache.sort((role1, role2) => role2.position - role1.position) - .array() - .join(', ') - )) - return msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/server/server.ts b/src/commands/server/server.ts deleted file mode 100644 index 974a435..0000000 --- a/src/commands/server/server.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class ServerServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'server', - aliases: [ - 'serverinfo', - 'si', - 'server-info', - 'serverstats', - 'server-stats' - ], - group: 'server', - memberName: 'server', - description: 'Gives you information about the current server.', - throttling: { - usages: 5, - duration: 30 - }, - 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}`, true) - .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); - - return msg.say(embed); - } -};
\ No newline at end of file diff --git a/src/commands/server/welcome.ts b/src/commands/server/welcome.ts deleted file mode 100644 index 68b3046..0000000 --- a/src/commands/server/welcome.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; -import Welcome from '../../models/welcome.js'; -import mongo from 'mongoose'; -import config from '../../config.json'; -mongo.connect(config['mongodburi'], { useNewUrlParser: true, useUnifiedTopology: true }) - -module.exports = class WelcomeServer extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'welcome', - group: 'server', - memberName: 'welcome', - description: 'Allows you to set, change or delete a server welcome message.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - examples: [ - 'uwu!welcome', - 'uwu!welcome set', - 'uwu!welcome remove' - ], - args: [ - { - key: 'wType', - prompt: 'Would you like to set, remove or change the current welcome channel?', - type: 'string', - default: '' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - //@ts-ignore doesnt matter if not all code paths return - async run(msg: CommandoMessage, { wType }: any) { - const welcome = new Welcome({ - _id: mongo.Types.ObjectId(), - username: msg.author.username, - userID: msg.author.id, - guildname: msg.guild.name, - guildID: msg.guild.id, - channelname: msg.channel, - channelID: msg.channel.id, - time: msg.createdAt - }) - // const guildExist = await Welcome.findOne({ guildID: msg.guild.id }) - - if (msg.member.hasPermission('MANAGE_GUILD')) { - Welcome.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) { - return console.log(error) - } else if (guild && wType == 'remove') { - await Welcome.findOneAndDelete({ guildID: msg.guild.id }) - return msg.say('The current welcome channel has been unset! ' + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (!guild && wType == 'remove') { - return msg.reply('There is no current welcome channel set for this guild! ' + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (guild && wType == 'set') { - //@ts-ignore this exists - return msg.reply(`There already is a welcome channel set! It's ${guild.channelname}! ` + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (!guild && wType == 'set') { - await welcome.save() - .then(result => console.log(result)) - .catch(err => console.log(err)) - - return msg.reply(`The welcome channel has been set to ${msg.channel}! ` + emoji.random()).then(mnotif => { - //@ts-ignore this exists - mnotif.delete({ timeout: 2000 }) - //@ts-ignore this exists - msg.delete({ timeout: 2000 }) - }) - } else if (!guild) { - return msg.reply('There is no current welcome channel set for this guild! To set one, do `uwu!welcome set` in the channel you want to set it in. ' + emoji.random()) - } else if (guild) { - //@ts-ignore this exists - return msg.reply(`The current welcome channel is ${guild.channelname}. ` + emoji.random()) - } - }) - } else { - return msg.reply('Insufficent permissions! ' + emoji.random()) - } - } -};
\ No newline at end of file diff --git a/src/commands/user/age.ts b/src/commands/user/age.ts deleted file mode 100644 index 13ead86..0000000 --- a/src/commands/user/age.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { formatDistance, formatRelative } from 'date-fns' -//@ts-ignore no types -import { stripIndents } from 'common-tags' - -module.exports = class AgeUser extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'age', - aliases: [ - 'account-age', - 'accountage' - ], - group: 'user', - memberName: 'age', - description: 'Checks when a specified Discord account was created.', - examples: ['uwu!age', 'uwu!age @sin#1337'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'uUser', - prompt: 'Who\'s age would you like to check?', - type: 'user', - default: '' - } - ] - }); - } - async run(msg: CommandoMessage, { uUser }: any) { - const target = uUser || msg.author - const { createdAt } = target - return msg.reply(stripIndents`${formatDistance(createdAt, new Date())} old. - Created on ${formatRelative(createdAt, new Date())} ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/user/id.ts b/src/commands/user/id.ts deleted file mode 100644 index a4d974d..0000000 --- a/src/commands/user/id.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class IDUser extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'id', - group: 'user', - memberName: 'id', - description: 'Tells you the your ID.', - examples: ['uwu!id'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'uUser', - prompt: 'Which user would you like to get the ID of?', - type: 'user', - default: (msg: { author: any; }) => msg.author - } - ] - }); - } - run(msg: CommandoMessage, { uUser }: any) { - return msg.reply(`**${uUser.id === msg.author.id ? 'Your' : `${uUser.username}'s`}** ID is **${uUser.id}**. ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/user/nickname.ts b/src/commands/user/nickname.ts deleted file mode 100644 index 09cf717..0000000 --- a/src/commands/user/nickname.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class NickNameUser extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'nickname', - aliases: ['nick', 'name'], - group: 'user', - memberName: 'nickname', - description: 'Allows you to change your nickname in the current server.', - args: [ - { - key: 'userNick', - prompt: 'What would you like to change your nickname to?', - type: 'string' - } - ], - examples: [ - 'uwu!nickname sinny', - 'uwu!nick s1nical', - 'uwu!name s1n' - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - run(msg: CommandoMessage, { userNick }: any) { - msg.member.setNickname(userNick) - return msg.reply(`Your nickname has been changed to ${userNick}. ` + emoji.random()) - } -}; */
\ No newline at end of file diff --git a/src/commands/user/nitro.ts b/src/commands/user/nitro.ts deleted file mode 100644 index a54eb38..0000000 --- a/src/commands/user/nitro.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -//@ts-ignore no types -import { stripIndents } from 'common-tags' - -module.exports = class NitroUser extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'nitro', - group: 'user', - memberName: 'nitro', - description: 'This message can only be viewed by users with Discord Nitro.', - examples: ['uwu!nitro'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setAuthor('Discord Nitro', 'https://cdn.discordapp.com/emojis/314068430611415041.png', 'https://discordapp.com/nitro') - .setThumbnail('https://cdn.discordapp.com/emojis/314068430611415041.png') - .setTimestamp(new Date()) - .setDescription(stripIndents` - This message can only be viewed by users with Discord Nitro. - [Lift off with Discord Nitro today](https://discordapp.com/nitro)`) - return msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/user/pfp.ts b/src/commands/user/pfp.ts deleted file mode 100644 index ac26a26..0000000 --- a/src/commands/user/pfp.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Command, CommandoMessage } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -import emoji from 'emoji-random'; - -module.exports = class PFPServer extends Command { - constructor(client) { - super(client, { - name: 'pfp', - aliases: [ - 'profilepicture', - 'profile-picture', - 'profileimage', - 'profile-image', - 'avatar', - 'avi' - ], - group: 'user', - memberName: 'pfp', - description: 'Grabs the profile picture of a specified user.', - args: [ - { - key: 'userID', - prompt: 'Which user\'s profile picture would you like to grab?', - type: 'string' - } - ], - examples: ['uwu!pfp @sin#1337'], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - run(msg: CommandoMessage, { userID } ) { - userID = msg.mentions.users.first()?.id; - this.client.users.fetch(userID).then(user => { - let emb = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle(`${msg.mentions.users.first()?.username}'s Profile Picture ` + emoji.random()) - .setImage(user.avatarURL()) - msg.say(emb) - }) - } -};
\ No newline at end of file diff --git a/src/commands/utility/average.ts b/src/commands/utility/average.ts deleted file mode 100644 index 233236c..0000000 --- a/src/commands/utility/average.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -import { formatDistance, formatRelative } from 'date-fns' -//TODO: check if this has types -//@ts-ignore no types -import { stripIndents } from 'common-tags' - -module.exports = class AverageUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'average', - aliases: [ - 'average-number', - 'averagenumber', - 'average-num', - 'averagenum' - ], - group: 'utility', - memberName: 'average', - description: 'Gets the average of specified numbers.', - examples: ['uwu!average 10 20 30 40 50'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'nNum', - prompt: 'What\'s another number you would like to average?', - type: 'float', - label: 'number', - infinite: true - } - ] - }); - } - async run(msg: CommandoMessage, { nNum }: any) { // this is really a string - if (nNum.length < 2) msg.reply('Please provide **2** or more numbers.') - - const reducer = (accumulator: any, currentValue: any) => accumulator + currentValue - return msg.reply(`The average of the specified numbers is ${nNum.reduce(reducer) / nNum.length}.` + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/utility/csgoserverstatus.ts b/src/commands/utility/csgoserverstatus.ts deleted file mode 100644 index 5f0cfe7..0000000 --- a/src/commands/utility/csgoserverstatus.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -//@ts-ignore no @types -import gamedig from 'gamedig' -const gameDigHelper = require('../../utils/gameDigHelper.js') - -module.exports = class CSGOServerStatusUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'csgoserverstatus', - aliases: [ - 'counterstrikeserverstatus', - 'counter-strike-server-status', - 'counterstrikeglobaloffensiveserverstatus', - 'counter-strike-global-offensive-server-status', - 'csgoss' - ], - group: 'utility', - memberName: 'csgoserverstatus', - description: 'Grabs you the server status of a CS:GO server.', - examples: [ - 'uwu!csgoserverstatus', - 'uwu!csgoss' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'host', - prompt: 'What is the IP or host of the server?', - type: 'string' - }, - { - key: 'port', - prompt: 'What is the port of the server?', - type: 'integer', - default: '27015', - max: 65535, - min: 1 - } - ] - }); - } - async run(msg: CommandoMessage, { host, port }: any) { - try { - const options = { - host, - type: 'csgo', - } - - if (port) { - //@ts-ignore this get auto appended - options.port = port - } - - return gamedig - .query(options) - .then((data: any) => { - let emb = gameDigHelper(data) - emb.setColor(0xFFCC4D) - emb.setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/730/header.jpg') - return msg.replyEmbed(emb) - }) - .catch((err: string) => { - if (err === 'UDP Watchdog Timeout') return msg.reply('Server timed out, it\'s probably offline. ' + emoji.random()) - - console.error(err) - return msg.reply('Woops, an unknown error has occured. ' + emoji.random()) - }) - } finally { - return msg.channel.stopTyping() - } - } -};
\ No newline at end of file diff --git a/src/commands/utility/fortnitestats.ts b/src/commands/utility/fortnitestats.ts deleted file mode 100644 index 8eb65c4..0000000 --- a/src/commands/utility/fortnitestats.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -//@ts-ignore to types -import emoji from 'emoji-random' -import axios from 'axios' -import config from '../../config.json' -const platforms = ['pc', 'xbl', 'psn'] - -module.exports = class FortniteStatsUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'fortnitestats', - aliases: [ - 'fortnite-stats', - 'fortnitestatistics', - 'fortnite-statistics', - 'fnstats', - 'fn-stats', - 'fnstatistics', - 'fn-statistics', - 'fns', - 'fn-s', - 'fortnite' - ], - group: 'utility', - memberName: 'fortnitestats', - description: 'Grabs a specified player\'s Fortnite statistics.', - details: 'Available platforms are `pc` (PC), `xbp` (Xbox Live) and `psn` (Playstation Network).', - examples: [ - 'uwu!fortnitestats Frozen', - 'uwu!fns Sin' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'pPlatform', - prompt: 'What platform would you like to search on.', - type: 'string', - parse: (platform: string) => platform.toLowerCase(), - oneOf: platforms - }, - { - key: 'pUsername', - prompt: 'What user would you like to look up?', - type: 'string' - } - ] - }); - } - //TODO: - //@ts-ignore this is not async - async run(msg: CommandoMessage, { pPlatform, pUsername }: any) { - try { - const stats = ( - await axios - .get(`https://api.fortnitetracker.com/v1/profile/${pPlatform}/${pUsername}`, { - headers: { 'TRN-Api-Key': config.fortniteTrackerNetworkToken } - }) - .catch(err => { - console.error(err) - return msg.reply('Woops, There was an error with the (https://api.fortnitetracker.com) API. ' + emoji.random()) - }) - //@ts-ignore yes it does exist lmao - ).data - - if (stats.error === 'Player Not Found') { - return msg.reply('Specified player was not found on that platform. ' + emoji.random()) - } - - console.debug(`Result for ${pUsername} on ${pPlatform}:`, stats) - let emb = new MessageEmbed() - .setTitle(stats.epicUserHandle) - .setURL(`https://fortnitetracker.com/profile/${pPlatform}/${encodeURIComponent(pUsername)}`) - .setColor(0xFFCC4D) - .setFooter('Information providied by The Tracker Network.',) - - if (stats.lifeTimeStats[8] && stats.lifeTimeStats[9]) { - emb.addField("🏆 Wins", `${stats.lifeTimeStats[8].value} wins (${stats.lifeTimeStats[9].value})`) - } - - if (stats.lifeTimeStats[10] && stats.lifeTimeStats[11]) { - emb.addField( - "💀 Kills", - `${stats.lifeTimeStats[10].value} kills. ${stats.lifeTimeStats[11].value} K/D ratio.` - ); - } - - if (stats.lifeTimeStats[7]) { - emb.addField("🎮 Matches Played", stats.lifeTimeStats[7].value.toString()); - } - - if (stats.lifeTimeStats[6]) { - emb.addField("🔢 Score", stats.lifeTimeStats[6].value.toString()); - } - - return msg.replyEmbed(emb); - } finally { - return msg.channel.stopTyping() - } - } -};
\ No newline at end of file diff --git a/src/commands/utility/gmodserverstatus.ts b/src/commands/utility/gmodserverstatus.ts deleted file mode 100644 index 50c0e61..0000000 --- a/src/commands/utility/gmodserverstatus.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -//@ts-ignore no types -import gamedig from 'gamedig' -const gameDigHelper = require('../../utils/gameDigHelper.js') - -module.exports = class GModServerStatusUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'gmodserverstatus', - aliases: [ - 'g-mod-server-status', - 'garrysmodserverstatus', - 'garrys-mod-server-status', - 'gmodss' - ], - group: 'utility', - memberName: 'gmodserverstatus', - description: 'Grabs you the server status of a Garry\'s Mod server.', - examples: [ - 'uwu!gmodserverstatus', - 'uwu!gmodss' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'host', - prompt: 'What is the IP or host of the server?', - type: 'string' - }, - { - key: 'port', - prompt: 'What is the port of the server?', - type: 'integer', - default: '27015', - max: 65535, - min: 1 - } - ] - }); - } - async run(msg: CommandoMessage, { host, port }: any) { - try { - const options = { - host, - type: 'garrysmod' - } - - if (port) { - //@ts-ignore added auto - options.port = port - } - - return gamedig - .query(options) - .then((data: any) => { - let emb = gameDigHelper(data) - emb.setColor(0xFFCC4D) - emb.setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/4000/header.jpg') - return msg.replyEmbed(emb) - }) - .catch((err: string) => { - if (err === 'UDP Watchdog Timeout') return msg.reply('Server timed out, it\'s probably offline. ' + emoji.random()) - - console.error(err) - return msg.reply('Woops, an unknown error has occured. ' + emoji.random()) - }) - } finally { - return msg.channel.stopTyping() - } - } -};
\ No newline at end of file diff --git a/src/commands/utility/google.ts b/src/commands/utility/google.ts deleted file mode 100644 index 2c84bd5..0000000 --- a/src/commands/utility/google.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class GoogleUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'google', - group: 'utility', - memberName: 'google', - description: 'Googles something for you.', - examples: ['uwu!google sin'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'gTerm', - prompt: 'What would you like to search for?', - type: 'string' - } - ] - }); - } - run(msg: CommandoMessage, { gTerm }: any) { - let embed = new MessageEmbed() - .setTitle('**Google Search**') - .setColor(0xFFCC4D) - .addField('Searching Google for`' + gTerm + '`...', `[Click Here](https://google.com/search?q=${gTerm.replace(/ /g, '%20')})`) - return msg.say(embed) - } -};
\ No newline at end of file diff --git a/src/commands/utility/iss.ts b/src/commands/utility/iss.ts deleted file mode 100644 index 3bb4ff6..0000000 --- a/src/commands/utility/iss.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; -import request from 'node-superfetch' - -module.exports = class ISSUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'iss', - aliases: ['internationalspacestation', 'international-space-station'], - group: 'utility', - memberName: 'iss', - description: 'Tells you the current location of the International Space Station.', - examples: ['uwu!iss'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - async run(msg: CommandoMessage) { - try { - const { body } = await request.get('http://api.open-notify.org/iss-now.json') - //@ts-ignore this exists - const pos = body.iss_position - return msg.reply(`The ISS is currentaly at **${pos.latitude}, ${pos.longitude}**. ${emoji.random()}`) - } catch (err) { - return msg.reply(`Woops, an error has occurred: \`${err.message}\`. Try again later! ${emoji.random()}`) - } - } -};
\ No newline at end of file diff --git a/src/commands/utility/romannumeral.ts b/src/commands/utility/romannumeral.ts deleted file mode 100644 index 39b9320..0000000 --- a/src/commands/utility/romannumeral.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -//@ts-ignore no types -import romanize from 'romanize' - -module.exports = class RomanNumeralUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'romannumeral', - aliases: [ - 'roman-numeral', - 'romannumerals', - 'roman-numerals' - ], - group: 'utility', - memberName: 'romannumeral', - description: 'Converts a number to a roman numeral.', - examples: ['uwu!romannumeral 12'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'nNum', - prompt: 'What number would you like to translate', - type: 'integer', - min: 1 - } - ] - }); - } - run(msg: CommandoMessage, { nNum }: any) { - if (nNum === parseInt(nNum, 10)) { - msg.reply(romanize(nNum)) - } - - const back = (value: string) => { - let res = 0 - - const decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1] - const roman = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"] - for (let i = 0; i <= decimal.length; i++) { - while (value.indexOf(roman[i]) === 0) { - res += decimal[i] - value = value.replace(roman[i], '') - } - } - return res - } - - return msg.reply(back(nNum) + ' ' + emoji.random()) - } -};
\ No newline at end of file diff --git a/src/commands/utility/rustserverstatus.ts b/src/commands/utility/rustserverstatus.ts deleted file mode 100644 index dd91487..0000000 --- a/src/commands/utility/rustserverstatus.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' -//@ts-ignore no types -import gamedig from 'gamedig' -const gameDigHelper = require('../../utils/gameDigHelper.js') - -module.exports = class RustServerStatusUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'rustserverstatus', - aliases: [ - 'rust-ss', - 'rust-server-status', - 'rustss' - ], - group: 'utility', - memberName: 'rustserverstatus', - description: 'Grabs you the server status of a Rust server.', - examples: [ - 'uwu!rustserverstatus', - 'uwu!rustss' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'host', - prompt: 'What is the IP or host of the server?', - type: 'string' - }, - { - key: 'port', - prompt: 'What is the port of the server?', - type: 'integer', - default: '28015', - max: 65535, - min: 1 - } - ] - }); - } - run(msg: CommandoMessage, { host, port }: any) { - try { - const options = { - host, - type: 'rust' - } - - if (port) { - //@ts-ignore gets added - options.port = port - } - - return gamedig - .query(options) - .then((data: any) => { - msg.replyEmbed( - gameDigHelper(data) - .setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/252490/header.jpg') - .setColor(0xFFCC4D) - ) - }) - .catch((err: string) => { - if (err === 'UDP Watchdog Timeout') return msg.reply('Server timed out, it\'s probably offline. ' + emoji.random()) - - console.error(err) - return msg.reply('Woops, an unknown error has occured. ' + emoji.random()) - }) - } finally { - return msg.channel.stopTyping() - } - } -};
\ No newline at end of file diff --git a/src/commands/utility/starboundserverstatus.ts b/src/commands/utility/starboundserverstatus.ts deleted file mode 100644 index 0d8e319..0000000 --- a/src/commands/utility/starboundserverstatus.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -//@ts-ignore no types -import emoji from 'emoji-random' -//@ts-ignore no types -import gamedig from 'gamedig' -const gameDigHelper = require('../../utils/gameDigHelper.js') - -module.exports = class StarboundServerStatusUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'starboundserverstatus', - aliases: [ - 'starbound-ss', - 'starbound-server-status', - 'sbss' - ], - group: 'utility', - memberName: 'starboundserverstatus', - description: 'Grabs you the server status of a Starbound server.', - examples: [ - 'uwu!starboundserverstatus', - 'uwu!sbss' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'host', - prompt: 'What is the IP or host of the server?', - type: 'string' - }, - { - key: 'port', - prompt: 'What is the port of the server?', - type: 'integer', - default: '21025', - max: 65535, - min: 1 - } - ] - }); - } - run(msg: CommandoMessage, { host, port }: any) { - try { - const options = { - host, - type: 'starbound' - } - - if (port) { - //@ts-ignore added auto - options.port = port - } - - return gamedig - .query(options) - // this is auto'd so might not be good - .then((data: { raw: { numplayers: any; }; maxplayers: any; name: any; query: { duration: any; address: any; port: any; }; password: any; }) => { - const curr = data.raw.numplayers - const max = data.maxplayers - - return msg.replyEmbed( - new MessageEmbed() - .setTitle(data.name) - .setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/211820/header.jpg') - .setFooter(`Took ${data.query.duration} to complete.`) - .addFields([ - { - name: 'IP Address', - value: `${data.query.address} (port ${data.query.port})` - }, - { - name: "Online Players", - value: `${curr}/${max} (${Math.round((curr / max) * 100)}%)` - }, - { - name: "Password Required", - value: data.password ? "Yes" : "No" - } - ]) - .setColor(0xFFCC4D) - ) - }) - .catch((err: string) => { - if (err === 'UDP Watchdog Timeout') return msg.reply('Server timed out, it\'s probably offline. ' + emoji.random()) - - console.error(err) - return msg.reply('Woops, an unknown error has occured. ' + emoji.random()) - }) - } finally { - return msg.channel.stopTyping() - } - } -};
\ No newline at end of file diff --git a/src/commands/utility/time.ts b/src/commands/utility/time.ts deleted file mode 100644 index 78fe391..0000000 --- a/src/commands/utility/time.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random' - -module.exports = class TimeUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'time', - group: 'utility', - memberName: 'time', - description: 'Check the time.', - examples: ['uwu!time'], - throttling: { - usages: 5, - duration: 30 - }, - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - }); - } - run(msg: CommandoMessage) { - return msg.reply(`The time is currently **${new Date()}**. ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/utility/whois.ts b/src/commands/utility/whois.ts deleted file mode 100644 index d699e39..0000000 --- a/src/commands/utility/whois.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no types -import emoji from 'emoji-random'; -//@ts-ignore no types -import whois from 'whois'; - -module.exports = class WhoIsUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'whois', - group: 'utility', - memberName: 'whois', - description: 'Perform a whois on a specified or domain.', - examples: ['uwu!whois google.com'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - args: [ - { - key: 'host', - prompt: 'What host/ domain would you like to perform a who is on?', - type: 'string' - } - ] - }); - } - run(msg: CommandoMessage, { host }: any) { - //@ts-ignore doesnt matter if none is returned - return whois.lookup(host, (err: any, data: any) => { - if (err) return msg.reply(`Woops, there was an error getting that information for you! Please re-check your specified host/ domain. ${emoji.random()}`); - - msg.reply(`Check your DMs for the whois! ${emoji.random()}`); - return msg.author.send(data, { split: true }); - }); - } -};
\ No newline at end of file diff --git a/src/commands/utility/xorstr.ts b/src/commands/utility/xorstr.ts deleted file mode 100644 index 188ed75..0000000 --- a/src/commands/utility/xorstr.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; - -module.exports = class XorStrUtility extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'xorstr', - aliases: ['xor'], - group: 'utility', - memberName: 'xorstr', - description: 'Gives you Dexor\'s XorStr link and documentation.', - examples: ['uwu!xorstr', 'uwu!xor'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - return msg.reply('https://github.com/JustasMasiulis/xorstr'); - } -};
\ No newline at end of file diff --git a/src/commands/voice/abee.ts b/src/commands/voice/abee.ts deleted file mode 100644 index 2a838f0..0000000 --- a/src/commands/voice/abee.ts +++ /dev/null @@ -1,206 +0,0 @@ -//@ts-nocheck -import ytdl from 'ytdl-core'; -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -//@ts-ignore no types -import Youtube from 'simple-youtube-api'; -//const { youtubeAPI } = require('../../config.json'); -import config from '../../config.json'; -const youtube = new Youtube(config['yt-api-key']); -//@ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class ABeeVoice extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'abee', - aliases: ['a-bee'], - group: 'voice', - memberName: 'abee', - description: 'A bee 🐝', - guildOnly: true, - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - examples: ['uwu!abee', 'uwu!a-bee'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - async run(msg: CommandoMessage) { - const voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.say('Please join a channel and try again. ' + emoji.random()); - - const id = 'lvdnhWhQBdo'; - const video = await youtube.getVideoByID(id).catch(function () { - return msg.say( - 'There was a problem getting the video you provided. ' + emoji.random() - ); - }); - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // return msg.say("I don't support live streams!"); - // } - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // return msg.say('I cannot play videos longer than 1 hour'); - // } - // // can be uncommented if you want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - this.constructSongObj(video, voiceChannel) - ); - if ( - msg.guild.musicData.isPlaying == false || - typeof msg.guild.musicData.isPlaying == 'undefined' - ) { - msg.guild.musicData.isPlaying = true; - return this.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - return msg.say(`${video.title} added to queue. ` + emoji.random()); - } - - var that = this; - msg.channel - .awaitMessages( - function (msg) { - return (msg.content > 0 && msg.content < 6) || msg.content === 'exit'; - }, { - max: 1, - time: 60000, - errors: ['time'] - } - ) - .then(function (response) { - const videoIndex = parseInt(response.first().content); - if (response.first().content === 'exit') return songEmbed.delete(); - youtube - .getVideoByID(videos[videoIndex - 1].id) - .then(function (video) { - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // songEmbed.delete(); - // return msg.say("I don't support live streams!"); - // } - - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // songEmbed.delete(); - // return msg.say('I cannot play videos longer than 1 hour'); - // } - - // // can be uncommented if you don't want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // songEmbed.delete(); - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - that.constructSongObj(video, voiceChannel) - ); - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - if (songEmbed) { - songEmbed.delete(); - } - that.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say(`${video.title} added to queue. ` + emoji.random()); - } - }) - .catch(function () { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say( - 'An error has occured when trying to get the video ID from YouTube. ' + emoji.random() - ); - }); - }); - } - playSong(queue, msg: CommandoMessage) { - const classThis = this; // use classThis instead of 'this' because of lexical scope below - queue[0].voiceChannel - .join() - .then(function (connection) { - const dispatcher = connection - .play( - ytdl(queue[0].url, { - quality: 'highestaudio', - highWaterMark: 1024 * 1024 * 10 - }) - ) - .on('start', function () { - msg.guild.musicData.songDispatcher = dispatcher; - const volume = 100 / 100; - msg.guild.musicData.volume = volume; - dispatcher.setVolume(msg.guild.musicData.volume); - const videoEmbed = new MessageEmbed() - .setThumbnail(queue[0].thumbnail) - .setColor(0xF97DAE) - .addField('Now playing:', queue[0].title) - .addField('Duration:', queue[0].duration); - if (queue[1]) videoEmbed.addField('Next song:', queue[1].title); - msg.say(videoEmbed); - msg.guild.musicData.nowPlaying = queue[0]; - return queue.shift(); - }) - .on('finish', function () { - if (queue.length >= 1) { - return classThis.playSong(queue, msg); - } else { - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - } - }) - .on('error', function (e) { - msg.say('Can\'t play song. ' + emoji.random()); - console.error(e); - msg.guild.musicData.queue.length = 0; - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - }); - }) - .catch(function (e) { - console.error(e); - return msg.guild.me.voice.channel.leave(); - }); - } - constructSongObj(video, voiceChannel) { - let duration = this.formatDuration(video.duration); - if (duration == '00:00') duration = 'Live Stream'; - return { - url: `https://www.youtube.com/watch?v=${video.raw.id}`, - title: video.title, - duration, - thumbnail: video.thumbnails.high.url, - voiceChannel - }; - } - // prettier-ignore - formatDuration(durationObj) { - const duration = `${durationObj.hours ? (durationObj.hours + ':') : ''}${ - durationObj.minutes ? durationObj.minutes : '00' - }:${ - (durationObj.seconds < 10) - ? ('0' + durationObj.seconds) - : (durationObj.seconds - ? durationObj.seconds - : '00') - }`; - return duration; - } -};
\ No newline at end of file diff --git a/src/commands/voice/itemshop.ts b/src/commands/voice/itemshop.ts deleted file mode 100644 index ad5df7b..0000000 --- a/src/commands/voice/itemshop.ts +++ /dev/null @@ -1,213 +0,0 @@ -/* import ytdl from 'ytdl-core'; -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'; -const youtube = new Youtube(config['yt-api-key']); -import emoji from 'emoji-random'; - -module.exports = class ABeeVoice extends Command { - constructor(client) { - super(client, { - name: 'itemshop', - aliases: ['item-shop'], - group: 'voice', - memberName: 'itemshop', - description: 'Use code \'Frozen\' in the Fortnite item shop.', - guildOnly: true, - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - examples: ['uwu!itemshop', 'uwu!item-shop'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - async run(msg: CommandoMessage) { - const voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.say('Please join a channel and try again. ' + emoji.random()); - - const id = 'pBiI1hTwU7E'; - const video = await youtube.getVideoByID(id).catch(function () { - return msg.say( - 'There was a problem getting the video you provided. ' + emoji.random() - ); - }); - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // return msg.say("I don't support live streams!"); - // } - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // return msg.say('I cannot play videos longer than 1 hour'); - // } - // // can be uncommented if you want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - this.constructSongObj(video, voiceChannel) - ); - if ( - msg.guild.musicData.isPlaying == false || - typeof msg.guild.musicData.isPlaying == 'undefined' - ) { - msg.guild.musicData.isPlaying = true; - return this.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - return msg.say(`${video.title} added to queue. ` + emoji.random()); - } - - var that = this; - msg.channel - .awaitMessages( - function (msg) { - return (msg.content > 0 && msg.content < 6) || msg.content === 'exit'; - }, { - max: 1, - time: 60000, - errors: ['time'] - } - ) - .then(function (response) { - const videoIndex = parseInt(response.first().content); - if (response.first().content === 'exit') return songEmbed.delete(); - youtube - .getVideoByID(videos[videoIndex - 1].id) - .then(function (video) { - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // songEmbed.delete(); - // return msg.say("I don't support live streams!"); - // } - - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // songEmbed.delete(); - // return msg.say('I cannot play videos longer than 1 hour'); - // } - - // // can be uncommented if you don't want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // songEmbed.delete(); - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - that.constructSongObj(video, voiceChannel) - ); - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - if (songEmbed) { - songEmbed.delete(); - } - that.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - if (songEmbed) { - songEmbed.delete(); - } - msg.say(`${video.title} added to queue. ` + emoji.random()); - return; - } - }) - .catch(function () { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say( - 'An error has occured when trying to get the video ID from Youtube.' + emoji.random() - ); - }); - }); - } - playSong(queue, msg: CommandoMessage) { - const classThis = this; // use classThis instead of 'this' because of lexical scope below - queue[0].voiceChannel - .join() - .then(function (connection) { - const dispatcher = connection - .play( - ytdl(queue[0].url, { - quality: 'highestaudio', - highWaterMark: 1024 * 1024 * 10 - }) - - ) - .on('start', function () { - msg.guild.musicData.songDispatcher = dispatcher; - const volume = 100 / 100; - msg.guild.musicData.volume = volume; - dispatcher.setVolume(msg.guild.musicData.volume); - const videoEmbed = new MessageEmbed() - .setThumbnail(queue[0].thumbnail) - .setColor(0xF97DAE) - .addField('Now playing:', queue[0].title) - .addField('Duration:', queue[0].duration); - if (queue[1]) videoEmbed.addField('Next song:', queue[1].title); - msg.say(videoEmbed); - msg.guild.musicData.nowPlaying = queue[0]; - return queue.shift(); - }) - .on('finish', function () { - if (queue.length >= 1) { - return classThis.playSong(queue, msg); - } else { - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - } - }) - .on('error', function (e) { - msg.say('Can\'t play song. ' + emoji.random()); - console.error(e); - msg.guild.musicData.queue.length = 0; - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - }); - function timeCheck() { - if (dispatcher.streamTime >= 6000) { - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - } - } - setInterval(timeCheck, 500); - }) - .catch(function (e) { - console.error(e); - return msg.guild.me.voice.channel.leave(); - }); - } - constructSongObj(video, voiceChannel) { - let duration = this.formatDuration(video.duration); - if (duration == '00:00') duration = 'Live Stream'; - return { - url: `https://www.youtube.com/watch?v=${video.raw.id}`, - title: video.title, - duration, - thumbnail: video.thumbnails.high.url, - voiceChannel - }; - } - // prettier-ignore - formatDuration(durationObj) { - const duration = `${durationObj.hours ? (durationObj.hours + ':') : ''}${ - durationObj.minutes ? durationObj.minutes : '00' - }:${ - (durationObj.seconds < 10) - ? ('0' + durationObj.seconds) - : (durationObj.seconds - ? durationObj.seconds - : '00') - }`; - return duration; - } -}; */
\ No newline at end of file diff --git a/src/commands/voice/join.ts b/src/commands/voice/join.ts deleted file mode 100644 index f1b761d..0000000 --- a/src/commands/voice/join.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class JoinVoice extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'join', - group: 'voice', - memberName: 'join', - description: 'Tells uwufier to join your voice channel.', - examples: ['uwu!join'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - } - }); - } - //@ts-ignore - run(msg: CommandoMessage) { - msg.reply(`\`uwu!join\` has been depricated in favour of a simpler user expirience. Uwufier will now join your channel whenever you request to play something with \`uwu!play\`! ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/commands/voice/leave.ts b/src/commands/voice/leave.ts deleted file mode 100644 index 28c6250..0000000 --- a/src/commands/voice/leave.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class LeaveVoice extends Command { - constructor(client: CommandoClient) { - 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - //@ts-ignore - run(msg: CommandoMessage) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - //@ts-ignore - if (!msg.guild.musicData.queue) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - //@ts-ignore - msg.guild.musicData.songDispatcher.end(); - //@ts-ignore - msg.guild.musicData.queue.length = 0; - return; - } -};
\ No newline at end of file diff --git a/src/commands/voice/loop.ts b/src/commands/voice/loop.ts deleted file mode 100644 index a12c4e8..0000000 --- a/src/commands/voice/loop.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class LoopVoice extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'loop', - aliases: ['repeat'], - group: 'voice', - memberName: 'loop', - description: 'Loops currently playing track.', - guildOnly: true, - examples: ['uwu!loop', 'uwu!repeat'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - //@ts-ignore - run(msg: CommandoMessage) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - //@ts-ignore - msg.say(`${msg.guild.musicData.nowPlaying.title} added to queue. ` + emoji.random()); - //@ts-ignore - 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 deleted file mode 100644 index 742ddde..0000000 --- a/src/commands/voice/minecraft.ts +++ /dev/null @@ -1,209 +0,0 @@ -//@ts-nocheck -import ytdl from 'ytdl-core'; -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'; -const youtube = new Youtube(config['yt-api-key']); -import emoji from 'emoji-random'; - -module.exports = class MinecraftVoice extends Command { - constructor(client) { - super(client, { - name: 'minecraft', - aliases: ['minecraftsountrack', 'minecraft-soundtrack', 'mcs', 'mc-s'], - group: 'voice', - memberName: 'minecraft', - description: 'Plays the Minecraft soundtrack.', - guildOnly: true, - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - examples: [ - 'uwu!minecraft', - 'uwu!minecraftsountrack', - 'uwu!minecraft-soundtrack', - 'uwu!mcs', - 'uwu!mc-s' - ], - throttling: { - usages: 1, - duration: 60 - }, - }); - } - async run(msg: CommandoMessage) { - const voiceChannel = msg.member.voice.channel; - 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()); - }); - // remove the 10 if you removed the queue limit conditions below - const videosObj = await playlist.getVideos(24).catch(function () { - return msg.say( - 'There was a problem getting the soundtrack. ' + emoji.random() - ); - }); - for (let i = 0; i < videosObj.length; i++) { - const video = await videosObj[i].fetch(); - // this can be uncommented if you choose to limit the queue - // if (msg.guild.musicData.queue.length < 10) { - // - msg.guild.musicData.queue.push( - this.constructSongObj(video, voiceChannel) - ); - // } else { - // return msg.say( - // `I can't play the full playlist because there will be more than 10 songs in queue` - // ); - // } - } - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - return this.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - return msg.say( - 'Now playing the Minecraft soundtrack. ' + emoji.random() - ); - } - - var that = this; - msg.channel - .awaitMessages( - function (msg) { - return (msg.content > 0 && msg.content < 6) || msg.content === 'exit'; - }, { - max: 1, - time: 60000, - errors: ['time'] - } - ) - .then(function (response) { - const videoIndex = parseInt(response.first().content); - if (response.first().content === 'exit') return songEmbed.delete(); - youtube - .getVideoByID(videos[videoIndex - 1].id) - .then(function (video) { - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // songEmbed.delete(); - // return msg.say("I don't support live streams!"); - // } - - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // songEmbed.delete(); - // return msg.say('I cannot play videos longer than 1 hour'); - // } - - // // can be uncommented if you don't want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // songEmbed.delete(); - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - that.constructSongObj(video, voiceChannel) - ); - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - if (songEmbed) { - songEmbed.delete(); - } - that.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say('Now playing the Minecraft soundtrack. ' + emoji.random()); - } - }) - .catch(function () { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say( - 'An error has occured when trying to get the video ID from YouTube. ' + emoji.random() - ); - }); - }); - } - playSong(queue, msg: CommandoMessage) { - const classThis = this; // use classThis instead of 'this' because of lexical scope below - queue[0].voiceChannel - .join() - .then(function (connection) { - const dispatcher = connection - .play( - ytdl(queue[0].url, { - quality: 'highestaudio', - highWaterMark: 1024 * 1024 * 10 - }) - ) - .on('start', function () { - msg.guild.musicData.songDispatcher = dispatcher; - const volume = 100 / 100; - msg.guild.musicData.volume = volume; - dispatcher.setVolume(msg.guild.musicData.volume); - const videoEmbed = new MessageEmbed() - .setThumbnail(queue[0].thumbnail) - .setColor(0xFFCC4D) - .addField('Now Playing:', queue[0].title) - .addField('Duration:', queue[0].duration); - if (queue[1]) videoEmbed.addField('Next Song:', queue[1].title); - msg.say(videoEmbed); - msg.guild.musicData.nowPlaying = queue[0]; - return queue.shift(); - }) - .on('finish', function () { - if (queue.length >= 1) { - return classThis.playSong(queue, msg); - } else { - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - } - }) - .on('error', function (e) { - msg.say('Can\'t play soundtrack. ' + emoji.random()); - console.error(e); - msg.guild.musicData.queue.length = 0; - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - }); - }) - .catch(function (e) { - console.error(e); - return msg.guild.me.voice.channel.leave(); - }); - } - constructSongObj(video, voiceChannel) { - let duration = this.formatDuration(video.duration); - if (duration == '00:00') duration = 'Live Stream'; - return { - url: `https://www.youtube.com/watch?v=${video.raw.id}`, - title: video.title, - duration, - thumbnail: video.thumbnails.high.url, - voiceChannel - }; - } - // prettier-ignore - formatDuration(durationObj) { - const duration = `${durationObj.hours ? (durationObj.hours + ':') : ''}${ - durationObj.minutes ? durationObj.minutes : '00' - }:${ - (durationObj.seconds < 10) - ? ('0' + durationObj.seconds) - : (durationObj.seconds - ? durationObj.seconds - : '00') - }`; - return duration; - } -};
\ No newline at end of file diff --git a/src/commands/voice/pause.ts b/src/commands/voice/pause.ts deleted file mode 100644 index 500a320..0000000 --- a/src/commands/voice/pause.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class PauseVoice extends Command { - constructor(client: CommandoClient) { - 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - //@ts-ignore - run(msg: CommandoMessage) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - msg.say('Song paused :pause_button:'); - - //@ts-ignore - 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 deleted file mode 100644 index 97858a3..0000000 --- a/src/commands/voice/play.ts +++ /dev/null @@ -1,297 +0,0 @@ -//@ts-nocheck -import ytdl from 'ytdl-core'; -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'; -const youtube = new Youtube(config['yt-api-key']); -import emoji from 'emoji-random'; -const volume = 100 / 100 / 25; - -module.exports = class PlayVoice extends Command { - constructor(client) { - super(client, { - name: 'play', - group: 'voice', - memberName: 'play', - description: 'Play the audio of a YouTube video in a voice channel. (Other audio providers coming soon!)', - guildOnly: true, - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - args: [ - { - key: 'query', - prompt: 'What song would you like to hear?', - type: 'string', - validate: function (query) { - return query.length > 0 && query.length < 200; - } - } - ], - examples: [ - 'uwu!play https://www.youtube.com/watch?v=dQw4w9WgXcQ', - 'uwu!play despacito' - ], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - 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()); - - if ( - // if the user entered yt playlist url - query.match( - /^(?!.*\?.*\bv=)https:\/\/www\.youtube\.com\/.*\?.*\blist=.*$/ - ) - ) { - const playlist = await youtube.getPlaylist(query).catch(function () { - return msg.say('Playlist is either private or it does not exist. ' + emoji.random()); - }); - // remove the 10 if you removed the queue limit conditions below - const videosObj = await playlist.getVideos(10).catch(function () { - return msg.say( - 'There was a problem getting one or more of the videos in the playlist. ' + emoji.random() - ); - }); - for (let i = 0; i < videosObj.length; i++) { - const video = await videosObj[i].fetch(); - // this can be uncommented if you choose to limit the queue - // if (msg.guild.musicData.queue.length < 10) { - // - msg.guild.musicData.queue.push( - this.constructSongObj(video, voiceChannel) - ); - // } else { - // return msg.say( - // `I can't play the full playlist because there will be more than 10 songs in queue` - // ); - // } - } - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - return this.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - return msg.say( - `Playlist - :musical_note: ${playlist.title} :musical_note: has been added to queue. ` + emoji.random() - ); - } - } - - // This if statement checks if the user entered a youtube url, it can be any kind of youtube url - if (query.match(/^(http(s)?:\/\/)?((w){3}.)?youtu(be|.be)?(\.com)?\/.+/)) { - query = query - .replace(/(>|<)/gi, '') - .split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/); - const id = query[2].split(/[^0-9a-z_\-]/i)[0]; - const video = await youtube.getVideoByID(id).catch(function () { - return msg.say( - 'There was a problem getting the video you provided. ' + emoji.random() - ); - }); - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // return msg.say("I don't support live streams!"); - // } - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // return msg.say('I cannot play videos longer than 1 hour'); - // } - // // can be uncommented if you want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - this.constructSongObj(video, voiceChannel) - ); - if ( - msg.guild.musicData.isPlaying == false || - typeof msg.guild.musicData.isPlaying == 'undefined' - ) { - msg.guild.musicData.isPlaying = true; - return this.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - return msg.say(`${video.title} added to queue. ` + emoji.random()); - } - } - - // if user provided a song/video name - const videos = await youtube.searchVideos(query, 5).catch(function () { - return msg.say( - 'There was a problem searching the video you requested. ' + emoji.random() - ); - }); - if (videos.length < 5) { - return msg.say( - `There was some trouble finding what you were looking for, please try again or be more specific. ` + emoji.random() - ); - } - const vidNameArr = []; - for (let i = 0; i < videos.length; i++) { - vidNameArr.push(`${i + 1}: ${videos[i].title}`); - } - vidNameArr.push('exit'); - const embed = new MessageEmbed() - .setColor(0xFFCC4D) - .setTitle('Please choose a song (1 to 5) ' + emoji.random()) - .addField(``, '**Song #**' + vidNameArr[0]) - .addField(``, '**Song #**' + vidNameArr[1]) - .addField(``, '**Song #**' + vidNameArr[2]) - .addField(``, '**Song #**' + vidNameArr[3]) - .addField(``, '**Song #**' + vidNameArr[4]) - .addField(``, '**Exit selection**: ' + 'exit'); - var songEmbed = await msg.say({ - embed - }); - var that = this; - msg.channel - .awaitMessages( - function (msg) { - return (msg.content > 0 && msg.content < 6) || msg.content === 'exit'; - }, { - max: 1, - time: 60000, - errors: ['time'] - } - ) - .then(function (response) { - const videoIndex = parseInt(response.first().content); - if (response.first().content === 'exit') return songEmbed.delete(); - youtube - .getVideoByID(videos[videoIndex - 1].id) - .then(function (video) { - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // songEmbed.delete(); - // return msg.say("I don't support live streams!"); - // } - - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // songEmbed.delete(); - // return msg.say('I cannot play videos longer than 1 hour'); - // } - - // // can be uncommented if you don't want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // songEmbed.delete(); - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - that.constructSongObj(video, voiceChannel) - ); - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - if (songEmbed) { - songEmbed.delete(); - } - that.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say(`${video.title} added to queue. ` + emoji.random()); - } - }) - .catch(function () { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say( - 'An error has occured when trying to get the video ID from YouTube. ' + emoji.random() - ); - }); - }) - .catch(function () { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say( - 'Try again and enter a number between 1 and 5 or exit. ' + emoji.random() - ); - }); - } - playSong(queue, msg: CommandoMessage) { - const classThis = this; // use classThis instead of 'this' because of lexical scope below - msg.guild.musicData.volume = volume; - queue[0].voiceChannel - .join() - .then(function (connection) { - const dispatcher = connection - .play( - ytdl(queue[0].url, { - quality: 'highestaudio', - highWaterMark: 1024 * 1024 * 10 - }) - ) - .on('start', function () { - msg.guild.musicData.songDispatcher = dispatcher; - dispatcher.setVolume(msg.guild.musicData.volume); - const videoEmbed = new MessageEmbed() - .setThumbnail(queue[0].thumbnail) - .setColor(0xFFCC4D) - .addField('Now playing:', queue[0].title) - .addField('Duration:', queue[0].duration); - if (queue[1]) videoEmbed.addField('Next song:', queue[1].title); - msg.say(videoEmbed); - msg.guild.musicData.nowPlaying = queue[0]; - return queue.shift(); - }) - .on('finish', function () { - if (queue.length >= 1) { - return classThis.playSong(queue, msg); - } else { - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - } - }) - .on('error', function (e) { - msg.say('Can\'t play song. ' + emoji.random()); - console.error(e); - msg.guild.musicData.queue.length = 0; - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - }); - }) - .catch(function (e) { - console.error(e); - return msg.guild.me.voice.channel.leave(); - }); - } - constructSongObj(video, voiceChannel) { - let duration = this.formatDuration(video.duration); - if (duration == '00:00') duration = 'Live Stream'; - return { - url: `https://www.youtube.com/watch?v=${video.raw.id}`, - title: video.title, - duration, - thumbnail: video.thumbnails.high.url, - voiceChannel - }; - } - // prettier-ignore - formatDuration(durationObj) { - const duration = `${durationObj.hours ? (durationObj.hours + ':') : ''}${ - durationObj.minutes ? durationObj.minutes : '00' - }:${ - (durationObj.seconds < 10) - ? ('0' + durationObj.seconds) - : (durationObj.seconds - ? durationObj.seconds - : '00') - }`; - return duration; - } -}; diff --git a/src/commands/voice/psycho.ts b/src/commands/voice/psycho.ts deleted file mode 100644 index e8f14bc..0000000 --- a/src/commands/voice/psycho.ts +++ /dev/null @@ -1,203 +0,0 @@ -//@ts-nocheck -import ytdl from 'ytdl-core'; -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'; -const youtube = new Youtube(config['yt-api-key']); -import emoji from 'emoji-random'; - -module.exports = class PsychoVoice extends Command { - constructor(client) { - super(client, { - name: 'psycho', - group: 'voice', - memberName: 'psycho', - description: 'Plays Psycho by Mase.', - guildOnly: true, - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - examples: ['uwu!psycho'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - 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()); - - const id = 'fnd_HSmAODs'; - const video = await youtube.getVideoByID(id).catch(function () { - return msg.say( - 'There was a problem getting the video you provided. ' + emoji.random() - ); - }); - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // return msg.say("I don't support live streams!"); - // } - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // return msg.say('I cannot play videos longer than 1 hour'); - // } - // // can be uncommented if you want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - this.constructSongObj(video, voiceChannel) - ); - if ( - msg.guild.musicData.isPlaying == false || - typeof msg.guild.musicData.isPlaying == 'undefined' - ) { - msg.guild.musicData.isPlaying = true; - return this.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - return msg.say(`${video.title} added to queue. ` + emoji.random()); - } - - var that = this; - msg.channel - .awaitMessages( - function (msg) { - return (msg.content > 0 && msg.content < 6) || msg.content === 'exit'; - }, { - max: 1, - time: 60000, - errors: ['time'] - } - ) - .then(function (response) { - const videoIndex = parseInt(response.first().content); - if (response.first().content === 'exit') return songEmbed.delete(); - youtube - .getVideoByID(videos[videoIndex - 1].id) - .then(function (video) { - // // can be uncommented if you don't want the bot to play live streams - // if (video.raw.snippet.liveBroadcastContent === 'live') { - // songEmbed.delete(); - // return msg.say("I don't support live streams!"); - // } - - // // can be uncommented if you don't want the bot to play videos longer than 1 hour - // if (video.duration.hours !== 0) { - // songEmbed.delete(); - // return msg.say('I cannot play videos longer than 1 hour'); - // } - - // // can be uncommented if you don't want to limit the queue - // if (msg.guild.musicData.queue.length > 10) { - // songEmbed.delete(); - // return msg.say( - // 'There are too many songs in the queue already, skip or wait a bit' - // ); - // } - msg.guild.musicData.queue.push( - that.constructSongObj(video, voiceChannel) - ); - if (msg.guild.musicData.isPlaying == false) { - msg.guild.musicData.isPlaying = true; - if (songEmbed) { - songEmbed.delete(); - } - that.playSong(msg.guild.musicData.queue, msg); - } else if (msg.guild.musicData.isPlaying == true) { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say(`${video.title} added to queue. ` + emoji.random()); - } - }) - .catch(function () { - if (songEmbed) { - songEmbed.delete(); - } - return msg.say( - 'An error has occured when trying to get the video ID from YouTube. ' + emoji.random() - ); - }); - }); - } - playSong(queue, msg: CommandoMessage) { - const classThis = this; // use classThis instead of 'this' because of lexical scope below - queue[0].voiceChannel - .join() - .then(function (connection) { - const dispatcher = connection - .play( - ytdl(queue[0].url, { - quality: 'highestaudio', - highWaterMark: 1024 * 1024 * 10 - }) - ) - .on('start', function () { - msg.guild.musicData.songDispatcher = dispatcher; - const volume = 100 / 100; - msg.guild.musicData.volume = volume; - dispatcher.setVolume(msg.guild.musicData.volume); - const videoEmbed = new MessageEmbed() - .setThumbnail(queue[0].thumbnail) - .setColor(0xFFCC4D) - .addField('Now playing:', queue[0].title) - .addField('Duration:', queue[0].duration); - if (queue[1]) videoEmbed.addField('Next song:', queue[1].title); - msg.say(videoEmbed); - msg.guild.musicData.nowPlaying = queue[0]; - return queue.shift(); - }) - .on('finish', function () { - if (queue.length >= 1) { - return classThis.playSong(queue, msg); - } else { - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - } - }) - .on('error', function (e) { - msg.say('Can\'t play song ' + emoji.random()); - console.error(e); - msg.guild.musicData.queue.length = 0; - msg.guild.musicData.isPlaying = false; - msg.guild.musicData.nowPlaying = null; - msg.guild.musicData.songDispatcher = null; - return msg.guild.me.voice.channel.leave(); - }); - }) - .catch(function (e) { - console.error(e); - return msg.guild.me.voice.channel.leave(); - }); - } - constructSongObj(video, voiceChannel) { - let duration = this.formatDuration(video.duration); - if (duration == '00:00') duration = 'Live Stream'; - return { - url: `https://www.youtube.com/watch?v=${video.raw.id}`, - title: video.title, - duration, - thumbnail: video.thumbnails.high.url, - voiceChannel - }; - } - // prettier-ignore - formatDuration(durationObj) { - const duration = `${durationObj.hours ? (durationObj.hours + ':') : ''}${ - durationObj.minutes ? durationObj.minutes : '00' - }:${ - (durationObj.seconds < 10) - ? ('0' + durationObj.seconds) - : (durationObj.seconds - ? durationObj.seconds - : '00') - }`; - return duration; - } -};
\ No newline at end of file diff --git a/src/commands/voice/queue.ts b/src/commands/voice/queue.ts deleted file mode 100644 index f8afedd..0000000 --- a/src/commands/voice/queue.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed }from 'discord.js'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class QueueVoice extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'queue', - aliases: [ - 'q', - 'song-list', - 'next-songs', - 'songlist', - 'nextsongs', - 'nextsong', - 'next-song' - ], - group: 'voice', - memberName: 'queue', - description: 'Displays the current track 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - //@ts-ignore - if (msg.guild.musicData.queue.length == 0) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - //@ts-ignore - const titleArray = []; - //@ts-ignore - 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++) { - //@ts-ignore - queueEmbed.addField(``, `**${i + 1}**: ` + `${titleArray[i]}`); - } - return msg.say(queueEmbed); - } -};
\ No newline at end of file diff --git a/src/commands/voice/remove.ts b/src/commands/voice/remove.ts deleted file mode 100644 index 993a368..0000000 --- a/src/commands/voice/remove.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class RemoveVoice extends Command { - constructor(client: CommandoClient) { - 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage, { songNumber }: any) { - //@ts-ignore - 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()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - //@ts-ignore - 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.ts b/src/commands/voice/resume.ts deleted file mode 100644 index 208fba5..0000000 --- a/src/commands/voice/resume.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class ResumeVoice extends Command { - constructor(client: CommandoClient) { - 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ') + emoji.random(); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - msg.say('Song resumed :play_pause:'); - - //@ts-ignore - msg.guild.musicData.songDispatcher.resume(); - } -};
\ No newline at end of file diff --git a/src/commands/voice/shuffle.ts b/src/commands/voice/shuffle.ts deleted file mode 100644 index 7429f27..0000000 --- a/src/commands/voice/shuffle.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class ShuffleVoice extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'shuffle', - group: 'voice', - memberName: 'shuffle', - description: 'Shuffles the current track queue.', - guildOnly: true, - examples: ['uwu!shuffle'], - clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join channel and try again. ' + emoji.random()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - //@ts-ignore - if (msg.guild.musicData.queue.length < 1) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - - //@ts-ignore - shuffleQueue(msg.guild.musicData.queue); - - //@ts-ignore - const titleArray = []; - //@ts-ignore - 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++) { - //@ts-ignore - queueEmbed.addField(`${i + 1}:`, `${titleArray[i]}`); - } - return msg.say(queueEmbed); - } -}; - -function shuffleQueue(queue: any) { - 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.ts b/src/commands/voice/skip.ts deleted file mode 100644 index b4cef15..0000000 --- a/src/commands/voice/skip.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class SkipVoice extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'skip', - group: 'voice', - memberName: 'skip', - description: 'Skip 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - //@ts-ignore - run(msg: CommandoMessage) { - const voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - //@ts-ignore - msg.guild.musicData.songDispatcher.end(); - } -};
\ No newline at end of file diff --git a/src/commands/voice/skipall.ts b/src/commands/voice/skipall.ts deleted file mode 100644 index c7e0333..0000000 --- a/src/commands/voice/skipall.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class SkipAllVoice extends Command { - constructor(client: CommandoClient) { - 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - //@ts-ignore - run(msg: CommandoMessage) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - //@ts-ignore - if (!msg.guild.musicData.queue) - return msg.say('There aren\'t any songs in the current queue. ' + emoji.random()); - //@ts-ignore - msg.guild.musicData.songDispatcher.end(); - //@ts-ignore - msg.guild.musicData.queue.length = 0; // clear queue - return; - } -};
\ No newline at end of file diff --git a/src/commands/voice/skipto.ts b/src/commands/voice/skipto.ts deleted file mode 100644 index ee4a7ba..0000000 --- a/src/commands/voice/skipto.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class SkipToVoice extends Command { - constructor(client: CommandoClient) { - 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - //@ts-ignore - run(msg: CommandoMessage, { songNumber }: any) { - //@ts-ignore - 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()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - //@ts-ignore - if (msg.guild.musicData.queue < 1) - return msg.reply('There aren\'t any songs in the current queue. ' + emoji.random()); - - //@ts-ignore - msg.guild.musicData.queue.splice(0, songNumber - 1); - //@ts-ignore - msg.guild.musicData.songDispatcher.end(); - return; - } -};
\ No newline at end of file diff --git a/src/commands/voice/volume.ts b/src/commands/voice/volume.ts deleted file mode 100644 index 5678101..0000000 --- a/src/commands/voice/volume.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore -import emoji from 'emoji-random'; - -module.exports = class VolumeVoice extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'volume', - aliases: ['vol'], - group: 'voice', - memberName: 'volume', - description: 'Changes volume of any currently playing audio.', - guildOnly: true, - args: [ - { - key: 'wantedVol', - prompt: 'What would volume you like? (1 to 200)', - type: 'integer', - validate: (wantedVol: number) => 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'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage, { wantedVol }: any) { - var voiceChannel = msg.member.voice.channel; - if (!voiceChannel) return msg.reply('Please join a channel and try again. ' + emoji.random()); - - //@ts-ignore - if (typeof msg.guild.musicData.songDispatcher == 'undefined' || - //@ts-ignore - msg.guild.musicData.songDispatcher == null) { - return msg.reply('There isn\'t any audio playing right now. ' + emoji.random()); - } - - const volume = wantedVol / 100; - //@ts-ignore - msg.guild.musicData.volume = volume; - //@ts-ignore - msg.guild.musicData.songDispatcher.setVolume(volume); - return msg.reply(`Volume is now: **${wantedVol}%**. ` + emoji.random()); - } -};
\ No newline at end of file diff --git a/src/commands/zerotwo/darling.ts b/src/commands/zerotwo/darling.ts deleted file mode 100644 index 2f52ed4..0000000 --- a/src/commands/zerotwo/darling.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -//@ts-ignore no @types -import emoji from 'emoji-random'; -import Darling from '../../models/darling.js'; -import mongo from 'mongoose'; -import config from '../../config.json'; -mongo.connect(config['mongodburi'], { useNewUrlParser: true, useUnifiedTopology: true }) - -module.exports = class DarlingZeroTwo extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'darling', - group: 'zerotwo', - memberName: 'darling', - description: 'Allows you to set, change or delete uwufier\'s darling.', - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - examples: [ - 'uwu!darling', - 'uwu!darling set', - 'uwu!darling remove' - ], - args: [ - { - key: 'darlingName', - prompt: 'Who should the darling be?', - type: 'string', - default: '' - } - ], - throttling: { - usages: 5, - duration: 30 - }, - guildOnly: true - }); - } - //TODO: this - //@ts-ignore this is not asnc - async run(msg: CommandoMessage, { darlingName }: any) { // this is actually a string - const darling = new Darling({ - _id: mongo.Types.ObjectId(), - username: msg.author.username, - userID: msg.author.id, - guildname: msg.guild.name, - guildID: msg.guild.id, - time: msg.createdAt - }) - // const guildExist = await Darling.findOne({ guildID: msg.guild.id }) - - Darling.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) { - return console.log(error) - } else if (guild && darlingName == 'remove') { - // @ts-ignore linting error shows that channelID doesnt exist when it does - if (msg.author.id == guild.userID || msg.author.id == msg.guild.owner.id) { - await Darling.findOneAndDelete({ guildID: msg.guild.id }) - return msg.say('The current darling has been removed. ' + emoji.random()) - } else { - return msg.reply('Only my darling or the guild owner can remove the current darling. ' + emoji.random()) - } - } else if (!guild && darlingName == 'remove') { - return msg.reply('There is no darling set in this server. ' + emoji.random()) - } else if (guild && darlingName == 'set') { - // @ts-ignore linting error shows that channelID doesnt exist when it does - return msg.reply(`I already have a darling! It\'s <@${guild.userID}>! To set a new darling, either the current darling or the guild owner has to do \`uwu!darling remove\`. ` + emoji.random()) - } else if (!guild && darlingName == 'set') { - await darling.save() - .then(result => console.log(result)) - .catch(err => console.log(err)) - - const quotes = [ - 'I think I have taken a liking to you. Won\'t you be my darling?', - 'I like the look in your eyes. It makes my heart race. You are now my darling!', - 'Wow, your taste makes my heart race. It bites and lingers... The taste of danger. You are now my darling!' - ] - let quoteNum = quotes[Math.floor(Math.random() * quotes.length)] - return msg.reply(quoteNum) - } else if (!guild) { - return msg.reply('I haven\'t found my darling yet! To set one, do `uwu!darling set`. ' + emoji.random()) - } else if (guild) { - // @ts-ignore linting error shows that channelID doesnt exist when it does - return msg.reply(`My darling is <@${guild.userID}>. ` + emoji.random()) - } - }) - - // if (guildExist && darlingName == 'remove') { - // await Darling.findOneAndDelete({ guildID: msg.guild.id }) - // msg.say('The current darling has been removed.') - // } else if (!guildExist && darlingName == 'remove') { - // msg.reply('There is no darling set in this server.') - // } else if (darlingName || darlingName == 'set') { - // await darling.save().then(result => console.log(result)).catch(err => console.log(err)) - - // var quoteNum = Math.floor((Math.random() * 3) + 1); - // switch (quoteNum) { - // case 1: var quoteResult = 'I think I have taken a liking to you. Won\'t you be my darling?'; break - // case 2: var quoteResult = 'I like the look in your eyes. It makes my heart race. You are now my darling!'; break - // case 3: var quoteResult = 'Wow, your taste makes my heart race. It bites and lingers... The taste of danger. You are now my darling!'; break - // default: var quoteResult = 'I think I have taken a liking to you. Won\'t you be my darling?'; break - // } - // msg.reply(quoteResult) - // } else if (!guildExist) { - // msg.reply('I haven\'t found my darling yet!') - // } else if (guildExist) { - // await Darling.findOne({ userID: msg.author.id }, (err) => { - // if (err) console.log(err) - // }).then(res => { - // msg.reply(`My darling is <@${res.userID}>`) - // }) - // //msg.reply(`My darling is <@${result.userID}>`) - // } else { - // console.error() - // } - } -};
\ No newline at end of file diff --git a/src/commands/zerotwo/douse.ts b/src/commands/zerotwo/douse.ts deleted file mode 100644 index d9cdca3..0000000 --- a/src/commands/zerotwo/douse.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -import { MessageEmbed } from 'discord.js'; - -module.exports = class DouseZeroTwo extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'douse', - group: 'zerotwo', - memberName: 'douse', - description: 'Douses Zero Two.', - examples: [ - 'uwu!douse' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - let emb = new MessageEmbed() - .setColor(0xFFD0DF) - .setImage('https://i.pinimg.com/originals/6a/c8/26/6ac826e3d0cbd64eb4f42c12a73fcdb8.gif') - return msg.say(emb) - } -};
\ No newline at end of file diff --git a/src/commands/zerotwo/zerotwo.ts b/src/commands/zerotwo/zerotwo.ts deleted file mode 100644 index ba9602a..0000000 --- a/src/commands/zerotwo/zerotwo.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; -// @ts-ignore no types -import emoji from 'emoji-random'; - -module.exports = class ZeroTwoZeroTwo extends Command { - constructor(client: CommandoClient) { - super(client, { - name: 'zerotwo', - group: 'zerotwo', - memberName: 'zerotwo', - description: 'Zero Two.', - examples: [ - 'uwu!zerotwo' - ], - userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], - throttling: { - usages: 5, - duration: 30 - }, - }); - } - run(msg: CommandoMessage) { - return msg.reply(`Zero Two is the best waifu of all, literally no one else can compare. Unironically she is the best waifu of all time. Literally praise her. This is not a joke she is literally the best. ${emoji.random()}`) - } -};
\ No newline at end of file diff --git a/src/config.json b/src/config.json deleted file mode 100644 index 60b479c..0000000 --- a/src/config.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "secret":"Njk5NDczMjYzOTk4MjcxNDg5.XpU5oQ.btZuxVudhNllSQY6CxrXXtMJm9A", - "secret-dev":"NzEyMDg4MzY5MjA2OTE5MjY5.XsMeEw.Yy0a8m2vZLDbPi7cZ8aqCalMR68", - "yt-api-key":"AIzaSyCeG1lQAeInv4vjFv_eTL9IFAFNdQC9Nk8", - "version":"1.10.46", - "fortniteTrackerNetworkToken": "4cf21f95-5f1a-412a-b4a7-e5424adc314a", - "mongodburi": "mongodb://sin:[email protected]:47107/heroku_4qrjvmb9", - "validUsers": [ - "217348698294714370", - "612779586065006641", - "385964717480476684", - "649676743195754550", - "630042587914436648" - ] -} diff --git a/src/models/Client.ts b/src/models/Client.ts deleted file mode 100644 index c24bcd9..0000000 --- a/src/models/Client.ts +++ /dev/null @@ -1,26 +0,0 @@ -// import { CommandoClient } from 'discord.js-commando'; -// import { WebhookClient } from 'discord.js'; -// import Collection from '@discordjs/collection'; -// import winston from 'winston'; -// const PokemonStore = require('./pokemon/PokemonStore'); -// import MemePoster from './MemePoster.js' -// const { UWUFIER_WEBHOOK_ID, UWUFIER_WEBHOOK_TOKEN } = process.env; - -// module.exports = class UwufierClient extends CommandoClient { -// constructor(options) { -// super(options); - -// this.logger = winston.createLogger({ -// transports: [new winston.transports.Console()], -// format: winston.format.combine( -// winston.format.timestamp({ format: 'MM/DD/YYYY HH:mm:ss' }), -// winston.format.printf(log => `[${log.timestamp}] [${log.level.toUpperCase()}]: ${log.message}`) -// ) -// }); -// this.webhook = new WebhookClient(UWUFIER_WEBHOOK_ID, UWUFIER_WEBHOOK_TOKEN, { disableEveryone: true }); -// this.pokemon = new PokemonStore(); -// this.memePoster = new MemePoster(this); -// this.games = new Collection(); -// this.phone = new Collection(); -// } -// };
\ No newline at end of file diff --git a/src/models/Command.ts b/src/models/Command.ts deleted file mode 100644 index b3fdea9..0000000 --- a/src/models/Command.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Command, CommandoClient, CommandInfo } from 'discord.js-commando'; - -module.exports = class UwufierCommand extends Command { - credit: any; - constructor(client: CommandoClient, info: CommandInfo) { - super(client, info); - - this.argsSingleQuotes = info.argsSingleQuotes || false; - this.throttling = info.throttling || { usages: 1, duration: 2 }; - // TODO: - // @ts-ignore - this.credit = info.credit || []; - this.credit.push({ - name: 'Sin', - url: 'https://github.com/8cy', - reason: 'Code' - }); - } -}
\ No newline at end of file diff --git a/src/models/FanArt.ts b/src/models/FanArt.ts deleted file mode 100644 index 56f63c9..0000000 --- a/src/models/FanArt.ts +++ /dev/null @@ -1,13 +0,0 @@ -import mongo from 'mongoose'; -const fanArtSchema = new mongo.Schema({ - _id: mongo.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - channelname: String, - channelID: String, - time: String -}); - -export = mongo.model('FanArt', fanArtSchema)
\ No newline at end of file diff --git a/src/models/MemePoster.ts b/src/models/MemePoster.ts deleted file mode 100644 index 27ff726..0000000 --- a/src/models/MemePoster.ts +++ /dev/null @@ -1,39 +0,0 @@ -// const { POSTER_ID, POSTER_TOKEN, POSTER_TIME } = process.env; -// import request from 'node-superfetch'; -// import { embedURL } from '../utils/Util.js'; -// import subreddits from '../assets/json/meme.json' -// const types = ['image', 'rich:video']; - -// module.exports = class MemePoster { -// constructor(client) { -// Object.defineProperty(this, 'client', { value: client }); - -// this.id = POSTER_ID; -// this.token = POSTER_TOKEN; -// this.time = Number.parseFloat(POSTER_TIME) || 3.6e+6; -// } -// async post() { -// try { -// const subreddit = subreddits[Math.floor(Math.random() * subreddits.length)]; -// const post = await this.fetchMeme(subreddit); -// if (!post) return; -// const url = embedURL(post.title, `<https://www.reddit.com${post.permalink}>`); -// await request -// .post(`https://discordapp.com/api/webhooks/${this.id}/${this.token}`) -// .send({ content: `**r/${subreddit}** ${url}\n${post.url}` }); -// } catch (err) { -// this.client.logger.error(err); -// } -// } -// async fetchMeme(subreddit) { -// const { body } = await request -// .get(`https://www.reddit.com/r/${subreddit}/hot.json`) -// .query({ limit: 100 }); -// const posts = body.data.children.filter(post => { -// if (!post.data) return false; -// return types.includes(post.data.post_hint) && post.data.url && post.data.title && !post.data.over_18; -// }); -// if (!posts.length) return null; -// return posts[Math.floor(Math.random() * posts.length)].data; -// } -// };
\ No newline at end of file diff --git a/src/models/MusicGuild.ts b/src/models/MusicGuild.ts deleted file mode 100644 index 7486cf6..0000000 --- a/src/models/MusicGuild.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Structures, Client } from 'discord.js'; -export = Structures.extend('Guild', Guild => { - class MusicGuild extends Guild { - musicData: { queue: []; isPlaying: boolean; volume: number; songDispatcher: any; }; - constructor(client: Client, data: object) { - super(client, data); - this.musicData = { - queue: [], - isPlaying: false, - volume: 1, - songDispatcher: null - }; - } - } - return MusicGuild; -});
\ No newline at end of file diff --git a/src/models/Verify.ts b/src/models/Verify.ts deleted file mode 100644 index 17da445..0000000 --- a/src/models/Verify.ts +++ /dev/null @@ -1,11 +0,0 @@ -import mongo from 'mongoose'; -const verifySchema = new mongo.Schema({ - _id: mongo.Schema.Types.ObjectId, - username: String, - userID: String, - status: Boolean, - key: String, - time: String -}); - -export = mongo.model('Verify', verifySchema)
\ No newline at end of file diff --git a/src/models/commands/AutoReply.ts b/src/models/commands/AutoReply.ts deleted file mode 100644 index fbc7e46..0000000 --- a/src/models/commands/AutoReply.ts +++ /dev/null @@ -1,17 +0,0 @@ -// import Command from '../Command.js' - -// module.exports = class AutoReplyCommand extends Command { -// constructor(client, info) { -// super(client, info); - -// this.reply = info.reply || false; -// } - -// run(msg, args, fromPattern) { -// return this.reply ? msg.reply(this.generateText(fromPattern)) : msg.say(this.generateText(fromPattern)); -// } - -// generateText() { -// throw new Error('The generateText method is required.'); -// } -// };
\ No newline at end of file diff --git a/src/models/commands/ImgurAlbum.ts b/src/models/commands/ImgurAlbum.ts deleted file mode 100644 index 199c2a6..0000000 --- a/src/models/commands/ImgurAlbum.ts +++ /dev/null @@ -1,43 +0,0 @@ -// import request from 'node-superfetch'; -// import Command from '../Command.js' -// const { IMGUR_KEY } = process.env; - -// module.exports = class ImgurAlbumCommand extends Command { -// constructor(client, info) { -// super(client, info); - -// this.albumID = info.albumID; -// this.cache = null; -// this.credit.push({ -// name: 'Imgur', -// url: 'https://imgur.com/', -// reason: 'API', -// reasonURL: 'https://apidocs.imgur.com/' -// }); -// } - -// async run(msg, { user }) { -// try { -// const image = await this.random(); -// if (!image) return msg.reply('This album has no images...'); -// return msg.say(this.generateText(msg, user), { files: [image] }); -// } catch (err) { -// return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); -// } -// } - -// generateText() { -// throw new Error('The generateText method is required.'); -// } - -// async random() { -// if (this.cache) return this.cache[Math.floor(Math.random() * this.cache.length)]; -// const { body } = await request -// .get(`https://api.imgur.com/3/album/${this.albumID}`) -// .set({ Authorization: `Client-ID ${IMGUR_KEY}` }); -// if (!body.data.images.length) return null; -// this.cache = body.data.images.map(image => image.link); -// setTimeout(() => { this.cache = null; }, 3.6e+6); -// return body.data.images[Math.floor(Math.random() * body.data.images.length)].link; -// } -// };
\ No newline at end of file diff --git a/src/models/commands/Subreddit.ts b/src/models/commands/Subreddit.ts deleted file mode 100644 index ea6a9fa..0000000 --- a/src/models/commands/Subreddit.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { CommandoMessage } from 'discord.js-commando'; -const Command = require('../Command.js') -import request from 'node-superfetch' -//@ts-ignore no @types for this package -import emoji from 'emoji-random' - -module.exports = class SubredditCommand extends Command { - subreddit: any; - postType: any[] | null; - getIcon: boolean; - credit: any; - constructor(client: any, info: { subreddit: any; postType: any; getIcon: boolean; }) { - super(client, info); - - this.subreddit = info.subreddit; - this.postType = info.postType ? Array.isArray(info.postType) ? info.postType : [info.postType] : null; - this.getIcon = info.getIcon || false; - this.credit.push({ - name: 'Reddit', - url: 'https://www.reddit.com/', - reason: 'API', - reasonURL: 'https://www.reddit.com/dev/api/' - }); - } - - async run(msg: CommandoMessage, { subreddit }: any, fromPattern: any) { - if (fromPattern) subreddit = msg.patternMatches[1]; - if (!subreddit) subreddit = typeof this.subreddit === 'function' ? this.subreddit() : this.subreddit; - try { - //@ts-ignore no idea why this isnt in the commando libs - const post = await this.random(subreddit, msg.channel.nsfw); - if (!post) return msg.reply('Could not find any results. ' + emoji.random()); - // TODO: - //@ts-ignore - return msg.say(this.generateText(post.post, post.origin, post.icon)); - } catch (err) { - if (err.status === 403) return msg.reply('This subreddit is private. ' + emoji.random()); - if (err.status === 404) return msg.reply('Could not find any results. ' + emoji.random()); - return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); - } - } - - generateText() { - throw new Error('The generateText method is required.'); - } - - async random(subreddit: any, nsfw: any) { - let icon = null; - const { body } = await request - .get(`https://www.reddit.com/r/${subreddit}/hot.json`) - // TODO: - //@ts-ignore - .query({ limit: 100 }); - //@ts-ignore yes it does - if (!body.data.children.length) return null; - //@ts-ignore yes it does - const posts = body.data.children.filter(post => { - if (!post.data) return false; - if (!nsfw && post.data.over_18) return false; - return (this.postType ? this.postType.includes(post.data.post_hint) : true) && post.data.url && post.data.title; - }); - if (!posts.length) return null; - if (this.getIcon) icon = await this.fetchIcon(subreddit); - return { - origin: subreddit, - post: posts[Math.floor(Math.random() * posts.length)].data, - icon - }; - } - - async fetchIcon(subreddit: any) { - const { body } = await request.get(`https://www.reddit.com/r/${subreddit}/about.json`); - //@ts-ignore yes it does - if (!body.data.icon_img && !body.data.community_icon) return 'https://i.imgur.com/DSBOK0P.png'; - //@ts-ignore yes it does - return body.data.icon_img || body.data.community_icon; - } -};
\ No newline at end of file diff --git a/src/models/darling.ts b/src/models/darling.ts deleted file mode 100644 index 48cb665..0000000 --- a/src/models/darling.ts +++ /dev/null @@ -1,11 +0,0 @@ -import mongo from 'mongoose'; -const darlingSchema = new mongo.Schema({ - _id: mongo.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - time: String -}); - -export = mongo.model('Darling', darlingSchema)
\ No newline at end of file diff --git a/src/models/goodbye.ts b/src/models/goodbye.ts deleted file mode 100644 index c650ef9..0000000 --- a/src/models/goodbye.ts +++ /dev/null @@ -1,13 +0,0 @@ -import mongo from 'mongoose'; -const goodbyeSchema = new mongo.Schema({ - _id: mongo.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - channelname: String, - channelID: String, - time: String -}); - -export = mongo.model('Goodbye', goodbyeSchema)
\ No newline at end of file diff --git a/src/models/welcome.ts b/src/models/welcome.ts deleted file mode 100644 index 29700fc..0000000 --- a/src/models/welcome.ts +++ /dev/null @@ -1,13 +0,0 @@ -import mongo from 'mongoose'; -const welcomeSchema = new mongo.Schema({ - _id: mongo.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - channelname: String, - channelID: String, - time: String -}); - -export = mongo.model('Welcome', welcomeSchema)
\ No newline at end of file diff --git a/src/server.ts b/src/server.ts deleted file mode 100644 index 11576f1..0000000 --- a/src/server.ts +++ /dev/null @@ -1,50 +0,0 @@ -//@ts-nocheck //TODO: this - -import express from 'express'; -import bodyParser from 'body-parser'; - -class WebSocket { - client: any; - app: any; - server: any; - constructor(port: any, client: any) { - this.client = client; - - this.app = express() - this.app.use(bodyParser.urlencoded({ extended: false })) - this.app.use(bodyParser.json()) - - this.registerRoots() - - this.server = this.app.listen(port, () => { - console.log('\x1b[0m' + 'Listening on port: ' + '\x1b[36m' + this.server.address().port) - }) - } - // http://localhost:port?token=123456 - registerRoots() { - this.app.all('*', function (req, res, next) { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS'); - res.header('Access-Control-Allow-Headers', 'Content-Type'); - next(); - }); - - this.app.get('/', (req, res) => { - res.redirect('https://kyzer.co/discord/bots/uwufier/') - }) - this.app.get('/api/v1/commands/', async (req, res) => { - res.json({ commands: await this.client.registry.commands.size }) - }); - this.app.get('/api/v1/groups/', async (req, res) => { - res.json({ groups: await this.client.registry.groups.size }) - }); - this.app.get('/api/v1/commands/groups/', async (req, res) => { - res.json({ groups: await this.client.registry.groups.size }) - }); - this.app.get('/api/v1/guilds/', async (req, res) => { - res.json({ guilds: await this.client.guilds.cache.size }) - }); - } -} - -module.exports = WebSocket
\ No newline at end of file diff --git a/src/types/image.ts b/src/types/image.ts deleted file mode 100644 index 27ed336..0000000 --- a/src/types/image.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { ArgumentType, CommandoClient, CommandoMessage, Argument } from 'discord.js-commando'; -const fileTypeRe = /\.(jpe?g|png|gif)$/i; -import request from 'node-superfetch'; - -module.exports = class ImageArgumentType extends ArgumentType { - constructor(client: CommandoClient) { - super(client, 'image'); - } - //@ts-ignore - async validate(value: any, msg: CommandoMessage, arg: Argument) { - const attachment = msg.attachments.first(); - if (attachment) { - if (!attachment.height || !attachment.width) return false; - if (attachment.size > 8e+6) return 'Please provide an image under 8 MB.'; - //@ts-ignore type undefined is not assignable to type whatever - if (!fileTypeRe.test(attachment.name)) return 'Please only send PNG, JPG, or GIF format images.'; - return true; - } - if (fileTypeRe.test(value.toLowerCase())) { - try { - await request.get(value); - return true; - } catch { - return false; - } - } - return this.client.registry.types.get('user')?.validate(value, msg, arg); - } - async parse(value: any, msg: CommandoMessage, arg: Argument) { - const attachment = msg.attachments.first(); - if (attachment) return attachment.url; - if (fileTypeRe.test(value.toLowerCase())) return value; - const user = await this.client.registry.types.get('user')?.parse(value, msg, arg); - return user.displayAvatarURL({ format: 'png', size: 512 }); - } - //@ts-ignore - isEmpty(value: any, msg: CommandoMessage, arg: Argument) { - if (msg.attachments.size) return false; - return this.client.registry.types.get('user')?.isEmpty(value, msg, arg); - } -};
\ No newline at end of file diff --git a/src/types/month.ts b/src/types/month.ts deleted file mode 100644 index fdb5333..0000000 --- a/src/types/month.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ArgumentType, CommandoClient } from 'discord.js-commando'; -import months from '../assets/json/month.json' - -module.exports = class MonthArgumentType extends ArgumentType { - constructor(client: CommandoClient) { - super(client, 'month'); - } - - validate(value: string) { - const num = Number.parseInt(value, 10); - if (num > 0 && num < 13) return true; - if (months.includes(value.toLowerCase())) return true; - return false; - } - - parse(value: string) { - const num = Number.parseInt(value, 10); - if (!Number.isNaN(num)) return num; - return months.indexOf(value.toLowerCase()) + 1; - } -};
\ No newline at end of file diff --git a/src/utils/Canvas.ts b/src/utils/Canvas.ts deleted file mode 100644 index 23ae558..0000000 --- a/src/utils/Canvas.ts +++ /dev/null @@ -1,185 +0,0 @@ -// TODO: all this -//@ts-nocheck -import { createCanvas } from 'canvas' - -module.exports = class CanvasUtil { - static greyscale(ctx, x, y, width, height) { - const data = ctx.getImageData(x, y, width, height); - for (let i = 0; i < data.data.length; i += 4) { - const brightness = (0.34 * data.data[i]) + (0.5 * data.data[i + 1]) + (0.16 * data.data[i + 2]); - data.data[i] = brightness; - data.data[i + 1] = brightness; - data.data[i + 2] = brightness; - } - ctx.putImageData(data, x, y); - return ctx; - } - - static invert(ctx, x, y, width, height) { - const data = ctx.getImageData(x, y, width, height); - for (let i = 0; i < data.data.length; i += 4) { - data.data[i] = 255 - data.data[i]; - data.data[i + 1] = 255 - data.data[i + 1]; - data.data[i + 2] = 255 - data.data[i + 2]; - } - ctx.putImageData(data, x, y); - return ctx; - } - - static silhouette(ctx, x, y, width, height) { - const data = ctx.getImageData(x, y, width, height); - for (let i = 0; i < data.data.length; i += 4) { - data.data[i] = 0; - data.data[i + 1] = 0; - data.data[i + 2] = 0; - } - ctx.putImageData(data, x, y); - return ctx; - } - - static sepia(ctx, x, y, width, height) { - const data = ctx.getImageData(x, y, width, height); - for (let i = 0; i < data.data.length; i += 4) { - const brightness = (0.34 * data.data[i]) + (0.5 * data.data[i + 1]) + (0.16 * data.data[i + 2]); - data.data[i] = brightness + 100; - data.data[i + 1] = brightness + 50; - data.data[i + 2] = brightness; - } - ctx.putImageData(data, x, y); - return ctx; - } - - static contrast(ctx, x, y, width, height) { - const data = ctx.getImageData(x, y, width, height); - const factor = (259 / 100) + 1; - const intercept = 128 * (1 - factor); - for (let i = 0; i < data.data.length; i += 4) { - data.data[i] = (data.data[i] * factor) + intercept; - data.data[i + 1] = (data.data[i + 1] * factor) + intercept; - data.data[i + 2] = (data.data[i + 2] * factor) + intercept; - } - ctx.putImageData(data, x, y); - return ctx; - } - - static distort(ctx, amplitude, x, y, width, height, strideLevel = 4) { - const data = ctx.getImageData(x, y, width, height); - const temp = ctx.getImageData(x, y, width, height); - const stride = width * strideLevel; - for (let i = 0; i < width; i++) { - for (let j = 0; j < height; j++) { - const xs = Math.round(amplitude * Math.sin(2 * Math.PI * 3 * (j / height))); - const ys = Math.round(amplitude * Math.cos(2 * Math.PI * 3 * (i / width))); - const dest = (j * stride) + (i * strideLevel); - const src = ((j + ys) * stride) + ((i + xs) * strideLevel); - data.data[dest] = temp.data[src]; - data.data[dest + 1] = temp.data[src + 1]; - data.data[dest + 2] = temp.data[src + 2]; - } - } - ctx.putImageData(data, x, y); - return ctx; - } - - static hasAlpha(image) { - const canvas = createCanvas(image.width, image.height); - const ctx = canvas.getContext('2d'); - ctx.drawImage(image, 0, 0); - const data = ctx.getImageData(0, 0, canvas.width, canvas.height); - let hasAlphaPixels = false; - for (let i = 3; i < data.data.length; i += 4) { - if (data.data[i] < 255) { - hasAlphaPixels = true; - break; - } - } - return hasAlphaPixels; - } - - static drawImageWithTint(ctx, image, color, x, y, width, height) { - const { fillStyle, globalAlpha } = ctx; - ctx.fillStyle = color; - ctx.drawImage(image, x, y, width, height); - ctx.globalAlpha = 0.5; - ctx.fillRect(x, y, width, height); - ctx.fillStyle = fillStyle; - ctx.globalAlpha = globalAlpha; - } - - static shortenText(ctx, text, maxWidth) { - let shorten = false; - while (ctx.measureText(text).width > maxWidth) { - if (!shorten) shorten = true; - text = text.substr(0, text.length - 1); - } - return shorten ? `${text}...` : text; - } - - static wrapText(ctx, text, maxWidth) { - return new Promise(resolve => { - if (ctx.measureText(text).width < maxWidth) return resolve([text]); - if (ctx.measureText('W').width > maxWidth) return resolve(null); - const words = text.split(' '); - const lines = []; - let line = ''; - while (words.length > 0) { - let split = false; - while (ctx.measureText(words[0]).width >= maxWidth) { - const temp = words[0]; - words[0] = temp.slice(0, -1); - if (split) { - words[1] = `${temp.slice(-1)}${words[1]}`; - } else { - split = true; - words.splice(1, 0, temp.slice(-1)); - } - } - if (ctx.measureText(`${line}${words[0]}`).width < maxWidth) { - line += `${words.shift()} `; - } else { - lines.push(line.trim()); - line = ''; - } - if (words.length === 0) lines.push(line.trim()); - } - return resolve(lines); - }); - } - - static centerImage(base, data) { - const dataRatio = data.width / data.height; - const baseRatio = base.width / base.height; - let { width, height } = data; - let x = 0; - let y = 0; - if (baseRatio < dataRatio) { - height = data.height; - width = base.width * (height / base.height); - x = (data.width - width) / 2; - y = 0; - } else if (baseRatio > dataRatio) { - width = data.width; - height = base.height * (width / base.width); - x = 0; - y = (data.height - height) / 2; - } - return { x, y, width, height }; - } - - static centerImagePart(data, maxWidth, maxHeight, widthOffset, heightOffest) { - let { width, height } = data; - if (width > maxWidth) { - const ratio = maxWidth / width; - width = maxWidth; - height *= ratio; - } - if (height > maxHeight) { - const ratio = maxHeight / height; - height = maxHeight; - width *= ratio; - } - const x = widthOffset + ((maxWidth / 2) - (width / 2)); - const y = heightOffest + ((maxHeight / 2) - (height / 2)); - return { x, y, width, height }; - } -};
\ No newline at end of file diff --git a/src/utils/Util.ts b/src/utils/Util.ts deleted file mode 100644 index 4ad20a3..0000000 --- a/src/utils/Util.ts +++ /dev/null @@ -1,189 +0,0 @@ -import crypto from 'crypto'; -const yes = ['yes', 'y', 'ye', 'yeah', 'yup', 'yea', 'ya', 'hai', 'si', 'sí', 'oui', 'はい', 'correct']; -const no = ['no', 'n', 'nah', 'nope', 'nop', 'iie', 'いいえ', 'non', 'fuck off']; - -module.exports = class Util { - static delay(ms: number) { - return new Promise(resolve => setTimeout(resolve, ms)); - } - - // TODO: maybe infer this - static shuffle(array: any) { - const arr = array.slice(0); - for (let i = arr.length - 1; i >= 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - const temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - } - return arr; - } - - static list(arr: any[], conj = 'and') { - const len = arr.length; - if (len === 0) return ''; - if (len === 1) return arr[0]; - return `${arr.slice(0, -1).join(', ')}${len > 1 ? `${len > 2 ? ',' : ''} ${conj} ` : ''}${arr.slice(-1)}`; - } - - static shorten(text: string, maxLen = 2000) { - return text.length > maxLen ? `${text.substr(0, maxLen - 3)}...` : text; - } - - static randomRange(min: number, max: number) { - return Math.floor(Math.random() * (max - min + 1)) + min; - } - - static trimArray(arr: string[], maxLen = 10) { - if (arr.length > maxLen) { - const len = arr.length - maxLen; - arr = arr.slice(0, maxLen); - arr.push(`${len} more...`); - } - return arr; - } - - static removeDuplicates(arr: string | any[]) { - if (arr.length === 0 || arr.length === 1) return arr; - const newArr: any[] = []; - for (let i = 0; i < arr.length; i++) { - if (newArr.includes(arr[i])) continue; - newArr.push(arr[i]); - } - return newArr; - } - - static sortByName(arr: any[], prop: string | number) { - return arr.sort((a, b) => { - if (prop) return a[prop].toLowerCase() > b[prop].toLowerCase() ? 1 : -1; - return a.toLowerCase() > b.toLowerCase() ? 1 : -1; - }); - } - - static firstUpperCase(text: string, split = ' ') { - return text.split(split).map(word => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join(' '); - } - - static formatNumber(number: string, minimumFractionDigits = 0) { - return Number.parseFloat(number).toLocaleString(undefined, { - minimumFractionDigits, - maximumFractionDigits: 2 - }); - } - - //TODO: maybe infer this - static base64(text: any, mode = 'encode') { - if (mode === 'encode') return Buffer.from(text).toString('base64'); - if (mode === 'decode') return Buffer.from(text, 'base64').toString('utf8') || null; - throw new TypeError(`${mode} is not a supported base64 mode.`); - } - - //TODO: maybe infer this - static hash(text: any, algorithm: any) { - return crypto.createHash(algorithm).update(text).digest('hex'); - } - - //TODO: maybe infer this - static streamToArray(stream: any) { - if (!stream.readable) return Promise.resolve([]); - return new Promise((resolve, reject) => { - const array: any = []; - function onData(data: any) { - array.push(data); - } - function onEnd(error: any) { - if (error) reject(error); - else resolve(array); - cleanup(); - } - function onClose() { - resolve(array); - cleanup(); - } - function cleanup() { - stream.removeListener('data', onData); - stream.removeListener('end', onEnd); - stream.removeListener('error', onEnd); - stream.removeListener('close', onClose); - } - stream.on('data', onData); - stream.on('end', onEnd); - stream.on('error', onEnd); - stream.on('close', onClose); - }); - } - - static percentColor(pct: number, percentColors: string | any[]) { - let i = 1; - for (i; i < percentColors.length - 1; i++) { - if (pct < percentColors[i].pct) { - break; - } - } - const lower = percentColors[i - 1]; - const upper = percentColors[i]; - const range = upper.pct - lower.pct; - const rangePct = (pct - lower.pct) / range; - const pctLower = 1 - rangePct; - const pctUpper = rangePct; - const color = { - r: Math.floor((lower.color.r * pctLower) + (upper.color.r * pctUpper)).toString(16).padStart(2, '0'), - g: Math.floor((lower.color.g * pctLower) + (upper.color.g * pctUpper)).toString(16).padStart(2, '0'), - b: Math.floor((lower.color.b * pctLower) + (upper.color.b * pctUpper)).toString(16).padStart(2, '0') - }; - return `#${color.r}${color.g}${color.b}`; - } - - static today(timeZone: number) { - const now = new Date(); - now.setHours(0); - now.setMinutes(0); - now.setSeconds(0); - now.setMilliseconds(0); - if (timeZone) now.setUTCHours(now.getUTCHours() + timeZone); - return now; - } - - static tomorrow(timeZone: any) { - const today = Util.today(timeZone); - today.setDate(today.getDate() + 1); - return today; - } - - static embedURL(title: any, url: string, display: any) { - return `[${title}](${url.replace(/\)/g, '%27')}${display ? ` "${display}"` : ''})`; - } - - static async verify(channel, user, { time = 30000, extraYes = [], extraNo = [] } = {}) { - const filter = res => { - const value = res.content.toLowerCase(); - return (user ? res.author.id === user.id : true) - && (yes.includes(value) || no.includes(value) || extraYes.includes(value) || extraNo.includes(value)); - }; - const verify = await channel.awaitMessages(filter, { - max: 1, - time - }); - if (!verify.size) return 0; - const choice = verify.first().content.toLowerCase(); - if (yes.includes(choice) || extraYes.includes(choice)) return true; - if (no.includes(choice) || extraNo.includes(choice)) return false; - return false; - } - - static cleanAnilistHTML(html) { - let clean = html - .replace(/\r|\n|\f/g, '') - .replace(/<br>/g, '\n') - .replace(/'/g, '\'') - .replace(/"/g, '"') - .replace(/<\/?i>/g, '*') - .replace(/<\/?b>/g, '**') - .replace(/~!|!~/g, '||') - .replace(/—/g, '—'); - if (clean.length > 2000) clean = `${clean.substr(0, 1995)}...`; - const spoilers = (clean.match(/\|\|/g) || []).length; - if (spoilers !== 0 && (spoilers && (spoilers % 2))) clean += '||'; - return clean; - } -};
\ No newline at end of file diff --git a/src/utils/gameDigHelper.ts b/src/utils/gameDigHelper.ts deleted file mode 100644 index 482c87a..0000000 --- a/src/utils/gameDigHelper.ts +++ /dev/null @@ -1,47 +0,0 @@ -//@ts-ignore no types -import ms from "ms"; -import { Util, MessageEmbed } from 'discord.js' - -/** -* Quickly create an embed for a GameDig status using values found in all responses -* @name gamedigHelper -* @param {Object} res Result from GameDig -* @returns {MessageEmbed} -*/ -module.exports = (res: any) => { - const playerCount = res.players.length - const maxPlayers = res.maxPlayers - - const emb = new MessageEmbed() - .setTitle(res.name) - .setFooter(`Took ${ms(res.ping)} to complete.`) - .addFields([ - { - name: 'Connect', - value: `${res.connect}` - }, - { - name: 'Online Players', - value: `${playerCount}/${maxPlayers} (${Math.round((playerCount / maxPlayers) * 100)}%)` - }, - { - name: 'Map', - value: Util.escapeMarkdown(res.map) - }, - { - name: 'Password Required', - value: res.password ? 'Yes' : 'No' - } - ]) - - const unconfirmedValues = new Map([ - [res.raw.secure, (secure: any) => emb.addField('Vac Secured', secure ? 'Yes' : 'No')], - [res.raw.games, game => emb.addField('Game', Util.escapeMarkdown(game))] - ]) - - unconfirmedValues.forEach((val, key) => { - if (typeof key !== 'undefined') val(key) - }) - - return emb -}
\ No newline at end of file diff --git a/src/utils/genCmdURL.ts b/src/utils/genCmdURL.ts deleted file mode 100644 index 0519de0..0000000 --- a/src/utils/genCmdURL.ts +++ /dev/null @@ -1 +0,0 @@ -module.exports = (cmd: { group: { name: string; }; name: any; }) => `/commands/${cmd.group.name.toLowerCase().replace(/\s/g, "-")}/${cmd.name}`;
\ No newline at end of file diff --git a/src/utils/simpleFormat.ts b/src/utils/simpleFormat.ts deleted file mode 100644 index 4564778..0000000 --- a/src/utils/simpleFormat.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** -* @name simpleFormat -* @param {number|string} value Value to format -* @returns {number} A number in fixed-point notation up to 2 decimal points -*/ -module.exports = (value: string) => { - const result = parseFloat(parseFloat(value).toFixed(2)); - return result; -};
\ No newline at end of file diff --git a/src/utils/stripWebhookURL.ts b/src/utils/stripWebhookURL.ts deleted file mode 100644 index 73a227c..0000000 --- a/src/utils/stripWebhookURL.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** -* Gets the ID and token for a webhook from a webhook URL from the Discord client -* @param {string} url URL for the webhook from the Discord client -* @returns {Object} Object with the webhook ID and token -*/ -module.exports = (url: string) => { - const regex = /https:\/\/discordapp\.com\/api\/webhooks\/(\d{1,})\/([\w-_]{1,})/; - const matches = regex.exec(url); - - //@ts-ignore dont care if null - return { id: matches[1], token: matches[2] }; -};
\ No newline at end of file diff --git a/src/utils/truncateText.ts b/src/utils/truncateText.ts deleted file mode 100644 index f2fa7d0..0000000 --- a/src/utils/truncateText.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** -* @param {string} string String to truncate -* @param {number} [number=2048] Number to truncate to -* @returns {string} Truncated string or original if string was short enough to begin with -*/ -module.exports = (string: any, number = 2048) => (string.length > number ? `${string.substring(0, number - 3)}...` : string);
\ No newline at end of file diff --git a/src/utils/wait.ts b/src/utils/wait.ts deleted file mode 100644 index 4af65f1..0000000 --- a/src/utils/wait.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** -* @name wait -* @param {number} delay Delay in milliseconds to wait for -* @returns {Promise<resolve>} -*/ -module.exports = (delay: number) => new Promise(resolve => setTimeout(resolve, delay));
\ No newline at end of file diff --git a/src/utils/winPercentage.ts b/src/utils/winPercentage.ts deleted file mode 100644 index 627dab8..0000000 --- a/src/utils/winPercentage.ts +++ /dev/null @@ -1,16 +0,0 @@ -import config from '../config.json' -/** -* @name winPercentage -* @param {number} multiplier Multiplier to calculate win percentage for -* @param {User} user User to calculate win percentage for -* @returns {number} User balance -*/ -module.exports = (multiplier: any, user: any) => { - // Load the default setting - //let { houseEdgePercentage } = config; - - // If they're a crown supporter, set it to the patron percentage - //if (config.patrons[user.id] && config.patrons[user.id].crown === true) houseEdgePercentage = 0; - - //return (100 - houseEdgePercentage) / multiplier; -};
\ No newline at end of file |