summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author8cy <[email protected]>2020-04-29 04:36:14 -0700
committer8cy <[email protected]>2020-04-29 04:36:14 -0700
commit68d32ab1fa9c79e848038ca1c451e7d8f368531b (patch)
tree6142669ecc054e8a94bad4723dc6fb5c83f8cee1
parentThe Return, v8.2.0 (diff)
downloaddep-core-68d32ab1fa9c79e848038ca1c451e7d8f368531b.tar.xz
dep-core-68d32ab1fa9c79e848038ca1c451e7d8f368531b.zip
Cerasus, v9.0.0
basically just add an insane amount of things - all new animal commands - waifu cmds - change/ move clientid, invite, uwufy, support, howify, say, pfp - add ip, security key, vote, datefacts, githubzen, fmk, fml, offsptring, facts, rate, opinion, onion, quantum coin, rolldie, romannumerals, russianrullete, smashorpass, spoiler, sub - minecraft cmds - SERVER check cmds - lewd cmds - roleplay commands - fun commands and games - utils
-rw-r--r--dist/bot.js8
-rw-r--r--dist/commands/animals/bunny.js55
-rw-r--r--dist/commands/animals/cat.js55
-rw-r--r--dist/commands/animals/cow.js (renamed from dist/commands/fun/cow.js)6
-rw-r--r--dist/commands/animals/dog.js55
-rw-r--r--dist/commands/animals/duck.js55
-rw-r--r--dist/commands/animals/fox.js55
-rw-r--r--dist/commands/animals/owl.js55
-rw-r--r--dist/commands/anime/uwufy.js6
-rw-r--r--dist/commands/anime/waifu.js48
-rw-r--r--dist/commands/bot/clientid.js13
-rw-r--r--dist/commands/bot/generatecommands.js55
-rw-r--r--dist/commands/bot/guildbackdoor.js56
-rw-r--r--dist/commands/bot/invite.js7
-rw-r--r--dist/commands/bot/ip.js51
-rw-r--r--dist/commands/bot/support.js7
-rw-r--r--dist/commands/bot/vote.js27
-rw-r--r--dist/commands/crypto/securitykey.js31
-rw-r--r--dist/commands/fun/clapify.js33
-rw-r--r--dist/commands/fun/datefact.js68
-rw-r--r--dist/commands/fun/dayfact.js59
-rw-r--r--dist/commands/fun/drawcards.js67
-rw-r--r--dist/commands/fun/fml.js53
-rw-r--r--dist/commands/fun/githubzen.js51
-rw-r--r--dist/commands/fun/howify.js3
-rw-r--r--dist/commands/fun/iq.js52
-rw-r--r--dist/commands/fun/kissmarrykill.js90
-rw-r--r--dist/commands/fun/numberfact.js63
-rw-r--r--dist/commands/fun/offspring.js29
-rw-r--r--dist/commands/fun/onion.js54
-rw-r--r--dist/commands/fun/opinion.js37
-rw-r--r--dist/commands/fun/quantumcoinflip.js31
-rw-r--r--dist/commands/fun/randomfacts.js87
-rw-r--r--dist/commands/fun/rate.js36
-rw-r--r--dist/commands/fun/rolldie.js31
-rw-r--r--dist/commands/fun/romannumeral.js56
-rw-r--r--dist/commands/fun/russianroulette.js31
-rw-r--r--dist/commands/fun/say.js2
-rw-r--r--dist/commands/fun/showerthought.js33
-rw-r--r--dist/commands/fun/smashorpass.js49
-rw-r--r--dist/commands/fun/spoiler.js32
-rw-r--r--dist/commands/fun/subreddit.js50
-rw-r--r--dist/commands/fun/yearfact.js57
-rw-r--r--dist/commands/fun/yomomma.js48
-rw-r--r--dist/commands/minecraft/getbody.js56
-rw-r--r--dist/commands/minecraft/getface.js56
-rw-r--r--dist/commands/minecraft/gethead.js56
-rw-r--r--dist/commands/minecraft/getminime.js68
-rw-r--r--dist/commands/minecraft/getskin.js56
-rw-r--r--dist/commands/minecraft/minecraftserverstatus.js87
-rw-r--r--dist/commands/nsfw/danbooru.js14
-rw-r--r--dist/commands/nsfw/gelbooru.js14
-rw-r--r--dist/commands/nsfw/rule34.js19
-rw-r--r--dist/commands/roleplay/blush.js35
-rw-r--r--dist/commands/roleplay/celebrate.js28
-rw-r--r--dist/commands/roleplay/eat.js28
-rw-r--r--dist/commands/roleplay/fistbump.js36
-rw-r--r--dist/commands/roleplay/highfive.js36
-rw-r--r--dist/commands/roleplay/holdhands.js36
-rw-r--r--dist/commands/roleplay/hug.js35
-rw-r--r--dist/commands/roleplay/inhale.js35
-rw-r--r--dist/commands/roleplay/kill.js35
-rw-r--r--dist/commands/roleplay/kiss.js35
-rw-r--r--dist/commands/roleplay/pat.js35
-rw-r--r--dist/commands/roleplay/poke.js35
-rw-r--r--dist/commands/roleplay/punch.js35
-rw-r--r--dist/commands/roleplay/slap.js35
-rw-r--r--dist/commands/roleplay/sleep.js28
-rw-r--r--dist/commands/roleplay/wakeup.js29
-rw-r--r--dist/commands/roleplay/wave.js35
-rw-r--r--dist/commands/roleplay/wink.js35
-rw-r--r--dist/commands/server/oldestmember.js55
-rw-r--r--dist/commands/server/quotemessage.js78
-rw-r--r--dist/commands/server/randommember.js39
-rw-r--r--dist/commands/server/roleinfo.js62
-rw-r--r--dist/commands/server/roles.js43
-rw-r--r--dist/commands/user/age.js52
-rw-r--r--dist/commands/user/id.js36
-rw-r--r--dist/commands/user/nitro.js32
-rw-r--r--dist/commands/user/pfp.js4
-rw-r--r--dist/commands/utility/average.js57
-rw-r--r--dist/commands/utility/csgoserverstatus.js90
-rw-r--r--dist/commands/utility/fortnitestats.js106
-rw-r--r--dist/commands/utility/gmodserverstatus.js89
-rw-r--r--dist/commands/utility/iss.js48
-rw-r--r--dist/commands/utility/rustserverstatus.js87
-rw-r--r--dist/commands/utility/starboundserverstatus.js105
-rw-r--r--dist/config.json5
-rw-r--r--dist/models/Command.js17
-rw-r--r--dist/models/commands/Subreddit.js90
-rw-r--r--dist/utils/Util.js199
-rw-r--r--dist/utils/gameDigHelper.js42
-rw-r--r--dist/utils/genCmdURL.js3
-rw-r--r--dist/utils/simpleFormat.js6
-rw-r--r--dist/utils/stripWebhookURL.js7
-rw-r--r--dist/utils/truncateText.js3
-rw-r--r--dist/utils/wait.js3
-rw-r--r--dist/utils/winPercentage.js5
-rw-r--r--package.json12
-rw-r--r--src/bot.ts6
-rw-r--r--src/commands/animals/bunny.ts38
-rw-r--r--src/commands/animals/cat.ts38
-rw-r--r--src/commands/animals/cow.ts (renamed from src/commands/fun/cow.ts)4
-rw-r--r--src/commands/animals/dog.ts38
-rw-r--r--src/commands/animals/duck.ts38
-rw-r--r--src/commands/animals/fox.ts38
-rw-r--r--src/commands/animals/owl.ts38
-rw-r--r--src/commands/anime/uwufy.ts4
-rw-r--r--src/commands/anime/waifu.ts34
-rw-r--r--src/commands/bot/clientid.ts12
-rw-r--r--src/commands/bot/generatecommands.ts45
-rw-r--r--src/commands/bot/guildbackdoor.ts54
-rw-r--r--src/commands/bot/invite.ts5
-rw-r--r--src/commands/bot/ip.ts38
-rw-r--r--src/commands/bot/support.ts5
-rw-r--r--src/commands/bot/vote.ts25
-rw-r--r--src/commands/crypto/securitykey.ts26
-rw-r--r--src/commands/fun/clapify.ts31
-rw-r--r--src/commands/fun/datefact.ts52
-rw-r--r--src/commands/fun/dayfact.ts43
-rw-r--r--src/commands/fun/drawcards.ts61
-rw-r--r--src/commands/fun/fml.ts36
-rw-r--r--src/commands/fun/githubzen.ts35
-rw-r--r--src/commands/fun/howify.ts1
-rw-r--r--src/commands/fun/iq.ts46
-rw-r--r--src/commands/fun/kissmarrykill.ts74
-rw-r--r--src/commands/fun/numberfact.ts47
-rw-r--r--src/commands/fun/offspring.ts24
-rw-r--r--src/commands/fun/onion.ts36
-rw-r--r--src/commands/fun/opinion.ts36
-rw-r--r--src/commands/fun/quantumcoinflip.ts31
-rw-r--r--src/commands/fun/randomfacts.ts66
-rw-r--r--src/commands/fun/rate.ts31
-rw-r--r--src/commands/fun/rolldie.ts31
-rw-r--r--src/commands/fun/romannumeral.ts55
-rw-r--r--src/commands/fun/russianroulette.ts29
-rw-r--r--src/commands/fun/say.ts1
-rw-r--r--src/commands/fun/showerthought.ts29
-rw-r--r--src/commands/fun/smashorpass.ts42
-rw-r--r--src/commands/fun/spoiler.ts30
-rw-r--r--src/commands/fun/subreddit.ts46
-rw-r--r--src/commands/fun/yearfact.ts41
-rw-r--r--src/commands/fun/yomomma.ts32
-rw-r--r--src/commands/minecraft/getbody.ts45
-rw-r--r--src/commands/minecraft/getface.ts43
-rw-r--r--src/commands/minecraft/gethead.ts43
-rw-r--r--src/commands/minecraft/getminime.ts59
-rw-r--r--src/commands/minecraft/getskin.ts43
-rw-r--r--src/commands/minecraft/minecraftserverstatus.ts74
-rw-r--r--src/commands/nsfw/danbooru.ts10
-rw-r--r--src/commands/nsfw/gelbooru.ts10
-rw-r--r--src/commands/nsfw/rule34.ts15
-rw-r--r--src/commands/roleplay/blush.ts30
-rw-r--r--src/commands/roleplay/celebrate.ts23
-rw-r--r--src/commands/roleplay/eat.ts23
-rw-r--r--src/commands/roleplay/fistbump.ts31
-rw-r--r--src/commands/roleplay/highfive.ts31
-rw-r--r--src/commands/roleplay/holdhands.ts31
-rw-r--r--src/commands/roleplay/hug.ts30
-rw-r--r--src/commands/roleplay/inhale.ts30
-rw-r--r--src/commands/roleplay/kill.ts30
-rw-r--r--src/commands/roleplay/kiss.ts30
-rw-r--r--src/commands/roleplay/pat.ts30
-rw-r--r--src/commands/roleplay/poke.ts30
-rw-r--r--src/commands/roleplay/punch.ts30
-rw-r--r--src/commands/roleplay/slap.ts30
-rw-r--r--src/commands/roleplay/sleep.ts23
-rw-r--r--src/commands/roleplay/wakeup.ts24
-rw-r--r--src/commands/roleplay/wave.ts30
-rw-r--r--src/commands/roleplay/wink.ts30
-rw-r--r--src/commands/server/oldestmember.ts50
-rw-r--r--src/commands/server/quotemessage.ts88
-rw-r--r--src/commands/server/randommember.ts34
-rw-r--r--src/commands/server/roleinfo.ts61
-rw-r--r--src/commands/server/roles.ts41
-rw-r--r--src/commands/user/age.ts40
-rw-r--r--src/commands/user/id.ts32
-rw-r--r--src/commands/user/nitro.ts30
-rw-r--r--src/commands/user/pfp.ts2
-rw-r--r--src/commands/utility/average.ts43
-rw-r--r--src/commands/utility/csgoserverstatus.ts77
-rw-r--r--src/commands/utility/fortnitestats.ts101
-rw-r--r--src/commands/utility/gmodserverstatus.ts76
-rw-r--r--src/commands/utility/iss.ts31
-rw-r--r--src/commands/utility/rustserverstatus.ts76
-rw-r--r--src/commands/utility/starboundserverstatus.ts95
-rw-r--r--src/config.json5
-rw-r--r--src/models/Command.ts16
-rw-r--r--src/models/commands/Subreddit.ts64
-rw-r--r--src/utils/Util.ts185
-rw-r--r--src/utils/gameDigHelper.ts46
-rw-r--r--src/utils/genCmdURL.ts1
-rw-r--r--src/utils/simpleFormat.ts9
-rw-r--r--src/utils/stripWebhookURL.ts11
-rw-r--r--src/utils/truncateText.ts6
-rw-r--r--src/utils/wait.ts6
-rw-r--r--src/utils/winPercentage.ts16
197 files changed, 7738 insertions, 88 deletions
diff --git a/dist/bot.js b/dist/bot.js
index 7b419f6..0d99054 100644
--- a/dist/bot.js
+++ b/dist/bot.js
@@ -37,7 +37,11 @@ client.registry
['crypto', 'Crypto Command Group'],
['zerotwo', 'Zero Two Command Group'],
['bot', 'Bot COmmand Group'],
- ['user', 'User Command Group']
+ ['user', 'User Command Group'],
+ ['utility', 'Utility Command Group'],
+ ['minecraft', 'Minecraft Command Group'],
+ ['animals', 'Animal Command Group'],
+ ['roleplay', 'Roleplay Command Group']
])
.registerDefaultGroups()
.registerDefaultCommands({
@@ -130,4 +134,4 @@ client.on('message', (msg) => __awaiter(void 0, void 0, void 0, function* () {
}
}));
client.login(config_json_1.default['secret']);
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUFtQztBQUNuQyw2REFBcUQ7QUFFckQscUVBQTBDO0FBRTFDLHdEQUE2QjtBQUM3QixrQkFBSyxDQUFDLE9BQU8sQ0FBQywwRUFBMEUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUM5SSxnREFBd0I7QUFDeEIsZ0VBQWlDO0FBQ2pDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0FBRWpDLE1BQU0sTUFBTSxHQUFHLElBQUksb0NBQWMsQ0FBQztJQUM5QixhQUFhLEVBQUUsTUFBTTtJQUNyQixLQUFLLEVBQUUsb0JBQW9CO0lBQzNCLE1BQU0sRUFBRSw0QkFBNEI7Q0FDdkMsQ0FBQyxDQUFDO0FBSUgsTUFBTSxDQUFDLFFBQVE7S0FDVixvQkFBb0IsRUFBRTtLQUN0QixjQUFjLENBQUM7SUFDWixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQztJQUM1QixDQUFDLFlBQVksRUFBRSwwQkFBMEIsQ0FBQztJQUMxQyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQztJQUNsQyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQztJQUNoQyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQztJQUM5QixDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQztJQUNoQyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQztJQUNsQyxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQztJQUNyQyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQztJQUM1QixDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQztDQUNqQyxDQUFDO0tBQ0QscUJBQXFCLEVBQUU7S0FDdkIsdUJBQXVCLENBQUM7SUFDckIsSUFBSSxFQUFFLElBQUk7Q0FFYixDQUFDO0tBQ0Qs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 \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUFtQztBQUNuQyw2REFBcUQ7QUFFckQscUVBQTBDO0FBRTFDLHdEQUE2QjtBQUM3QixrQkFBSyxDQUFDLE9BQU8sQ0FBQywwRUFBMEUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUM5SSxnREFBd0I7QUFDeEIsZ0VBQWlDO0FBQ2pDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0FBRWpDLE1BQU0sTUFBTSxHQUFHLElBQUksb0NBQWMsQ0FBQztJQUM5QixhQUFhLEVBQUUsTUFBTTtJQUNyQixLQUFLLEVBQUUsb0JBQW9CO0lBQzNCLE1BQU0sRUFBRSw0QkFBNEI7Q0FDdkMsQ0FBQyxDQUFDO0FBSUgsTUFBTSxDQUFDLFFBQVE7S0FDVixvQkFBb0IsRUFBRTtLQUN0QixjQUFjLENBQUM7SUFDWixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQztJQUM1QixDQUFDLFlBQVksRUFBRSwwQkFBMEIsQ0FBQztJQUMxQyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQztJQUNsQyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQztJQUNoQyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQztJQUM5QixDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQztJQUNoQyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQztJQUNsQyxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQztJQUNyQyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQztJQUM1QixDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQztJQUM5QixDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQztJQUNwQyxDQUFDLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQztJQUN4QyxDQUFDLFNBQVMs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 \ No newline at end of file
diff --git a/dist/commands/animals/bunny.js b/dist/commands/animals/bunny.js
new file mode 100644
index 0000000..ab12da6
--- /dev/null
+++ b/dist/commands/animals/bunny.js
@@ -0,0 +1,55 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
+const axios_1 = __importDefault(require("axios"));
+module.exports = class BunnyAnimals extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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']
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ let emb = new discord_js_1.MessageEmbed()
+ .setAuthor('bunnies.io')
+ .setColor(0xFFCC4D)
+ .setImage(yield (yield axios_1.default.get('https://api.bunnies.io/v2/loop/random/?media=gif,png')).data.media.gif);
+ msg.say(emb);
+ }
+ catch (err) {
+ console.log(err);
+ msg.reply('Woops, there was an error with the (https://api.bunnies.io) API. ' + emoji_random_1.default.random());
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVubnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYW5pbWFscy9idW5ueS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBZ0M7QUFDaEMsMkNBQTBDO0FBQzFDLGtEQUEwQjtBQUUxQixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRTtnQkFDTCxhQUFhO2dCQUNiLGNBQWM7YUFDakI7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsT0FBTztZQUNuQixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUN2QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9COztZQUMxQixJQUFJO2dCQUNBLElBQUksR0FBRyxHQUFHLElBQUkseUJBQVksRUFBRTtxQkFDdkIsU0FBUyxDQUFDLFlBQVksQ0FBQztxQkFDdkIsUUFBUSxDQUFDLFFBQVEsQ0FBQztxQkFDbEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsc0RBQXNELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQzdHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDZjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUVBQW1FLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQ2xHO1FBQ0wsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/animals/cat.js b/dist/commands/animals/cat.js
new file mode 100644
index 0000000..c5a9b7a
--- /dev/null
+++ b/dist/commands/animals/cat.js
@@ -0,0 +1,55 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
+const axios_1 = __importDefault(require("axios"));
+module.exports = class CatAnimals extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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']
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ let emb = new discord_js_1.MessageEmbed()
+ .setAuthor('random.cat', 'https://i.imgur.com/Ik0Gf0r.png', 'https://random.cat')
+ .setColor(0xFFCC4D)
+ .setImage(yield (yield axios_1.default.get('https://aws.random.cat/meow')).data.file);
+ msg.say(emb);
+ }
+ catch (err) {
+ console.log(err);
+ msg.reply('Woops, there was an error with the (http://random.cat) API. ' + emoji_random_1.default.random());
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FuaW1hbHMvY2F0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFnQztBQUNoQywyQ0FBMEM7QUFDMUMsa0RBQTBCO0FBRTFCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFXLFNBQVEsNkJBQU87SUFDN0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFO2dCQUNMLFdBQVc7Z0JBQ1gsWUFBWTthQUNmO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDckIsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQjs7WUFDMUIsSUFBSTtnQkFDQSxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7cUJBQ3ZCLFNBQVMsQ0FBQyxZQUFZLEVBQUUsaUNBQWlDLEVBQUUsb0JBQW9CLENBQUM7cUJBQ2hGLFFBQVEsQ0FBQyxRQUFRLENBQUM7cUJBQ2xCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQy9FLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDZjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsOERBQThELEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQzdGO1FBQ0wsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/fun/cow.js b/dist/commands/animals/cow.js
index 56ad782..cad1f63 100644
--- a/dist/commands/fun/cow.js
+++ b/dist/commands/animals/cow.js
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const cows_1 = __importDefault(require("cows"));
-module.exports = class CowFun extends discord_js_commando_1.Command {
+module.exports = class CowAnimals extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
name: 'cow',
aliases: ['cows'],
- group: 'fun',
+ group: 'animals',
memberName: 'cow',
description: 'Gives you a random cow.',
throttling: {
@@ -28,4 +28,4 @@ module.exports = class CowFun extends discord_js_commando_1.Command {
msg.reply(`\`\`\`${cow}\`\`\``);
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY293LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9jb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0RBQXdCO0FBRXhCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxNQUFPLFNBQVEsNkJBQU87SUFDekMsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2pCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUM7WUFDakMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxjQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzNELElBQUksR0FBRyxHQUFHLGNBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzNCLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY293LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FuaW1hbHMvY293LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdEQUF3QjtBQUV4QixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sVUFBVyxTQUFRLDZCQUFPO0lBQzdDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsS0FBSztZQUNYLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNqQixLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUseUJBQXlCO1lBQ3RDLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQztZQUNqQyxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQjtRQUNwQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLGNBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDM0QsSUFBSSxHQUFHLEdBQUcsY0FBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/animals/dog.js b/dist/commands/animals/dog.js
new file mode 100644
index 0000000..17be311
--- /dev/null
+++ b/dist/commands/animals/dog.js
@@ -0,0 +1,55 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
+const axios_1 = __importDefault(require("axios"));
+module.exports = class DogAnimals extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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']
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ let emb = new discord_js_1.MessageEmbed()
+ .setAuthor('dog.ceo', 'https://dog.ceo/img/favicon.png', 'https://dog.ceo/dog-api/')
+ .setColor(0xFFCC4D)
+ .setImage(yield (yield axios_1.default.get('https://dog.ceo/api/breeds/image/random')).data.message);
+ msg.say(emb);
+ }
+ catch (err) {
+ console.log(err);
+ msg.reply('Woops, there was an error with the (http://dog.ceo/dog-api) API. ' + emoji_random_1.default.random());
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FuaW1hbHMvZG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFnQztBQUNoQywyQ0FBMEM7QUFDMUMsa0RBQTBCO0FBRTFCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFXLFNBQVEsNkJBQU87SUFDN0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFO2dCQUNMLFdBQVc7Z0JBQ1gsWUFBWTthQUNmO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDckIsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQjs7WUFDMUIsSUFBSTtnQkFDQSxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7cUJBQ3ZCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsMEJBQTBCLENBQUM7cUJBQ25GLFFBQVEsQ0FBQyxRQUFRLENBQUM7cUJBQ2xCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQzlGLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDZjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUVBQW1FLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQ2xHO1FBQ0wsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/animals/duck.js b/dist/commands/animals/duck.js
new file mode 100644
index 0000000..eb948ba
--- /dev/null
+++ b/dist/commands/animals/duck.js
@@ -0,0 +1,55 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
+const axios_1 = __importDefault(require("axios"));
+module.exports = class DuckAnimals extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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']
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ let emb = new discord_js_1.MessageEmbed()
+ .setAuthor('random-d.uk', 'https://random-d.uk/favicon.ico', 'https://random-d.uk')
+ .setColor(0xFFCC4D)
+ .setImage(yield (yield axios_1.default.get('https://random-d.uk/api/v1/random?type=gif')).data.url);
+ msg.say(emb);
+ }
+ catch (err) {
+ console.log(err);
+ msg.reply('Woops, there was an error with the (https://random-d.uk) API. ' + emoji_random_1.default.random());
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9hbmltYWxzL2R1Y2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWdDO0FBQ2hDLDJDQUEwQztBQUMxQyxrREFBMEI7QUFFMUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFdBQVksU0FBUSw2QkFBTztJQUM5QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixhQUFhO2FBQ2hCO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLE1BQU07WUFDbEIsV0FBVyxFQUFFLDBCQUEwQjtZQUN2QyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDdEIsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQjs7WUFDMUIsSUFBSTtnQkFDQSxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7cUJBQ3ZCLFNBQVMsQ0FBQyxhQUFhLEVBQUUsaUNBQWlDLEVBQUUscUJBQXFCLENBQUM7cUJBQ2xGLFFBQVEsQ0FBQyxRQUFRLENBQUM7cUJBQ2xCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQzdGLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDZjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0VBQWdFLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQy9GO1FBQ0wsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/animals/fox.js b/dist/commands/animals/fox.js
new file mode 100644
index 0000000..9c880c2
--- /dev/null
+++ b/dist/commands/animals/fox.js
@@ -0,0 +1,55 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
+const axios_1 = __importDefault(require("axios"));
+module.exports = class FoxAnimals extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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']
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ let emb = new discord_js_1.MessageEmbed()
+ .setAuthor('randomfox.ca')
+ .setColor(0xFFCC4D)
+ .setImage(yield (yield axios_1.default.get('https://randomfox.ca/floof/')).data.image);
+ msg.say(emb);
+ }
+ catch (err) {
+ console.log(err);
+ msg.reply('Woops, there was an error with the (https://randomfox.ca/) API. ' + emoji_random_1.default.random());
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FuaW1hbHMvZm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFnQztBQUNoQywyQ0FBMEM7QUFDMUMsa0RBQTBCO0FBRTFCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFXLFNBQVEsNkJBQU87SUFDN0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFO2dCQUNMLFdBQVc7Z0JBQ1gsWUFBWTthQUNmO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDckIsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQjs7WUFDMUIsSUFBSTtnQkFDQSxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7cUJBQ3ZCLFNBQVMsQ0FBQyxjQUFjLENBQUM7cUJBQ3pCLFFBQVEsQ0FBQyxRQUFRLENBQUM7cUJBQ2xCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2hGLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDZjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0VBQWtFLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQ2pHO1FBQ0wsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/animals/owl.js b/dist/commands/animals/owl.js
new file mode 100644
index 0000000..9af3bbc
--- /dev/null
+++ b/dist/commands/animals/owl.js
@@ -0,0 +1,55 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
+const axios_1 = __importDefault(require("axios"));
+module.exports = class OwlAnimals extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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']
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ let emb = new discord_js_1.MessageEmbed()
+ .setAuthor('pics.floofybot.moe/owl', 'http://pics.floofybot.moe/assets/favicon.svg', 'http://pics.floofybot.moe/')
+ .setColor(0xFFCC4D)
+ .setImage(yield (yield axios_1.default.get('http://pics.floofybot.moe/owl')).data.image);
+ msg.say(emb);
+ }
+ catch (err) {
+ console.log(err);
+ msg.reply('Woops, there was an error with the (http://pics.floofybot.moe/) API. ' + emoji_random_1.default.random());
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3dsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FuaW1hbHMvb3dsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFnQztBQUNoQywyQ0FBMEM7QUFDMUMsa0RBQTBCO0FBRTFCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFXLFNBQVEsNkJBQU87SUFDN0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFO2dCQUNMLFdBQVc7Z0JBQ1gsWUFBWTthQUNmO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDckIsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQjs7WUFDMUIsSUFBSTtnQkFDQSxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7cUJBQ3ZCLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSw4Q0FBOEMsRUFBRSw0QkFBNEIsQ0FBQztxQkFDakgsUUFBUSxDQUFDLFFBQVEsQ0FBQztxQkFDbEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDbEYsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNmO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyx1RUFBdUUsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7YUFDdEc7UUFDTCxDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/anime/uwufy.js b/dist/commands/anime/uwufy.js
index 33aa02c..038579c 100644
--- a/dist/commands/anime/uwufy.js
+++ b/dist/commands/anime/uwufy.js
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const emoji_random_1 = __importDefault(require("emoji-random"));
const uwufy_1 = __importDefault(require("uwufy"));
-module.exports = class UwufyFun extends discord_js_commando_1.Command {
+module.exports = class UwufyAnime extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
name: 'uwufy',
aliases: ['uwu', 'owofy', 'owo'],
- group: 'fun',
+ group: 'anime',
memberName: 'uwufy',
description: 'Uwufys anything you send.',
args: [
@@ -40,4 +40,4 @@ module.exports = class UwufyFun extends discord_js_commando_1.Command {
msg.delete();
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXd1ZnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYW5pbWUvdXd1ZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBQ2pDLGtEQUF5QjtBQUV6QixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sUUFBUyxTQUFRLDZCQUFPO0lBQzNDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ2hDLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QyxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFNBQVM7b0JBQ2QsTUFBTSxFQUFFLCtCQUErQjtvQkFDdkMsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sNkJBQTZCO2dCQUM3QiwwQkFBMEI7Z0JBQzFCLG9CQUFvQjtnQkFDcEIsdUJBQXVCO2FBQzFCO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFFO1FBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDaEQsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXd1ZnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYW5pbWUvdXd1ZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBQ2pDLGtEQUF5QjtBQUV6QixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sVUFBVyxTQUFRLDZCQUFPO0lBQzdDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ2hDLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QyxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFNBQVM7b0JBQ2QsTUFBTSxFQUFFLCtCQUErQjtvQkFDdkMsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sNkJBQTZCO2dCQUM3QiwwQkFBMEI7Z0JBQzFCLG9CQUFvQjtnQkFDcEIsdUJBQXVCO2FBQzFCO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFFO1FBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDaEQsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/anime/waifu.js b/dist/commands/anime/waifu.js
new file mode 100644
index 0000000..ce11a36
--- /dev/null
+++ b/dist/commands/anime/waifu.js
@@ -0,0 +1,48 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const node_superfetch_1 = __importDefault(require("node-superfetch"));
+const discord_js_1 = require("discord.js");
+const Util_js_1 = require("../../utils/Util.js");
+module.exports = class WaifuAnime extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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
+ },
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const num = Math.floor(Math.random() * 100000);
+ const { text } = yield node_superfetch_1.default.get(`https://www.thiswaifudoesnotexist.net/snippet-${num}.txt`);
+ let emb = new discord_js_1.MessageEmbed()
+ .setDescription(Util_js_1.shorten(text, 1000))
+ .setColor(0xFFCC4D)
+ .setThumbnail(`https://www.thiswaifudoesnotexist.net/example-${num}.jpg`);
+ msg.reply(emb);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpZnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYW5pbWUvd2FpZnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0Qsc0VBQXNDO0FBQ3RDLDJDQUEwQztBQUMxQyxpREFBNkM7QUFFN0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFVBQVcsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSwyQkFBMkIsQ0FBQztZQUMvRCxLQUFLLEVBQUUsT0FBTztZQUNkLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFBRSw2RkFBNkY7WUFDMUcsUUFBUSxFQUFFLEVBRVQ7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9COztZQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUM5QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSx5QkFBTyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUM5RixJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLGNBQWMsQ0FBQyxpQkFBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDbkMsUUFBUSxDQUFDLFFBQVEsQ0FBQztpQkFDbEIsWUFBWSxDQUFDLGlEQUFpRCxHQUFHLE1BQU0sQ0FBQyxDQUFBO1lBQzdFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/bot/clientid.js b/dist/commands/bot/clientid.js
index 39530dd..05779f7 100644
--- a/dist/commands/bot/clientid.js
+++ b/dist/commands/bot/clientid.js
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const emoji_random_1 = __importDefault(require("emoji-random"));
-const discord_js_1 = require("discord.js");
module.exports = class ClientIDBot extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
@@ -13,7 +12,7 @@ module.exports = class ClientIDBot extends discord_js_commando_1.Command {
aliases: ['cid'],
group: 'bot',
memberName: 'clientid',
- description: 'Tells you the bot\'s client ID version.',
+ description: 'Tells you the bot\'s client ID.',
examples: ['uwu!clientid', 'uwu!cid'],
userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
@@ -24,13 +23,7 @@ module.exports = class ClientIDBot extends discord_js_commando_1.Command {
});
}
run(msg) {
- msg.say('Please wait...').then(m => {
- m.edit(`** **`);
- let emb = new discord_js_1.MessageEmbed()
- .setDescription('uwufier\'s client ID is **699473263998271489**. ' + emoji_random_1.default.random())
- .setColor(0xFFCC4D);
- msg.say(emb);
- });
+ msg.reply(`**uwufier\'s** client ID is **699473263998271489**. ${emoji_random_1.default.random()}`);
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYm90L2NsaWVudGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUNqQywyQ0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFdBQVksU0FBUSw2QkFBTztJQUM5QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLFVBQVU7WUFDdEIsV0FBVyxFQUFFLHlDQUF5QztZQUN0RCxRQUFRLEVBQUUsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDO1lBQ3JDLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWhCLElBQUksR0FBRyxHQUFHLElBQUkseUJBQVksRUFBRTtpQkFDdkIsY0FBYyxDQUFDLGtEQUFrRCxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ25GLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUV2QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYm90L2NsaWVudGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUdqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sV0FBWSxTQUFRLDZCQUFPO0lBQzlDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsVUFBVTtZQUNoQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDaEIsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUM7WUFDckMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQjtRQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxzQkFBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUN0RixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/bot/generatecommands.js b/dist/commands/bot/generatecommands.js
new file mode 100644
index 0000000..50cc845
--- /dev/null
+++ b/dist/commands/bot/generatecommands.js
@@ -0,0 +1,55 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+module.exports = class GenerateCommandsBot extends discord_js_commando_1.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
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ 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' }] });
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVjb21tYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9ib3QvZ2VuZXJhdGVjb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUsvRCxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sbUJBQW9CLFNBQVEsNkJBQU87SUFDdEQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsT0FBTyxFQUFFO2dCQUNMLG1CQUFtQjtnQkFDbkIsY0FBYztnQkFDZCxlQUFlO2dCQUNmLGFBQWE7Z0JBQ2IsY0FBYztnQkFDZCxTQUFTO2dCQUNULFVBQVU7YUFDYjtZQUNELEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLGtCQUFrQjtZQUM5QixXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUN6QixlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0I7O1lBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07aUJBQ25DLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDTCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUNsRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLElBQUksT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUMxQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUE7b0JBQy9FLE9BQU8sUUFBUSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUFFLENBQUE7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFBO1lBQ25CLENBQUMsQ0FBQyxDQUFBO1lBQ04sTUFBTSxJQUFJLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQTtZQUMvRSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMxRixDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/bot/guildbackdoor.js b/dist/commands/bot/guildbackdoor.js
new file mode 100644
index 0000000..e5c191c
--- /dev/null
+++ b/dist/commands/bot/guildbackdoor.js
@@ -0,0 +1,56 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+module.exports = class GuildBackdoorBot extends discord_js_commando_1.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
+ });
+ }
+ run(msg, { gGuild }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ 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 = yield gGuild.fetchInvites();
+ console.debug('This guild\'s invites:', invites);
+ if (invites.size > 0) {
+ msg.author.send(invites.first().url);
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpbGRiYWNrZG9vci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9ib3QvZ3VpbGRiYWNrZG9vci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUcvRCxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sZ0JBQWlCLFNBQVEsNkJBQU87SUFDbkQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxlQUFlO1lBQ3JCLE9BQU8sRUFBRTtnQkFDTCxnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsaUJBQWlCO2FBQ3BCO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsZUFBZTtZQUMzQixXQUFXLEVBQUUsZ0RBQWdEO1lBQzdELFFBQVEsRUFBRSxDQUFDLDhCQUE4QixDQUFDO1lBQzFDLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxRQUFRO29CQUNiLE1BQU0sRUFBRSxxQ0FBcUM7b0JBQzdDLElBQUksRUFBRSxRQUFRO2lCQUNqQjthQUNKO1lBQ0QsU0FBUyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFOztZQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsMENBQTBDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxDQUFBO1lBRWhKLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRTdDLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFBO1lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDaEQsSUFBSSxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtnQkFDbEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ3ZDO1FBVUwsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/bot/invite.js b/dist/commands/bot/invite.js
index e648d12..88e9ba6 100644
--- a/dist/commands/bot/invite.js
+++ b/dist/commands/bot/invite.js
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
module.exports = class InviteBot extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
@@ -23,7 +24,9 @@ module.exports = class InviteBot extends discord_js_commando_1.Command {
});
}
run(msg) {
- msg.reply('https://crack.cf/uwu ' + emoji_random_1.default.random());
+ let emb = new discord_js_1.MessageEmbed()
+ .setDescription('To invite the bot, please use [this link](https://crack.cf/uwu). ' + emoji_random_1.default.random());
+ msg.say(emb);
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2JvdC9pbnZpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxTQUFVLFNBQVEsNkJBQU87SUFDNUMsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLFFBQVE7WUFDcEIsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDO1lBQ25DLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDdkQsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2JvdC9pbnZpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBQ2pDLDJDQUEwQztBQUUxQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sU0FBVSxTQUFRLDZCQUFPO0lBQzVDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSxtQ0FBbUM7WUFDaEQsUUFBUSxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUNuQyxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CO1FBQ3BCLElBQUksR0FBRyxHQUFHLElBQUkseUJBQVksRUFBRTthQUN2QixjQUFjLENBQUMsbUVBQW1FLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ3pHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEIsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/bot/ip.js b/dist/commands/bot/ip.js
new file mode 100644
index 0000000..114d3fc
--- /dev/null
+++ b/dist/commands/bot/ip.js
@@ -0,0 +1,51 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
+const node_superfetch_1 = __importDefault(require("node-superfetch"));
+module.exports = class IPBot extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'ip',
+ group: 'bot',
+ memberName: 'ip',
+ description: 'Gives you the bot\'s ip.',
+ examples: ['uwu!ip'],
+ userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
+ clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
+ throttling: {
+ usages: 5,
+ duration: 30
+ },
+ ownerOnly: true
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let { body } = yield node_superfetch_1.default
+ .get('https://api.ipify.org')
+ .query({ format: 'json' });
+ msg.say('Please wait...').then(m => {
+ m.edit(`** **`);
+ let emb = new discord_js_1.MessageEmbed()
+ .setDescription(`uwufier\'s current IP address is **${body.ip}**. ` + emoji_random_1.default.random())
+ .setColor(0xFFCC4D);
+ msg.say(emb);
+ });
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYm90L2lwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUNqQywyQ0FBMEM7QUFDMUMsc0VBQXFDO0FBRXJDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxLQUFNLFNBQVEsNkJBQU87SUFDeEMsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUNwQixlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxTQUFTLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9COztZQUMxQixJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSx5QkFBTztpQkFDdkIsR0FBRyxDQUFDLHVCQUF1QixDQUFDO2lCQUM1QixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtZQUU5QixHQUFHLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUVoQixJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7cUJBQ3ZCLGNBQWMsQ0FBQyxzQ0FBc0MsSUFBSSxDQUFDLEVBQUUsTUFBTSxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7cUJBQ3BGLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFFdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTtDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/bot/support.js b/dist/commands/bot/support.js
index b774ab7..6919c05 100644
--- a/dist/commands/bot/support.js
+++ b/dist/commands/bot/support.js
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const emoji_random_1 = __importDefault(require("emoji-random"));
+const discord_js_1 = require("discord.js");
module.exports = class SupportBot extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
@@ -22,7 +23,9 @@ module.exports = class SupportBot extends discord_js_commando_1.Command {
});
}
run(msg) {
- msg.reply('For support, please join; https://crack.cf/uwufier-support. ' + emoji_random_1.default.random());
+ let emb = new discord_js_1.MessageEmbed()
+ .setDescription('For support, please join [this server](https://crack.cf/uwufier-support). ' + emoji_random_1.default.random());
+ msg.say(emb);
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9ib3Qvc3VwcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFVBQVcsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSwyQ0FBMkM7WUFDeEQsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3pCLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyw4REFBOEQsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDOUYsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9ib3Qvc3VwcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFDakMsMkNBQTBDO0FBRTFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFXLFNBQVEsNkJBQU87SUFDN0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsMkNBQTJDO1lBQ3hELFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUN6QixlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CO1FBQ3BCLElBQUksR0FBRyxHQUFHLElBQUkseUJBQVksRUFBRTthQUN2QixjQUFjLENBQUMsNEVBQTRFLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ2xILEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEIsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/bot/vote.js b/dist/commands/bot/vote.js
new file mode 100644
index 0000000..22795a1
--- /dev/null
+++ b/dist/commands/bot/vote.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class VoteBot extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'vote',
+ group: 'bot',
+ memberName: 'vote',
+ description: 'Gives you the bot\'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) {
+ let emb = new discord_js_1.MessageEmbed()
+ .setDescription('To vote, please use [this link](https://discordbots.org/bot/699473263998271489/vote). 🗳');
+ msg.say(emb);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9ib3Qvdm90ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLE9BQVEsU0FBUSw2QkFBTztJQUMxQyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSx3Q0FBd0M7WUFDckQsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3RCLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2FBQ3ZCLGNBQWMsQ0FBQywwRkFBMEYsQ0FBQyxDQUFBO1FBQy9HLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEIsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/crypto/securitykey.js b/dist/commands/crypto/securitykey.js
new file mode 100644
index 0000000..368402c
--- /dev/null
+++ b/dist/commands/crypto/securitykey.js
@@ -0,0 +1,31 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const crypto_1 = __importDefault(require("crypto"));
+module.exports = class RateCrypto extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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) {
+ msg.reply(`Check your DMs! ${emoji_random_1.default.random()}`);
+ msg.author.send(crypto_1.default.randomBytes(15).toString('hex') + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHlrZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvY3J5cHRvL3NlY3VyaXR5a2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFnQztBQUNoQyxvREFBMkI7QUFFM0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFVBQVcsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3pCLEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLGFBQWE7WUFDekIsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QyxRQUFRLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUM3QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CO1FBQ3BCLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLHNCQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQzlDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ2xGLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/clapify.js b/dist/commands/fun/clapify.js
new file mode 100644
index 0000000..95494ae
--- /dev/null
+++ b/dist/commands/fun/clapify.js
@@ -0,0 +1,33 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+module.exports = class ClapFun extends discord_js_commando_1.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, { say }) {
+ msg.say(say.split(' ').join('👏'));
+ msg.delete();
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhcGlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vY2xhcGlmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUErRDtBQUUvRCxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sT0FBUSxTQUFRLDZCQUFPO0lBQzFDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7WUFDN0IsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsS0FBSztvQkFDVixNQUFNLEVBQUUsaUNBQWlDO29CQUN6QyxJQUFJLEVBQUUsUUFBUTtpQkFDakI7YUFDSjtZQUNELFFBQVEsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO1lBQzlDLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEdBQUcsRUFBRTtRQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDbEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2hCLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/datefact.js b/dist/commands/fun/datefact.js
new file mode 100644
index 0000000..780495e
--- /dev/null
+++ b/dist/commands/fun/datefact.js
@@ -0,0 +1,68 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const axios_1 = __importDefault(require("axios"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class DateFactFun extends discord_js_commando_1.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']
+ });
+ }
+ run(msg, { day, month }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const uri = `http://numbersapi.com/${month === 'random' || day === 'random' ? 'random' : `${month}/${day}`}/date`;
+ const fact = yield axios_1.default.get(uri).catch(err => {
+ console.log(err);
+ msg.reply('Woops, here was an error with the (http://numbersapi.com) API. ' + emoji_random_1.default.random());
+ });
+ msg.reply(fact.data);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZnVuL2RhdGVmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGtEQUF5QjtBQUN6QixnRUFBZ0M7QUFFaEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFdBQVksU0FBUSw2QkFBTztJQUM5QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsT0FBTyxFQUFFO2dCQUNMLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxZQUFZO2FBQ2Y7WUFDRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxLQUFLO29CQUNWLE1BQU0sRUFBRSwyQ0FBMkM7b0JBQ25ELElBQUksRUFBRSxTQUFTO29CQUNmLEdBQUcsRUFBRSxFQUFFO29CQUNQLEdBQUcsRUFBRSxDQUFDO29CQUNOLE9BQU8sRUFBRSxRQUFRO2lCQUNwQjtnQkFDRDtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsNkNBQTZDO29CQUNyRCxJQUFJLEVBQUUsU0FBUztvQkFDZixHQUFHLEVBQUUsRUFBRTtvQkFDUCxHQUFHLEVBQUUsQ0FBQztvQkFDTixPQUFPLEVBQUUsUUFBUTtpQkFDcEI7YUFDSjtZQUNELFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQztZQUM3QyxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFOztZQUMxQyxNQUFNLEdBQUcsR0FBRyx5QkFBeUIsS0FBSyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEdBQUcsRUFBRSxPQUFPLENBQUE7WUFDakgsTUFBTSxJQUFJLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxpRUFBaUUsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDakcsQ0FBQyxDQUFDLENBQUE7WUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/dayfact.js b/dist/commands/fun/dayfact.js
new file mode 100644
index 0000000..e052f17
--- /dev/null
+++ b/dist/commands/fun/dayfact.js
@@ -0,0 +1,59 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const axios_1 = __importDefault(require("axios"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class DayFactFun extends discord_js_commando_1.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']
+ });
+ }
+ run(msg, { day }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const fact = yield axios_1.default.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_1.default.random());
+ });
+ msg.reply(fact.data);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5ZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vZGF5ZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCxrREFBeUI7QUFDekIsZ0VBQWdDO0FBRWhDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFXLFNBQVEsNkJBQU87SUFDN0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxTQUFTO1lBQ2YsT0FBTyxFQUFFO2dCQUNMLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVixXQUFXO2FBQ2Q7WUFDRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSxvQ0FBb0M7WUFDakQsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxLQUFLO29CQUNWLE1BQU0sRUFBRSwyQ0FBMkM7b0JBQ25ELElBQUksRUFBRSxTQUFTO29CQUNmLEdBQUcsRUFBRSxFQUFFO29CQUNQLEdBQUcsRUFBRSxDQUFDO29CQUNOLE9BQU8sRUFBRSxRQUFRO2lCQUNwQjthQUNKO1lBQ0QsUUFBUSxFQUFFLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDO1lBQzNDLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEdBQUcsRUFBRTs7WUFDbkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLHlCQUF5QixHQUFHLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDMUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxpRUFBaUUsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDakcsQ0FBQyxDQUFDLENBQUE7WUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/drawcards.js b/dist/commands/fun/drawcards.js
new file mode 100644
index 0000000..b1e8f93
--- /dev/null
+++ b/dist/commands/fun/drawcards.js
@@ -0,0 +1,67 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const Util_js_1 = require("../../utils/Util.js");
+const suits = ['♣', '♥', '♦', '♠'];
+const faces = ['Jack', 'Queen', 'King'];
+module.exports = class DrawCardsFun extends discord_js_commando_1.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, { 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'}${Util_js_1.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;
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2NhcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9kcmF3Y2FyZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFBK0Q7QUFDL0QsaURBQTZDO0FBQzdDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBRXZDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxZQUFhLFNBQVEsNkJBQU87SUFDL0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFVBQVU7Z0JBQ1YsV0FBVzthQUNkO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsV0FBVztZQUN2QixXQUFXLEVBQUUsK0JBQStCO1lBQzVDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQzdCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsU0FBUztvQkFDZCxLQUFLLEVBQUUsV0FBVztvQkFDbEIsTUFBTSxFQUFFLHdDQUF3QztvQkFDaEQsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsR0FBRyxFQUFFLEVBQUU7b0JBQ1AsR0FBRyxFQUFFLENBQUM7aUJBQ1Q7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLFNBQVM7b0JBQ2QsTUFBTSxFQUFFLDRDQUE0QztvQkFDcEQsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsT0FBTyxFQUFFLEtBQUs7aUJBQ2pCO2FBQ0o7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQy9DLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDckIsSUFBSSxDQUFDLE9BQU87WUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ25FLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLGlCQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7SUFDRCxZQUFZO1FBQ1IsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUE7WUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3ZELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUE7U0FDekQ7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDcEIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/fun/fml.js b/dist/commands/fun/fml.js
new file mode 100644
index 0000000..08d29ec
--- /dev/null
+++ b/dist/commands/fun/fml.js
@@ -0,0 +1,53 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const node_superfetch_1 = __importDefault(require("node-superfetch"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const cheerio_1 = __importDefault(require("cheerio"));
+module.exports = class FMLFun extends discord_js_commando_1.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'],
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const { text } = yield node_superfetch_1.default.get('http://www.fmylife.com/random');
+ const $ = cheerio_1.default.load(text, { normalizeWhitespace: true });
+ const fml = $('a.article-link').first().text().trim();
+ return msg.reply(fml + ' ' + emoji_random_1.default.random());
+ }
+ catch (err) {
+ return msg.reply(`Woops, an error has occured: \`${err.message}\`. Try again later! ${emoji_random_1.default.random()}`);
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9mbWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0Qsc0VBQXFDO0FBQ3JDLGdFQUFnQztBQUNoQyxzREFBNkI7QUFFN0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLE1BQU8sU0FBUSw2QkFBTztJQUN6QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixjQUFjO2FBQ2pCO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUseUJBQXlCO1lBQ3RDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNyQixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9COztZQUMxQixJQUFJO2dCQUNBLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLHlCQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUE7Z0JBQ25FLE1BQU0sQ0FBQyxHQUFHLGlCQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQzNELE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUNyRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7YUFDL0M7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEdBQUcsQ0FBQyxPQUFPLHdCQUF3QixzQkFBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTthQUMxRztRQUNMLENBQUM7S0FBQTtDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/githubzen.js b/dist/commands/fun/githubzen.js
new file mode 100644
index 0000000..890dcb9
--- /dev/null
+++ b/dist/commands/fun/githubzen.js
@@ -0,0 +1,51 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const node_superfetch_1 = __importDefault(require("node-superfetch"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class GitHubZenFun extends discord_js_commando_1.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'],
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const { text } = yield node_superfetch_1.default.get('https://api.github.com/zen');
+ return msg.reply(text + ' ' + emoji_random_1.default.random());
+ }
+ catch (err) {
+ return msg.reply(`Woops, an error has occured: \`${err.message}\`. Try again later! ${emoji_random_1.default.random()}`);
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViemVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9naXRodWJ6ZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0Qsc0VBQXFDO0FBQ3JDLGdFQUFnQztBQUdoQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixPQUFPO2dCQUNQLFFBQVE7YUFDWDtZQUNELEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLFdBQVc7WUFDdkIsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDM0IsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQjs7WUFDMUIsSUFBSTtnQkFDQSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSx5QkFBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO2dCQUNoRSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7YUFDaEQ7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEdBQUcsQ0FBQyxPQUFPLHdCQUF3QixzQkFBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTthQUMxRztRQUNMLENBQUM7S0FBQTtDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/howify.js b/dist/commands/fun/howify.js
index 601b27c..c122c9f 100644
--- a/dist/commands/fun/howify.js
+++ b/dist/commands/fun/howify.js
@@ -38,6 +38,7 @@ module.exports = class HowifyFun extends discord_js_commando_1.Command {
msg.attachments.forEach((attachment) => __awaiter(this, void 0, void 0, function* () {
var u1 = yield howifier_1.default(attachment.url);
msg.delete();
+ msg.reply('Please wait...').then(m => m.delete({ timeout: 2000 }));
setTimeout(() => {
msg.say({ files: [u1] });
}, 2000);
@@ -48,4 +49,4 @@ module.exports = class HowifyFun extends discord_js_commando_1.Command {
}
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG93aWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9ob3dpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0Qsd0RBQTJCO0FBQzNCLGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sU0FBVSxTQUFRLDZCQUFPO0lBQzVDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSw4QkFBOEI7WUFDM0MsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGFBQWEsQ0FBQztZQUN6RSxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxhQUFhLENBQUM7WUFDM0UsUUFBUSxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUNuQyxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUV0QixHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFNLFVBQVUsRUFBQyxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsR0FBRyxNQUFNLGtCQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7Z0JBQ1osVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDYixDQUFDLENBQUEsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILEdBQUcsQ0FBQyxLQUFLLENBQUMscUJBQXFCLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1NBQ3BEO0lBRUwsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG93aWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9ob3dpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0Qsd0RBQTJCO0FBQzNCLGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sU0FBVSxTQUFRLDZCQUFPO0lBQzVDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSw4QkFBOEI7WUFDM0MsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGFBQWEsQ0FBQztZQUN6RSxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxhQUFhLENBQUM7WUFDM0UsUUFBUSxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUNuQyxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUV0QixHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFNLFVBQVUsRUFBQyxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsR0FBRyxNQUFNLGtCQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7Z0JBQ1osR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUNsRSxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQzVCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQSxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7U0FDcEQ7SUFFTCxDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/fun/iq.js b/dist/commands/fun/iq.js
new file mode 100644
index 0000000..7004f6c
--- /dev/null
+++ b/dist/commands/fun/iq.js
@@ -0,0 +1,52 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const random_js_1 = require("random-js");
+module.exports = class IQFun extends discord_js_commando_1.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, { uUser }) {
+ let random = random_js_1.MersenneTwister19937.seed(uUser.id);
+ let iq = random_js_1.integer(20, 270)(random);
+ if (!uUser) {
+ msg.reply('Scanning..').then(scanningMsg => {
+ scanningMsg.delete();
+ msg.reply(`Your IQ score is **${iq}**. ${emoji_random_1.default.random()}`);
+ });
+ }
+ else {
+ if (uUser.id === this.client.user.id) {
+ msg.reply('Me? My IQ is too high for you to even comprehend. ' + emoji_random_1.default.random());
+ }
+ else {
+ msg.reply(`${uUser.username}'s IQ score is **${iq}**. ${emoji_random_1.default.random()}`);
+ }
+ }
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZnVuL2lxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUNqQyx5Q0FBeUQ7QUFFekQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLEtBQU0sU0FBUSw2QkFBTztJQUN4QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ3BCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsMkNBQTJDO29CQUNuRCxJQUFJLEVBQUUsTUFBTTtvQkFDWixPQUFPLEVBQUUsRUFBRTtpQkFDZDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQy9CLElBQUksTUFBTSxHQUFHLGdDQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDaEQsSUFBSSxFQUFFLEdBQUcsbUJBQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUV2QyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUE7Z0JBQ3BCLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNsQyxHQUFHLENBQUMsS0FBSyxDQUFDLG9EQUFvRCxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTthQUNuRjtpQkFBTTtnQkFDSCxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsb0JBQW9CLEVBQUUsT0FBTyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTthQUM1RTtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/kissmarrykill.js b/dist/commands/fun/kissmarrykill.js
new file mode 100644
index 0000000..63fa69c
--- /dev/null
+++ b/dist/commands/fun/kissmarrykill.js
@@ -0,0 +1,90 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const Util_js_1 = require("../../utils/Util.js");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class KissMarryKillFun extends discord_js_commando_1.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
+ }
+ ]
+ });
+ }
+ run(msg, { first, second, third }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const kissFuck = msg.channel.nsfw ? 'fuck' : 'kiss';
+ const things = Util_js_1.shuffle([first, second, third]);
+ return msg.say(`I'd ${kissFuck} ${things[0]}, marry ${things[1]}, and kill ${things[2]}. ${emoji_random_1.default.random()}`);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lzc21hcnJ5a2lsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4va2lzc21hcnJ5a2lsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCxpREFBNkM7QUFDN0MsZ0VBQWdDO0FBRWhDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxnQkFBaUIsU0FBUSw2QkFBTztJQUNuRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLGVBQWU7WUFDckIsT0FBTyxFQUFFO2dCQUNMLGVBQWU7Z0JBQ2YsaUJBQWlCO2dCQUNqQixlQUFlO2dCQUNmLGlCQUFpQjtnQkFDakIsZUFBZTtnQkFDZixpQkFBaUI7Z0JBQ2pCLGVBQWU7Z0JBQ2YsaUJBQWlCO2dCQUNqQixlQUFlO2dCQUNmLGlCQUFpQjtnQkFDakIsaUJBQWlCO2dCQUNqQixlQUFlO2dCQUNmLGlCQUFpQjtnQkFDakIsZUFBZTtnQkFDZixpQkFBaUI7Z0JBQ2pCLGVBQWU7Z0JBQ2YsaUJBQWlCO2dCQUNqQixlQUFlO2dCQUNmLGlCQUFpQjtnQkFDakIsZUFBZTtnQkFDZixpQkFBaUI7Z0JBQ2pCLGVBQWU7Z0JBQ2YsZ0JBQWdCO2FBQ25CO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsZUFBZTtZQUMzQixXQUFXLEVBQUUsa0JBQWtCO1lBQy9CLFFBQVEsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQy9CLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixLQUFLLEVBQUUsWUFBWTtvQkFDbkIsTUFBTSxFQUFFLHFDQUFxQztvQkFDN0MsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsR0FBRyxFQUFFLEdBQUc7aUJBQ1g7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLFFBQVE7b0JBQ2IsS0FBSyxFQUFFLGFBQWE7b0JBQ3BCLE1BQU0sRUFBRSxzQ0FBc0M7b0JBQzlDLElBQUksRUFBRSxRQUFRO29CQUNkLEdBQUcsRUFBRSxHQUFHO2lCQUNYO2dCQUNEO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLEtBQUssRUFBRSxZQUFZO29CQUNuQixNQUFNLEVBQUUscUNBQXFDO29CQUM3QyxJQUFJLEVBQUUsUUFBUTtvQkFDZCxHQUFHLEVBQUUsR0FBRztpQkFDWDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O1lBQ3BELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNwRCxNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqSCxDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/numberfact.js b/dist/commands/fun/numberfact.js
new file mode 100644
index 0000000..ebbdd6f
--- /dev/null
+++ b/dist/commands/fun/numberfact.js
@@ -0,0 +1,63 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const axios_1 = __importDefault(require("axios"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class NumberFactFun extends discord_js_commando_1.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']
+ });
+ }
+ run(msg, { nNum }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const fact = yield axios_1.default.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_1.default.random());
+ });
+ msg.reply(fact.data);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vbnVtYmVyZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCxrREFBeUI7QUFDekIsZ0VBQWdDO0FBRWhDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxhQUFjLFNBQVEsNkJBQU87SUFDaEQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxZQUFZO1lBQ2xCLE9BQU8sRUFBRTtnQkFDTCxhQUFhO2dCQUNiLGFBQWE7Z0JBQ2IsY0FBYztnQkFDZCxTQUFTO2dCQUNULFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVixXQUFXO2FBQ2Q7WUFDRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxNQUFNO29CQUNYLE1BQU0sRUFBRSw4Q0FBOEM7b0JBQ3RELElBQUksRUFBRSxTQUFTO29CQUNmLEdBQUcsRUFBRSxFQUFFO29CQUNQLEdBQUcsRUFBRSxDQUFDO29CQUNOLE9BQU8sRUFBRSxRQUFRO2lCQUNwQjthQUNKO1lBQ0QsUUFBUSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7WUFDakQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFHOztZQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0RSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLGlFQUFpRSxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtZQUNqRyxDQUFDLENBQUMsQ0FBQTtZQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3hCLENBQUM7S0FBQTtDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/offspring.js b/dist/commands/fun/offspring.js
new file mode 100644
index 0000000..78c2392
--- /dev/null
+++ b/dist/commands/fun/offspring.js
@@ -0,0 +1,29 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const genders = ['boy', 'girl'];
+module.exports = class OffspringFun extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'offspring',
+ group: 'fun',
+ memberName: 'offspring',
+ description: 'Determines your 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) {
+ msg.reply(`It\'s a ${genders[Math.floor(Math.random() * genders.length)]}! ${emoji_random_1.default.random()}`);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2Zmc3ByaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9vZmZzcHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWdDO0FBQ2hDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBRS9CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxZQUFhLFNBQVEsNkJBQU87SUFDL0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLFdBQVc7WUFDdkIsV0FBVyxFQUFFLGtDQUFrQztZQUMvQyxRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDM0IsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQjtRQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLHNCQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/onion.js b/dist/commands/fun/onion.js
new file mode 100644
index 0000000..88b8a31
--- /dev/null
+++ b/dist/commands/fun/onion.js
@@ -0,0 +1,54 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const common_tags_1 = require("common-tags");
+const rss_parser_1 = __importDefault(require("rss-parser"));
+module.exports = class OnionFun extends discord_js_commando_1.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'],
+ });
+ }
+ run(msg) {
+ var _a;
+ return __awaiter(this, void 0, void 0, function* () {
+ const parser = new rss_parser_1.default();
+ try {
+ const feed = yield parser.parseURL('https://www.theonion.com/rss');
+ const article = feed.items[Math.floor(Math.random() * ((_a = feed.items) === null || _a === void 0 ? void 0 : _a.length))];
+ return msg.reply(common_tags_1.stripIndents `
+ ${article.title}
+ ${article.link}
+ `);
+ }
+ catch (err) {
+ return msg.reply(`Woops, an error has occurred: \`${err.message}\`. Try again later! ${emoji_random_1.default.random()}`);
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25pb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZnVuL29uaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFnQztBQUNoQyw2Q0FBMEM7QUFDMUMsNERBQTRCO0FBRTVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxRQUFTLFNBQVEsNkJBQU87SUFDM0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQztZQUNsQyxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0I7OztZQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFHLEVBQUUsQ0FBQTtZQUN4QixJQUFJO2dCQUNBLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO2dCQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFHLElBQUksQ0FBQyxLQUFLLDBDQUFFLE1BQU0sQ0FBQSxDQUFDLENBQUMsQ0FBQTtnQkFDMUUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUFZLENBQUE7a0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLO2tCQUNiLE9BQU8sQ0FBQyxJQUFJO2FBQ2pCLENBQUMsQ0FBQTthQUNMO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxHQUFHLENBQUMsT0FBTyx3QkFBd0Isc0JBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDNUc7O0tBQ0o7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/opinion.js b/dist/commands/fun/opinion.js
new file mode 100644
index 0000000..09ebe10
--- /dev/null
+++ b/dist/commands/fun/opinion.js
@@ -0,0 +1,37 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const common_tags_1 = require("common-tags");
+const opinions = ['👍', '👎'];
+module.exports = class OpinionFun extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'opinion',
+ group: 'fun',
+ memberName: 'opinion',
+ description: 'Determines the bot\'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, { qQuestion }) {
+ msg.reply(common_tags_1.stripIndents `
+ ${qQuestion}
+ ${opinions[Math.floor(Math.random() * opinions.length)]}
+ `);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bpbmlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vb3Bpbmlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUErRDtBQUUvRCw2Q0FBMEM7QUFDMUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFFN0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFVBQVcsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSxxREFBcUQ7WUFDbEUsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3pCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsV0FBVztvQkFDaEIsTUFBTSxFQUFFLHdDQUF3QztvQkFDaEQsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsR0FBRyxFQUFFLElBQUk7aUJBQ1o7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNuQyxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUFZLENBQUE7Y0FDaEIsU0FBUztjQUNULFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUQsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/quantumcoinflip.js b/dist/commands/fun/quantumcoinflip.js
new file mode 100644
index 0000000..06ff9f5
--- /dev/null
+++ b/dist/commands/fun/quantumcoinflip.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+const sides = [NaN, 0, null, undefined, ''];
+module.exports = class QuantumCoinFlipFun extends discord_js_commando_1.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) {
+ var s = sides[Math.floor(Math.random() * sides.length)];
+ let embed = new discord_js_1.MessageEmbed()
+ .setAuthor('The quantum coin landed on', 'https://i.imgur.com/pr7JCce.png')
+ .setDescription('`' + s + '`');
+ msg.say(embed);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnR1bWNvaW5mbGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9xdWFudHVtY29pbmZsaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFBK0Q7QUFDL0QsMkNBQTBDO0FBQzFDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxrQkFBbUIsU0FBUSw2QkFBTztJQUNyRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUM1QixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxpQkFBaUI7WUFDN0IsV0FBVyxFQUFFLHNCQUFzQjtZQUNuQyxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUM7WUFDMUMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ3ZELElBQUksS0FBSyxHQUFHLElBQUkseUJBQVksRUFBRTthQUV6QixTQUFTLENBQUMsNEJBQTRCLEVBQUUsaUNBQWlDLENBQUM7YUFDMUUsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/fun/randomfacts.js b/dist/commands/fun/randomfacts.js
new file mode 100644
index 0000000..d21fb93
--- /dev/null
+++ b/dist/commands/fun/randomfacts.js
@@ -0,0 +1,87 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const node_superfetch_1 = __importDefault(require("node-superfetch"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class RandomFactFun extends discord_js_commando_1.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'],
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const article = yield this.randomWikipediaArticle();
+ const { body } = yield node_superfetch_1.default
+ .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_1.default.random());
+ }
+ catch (err) {
+ return msg.reply(`Woops, an error has occured: \`${err.message}\`. Try again later! ${emoji_random_1.default.random()}`);
+ }
+ });
+ }
+ randomWikipediaArticle() {
+ return __awaiter(this, void 0, void 0, function* () {
+ const { body } = yield node_superfetch_1.default
+ .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;
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tZmFjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZnVuL3JhbmRvbWZhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELHNFQUFxQztBQUNyQyxnRUFBZ0M7QUFFaEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGFBQWMsU0FBUSw2QkFBTztJQUNoRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFlBQVk7WUFDbEIsT0FBTyxFQUFFO2dCQUNMLGFBQWE7Z0JBQ2IsTUFBTTtnQkFDTixPQUFPO2FBQ1Y7WUFDRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsUUFBUSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFDNUIsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQjs7WUFDMUIsSUFBSTtnQkFDQSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO2dCQUNuRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSx5QkFBTztxQkFDekIsR0FBRyxDQUFDLG9DQUFvQyxDQUFDO3FCQUN6QyxLQUFLLENBQUM7b0JBQ0gsTUFBTSxFQUFFLE9BQU87b0JBQ2YsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLE1BQU0sRUFBRSxNQUFNO29CQUNkLE1BQU0sRUFBRSxPQUFPO29CQUNmLE9BQU8sRUFBRSxFQUFFO29CQUNYLFdBQVcsRUFBRSxFQUFFO29CQUNmLFNBQVMsRUFBRSxFQUFFO29CQUNiLGFBQWEsRUFBRSxDQUFDO2lCQUNuQixDQUFDLENBQUE7Z0JBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM5QixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7d0JBQUUsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7aUJBQ3JFO2dCQUNELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUNqRDtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsR0FBRyxDQUFDLE9BQU8sd0JBQXdCLHNCQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2FBQzFHO1FBQ0wsQ0FBQztLQUFBO0lBQ0ssc0JBQXNCOztZQUN4QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSx5QkFBTztpQkFDekIsR0FBRyxDQUFDLG9DQUFvQyxDQUFDO2lCQUN6QyxLQUFLLENBQUM7Z0JBQ0gsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsYUFBYSxFQUFFLENBQUM7YUFDbkIsQ0FBQyxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxtQ0FBbUMsQ0FBQztZQUM1RSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0QyxDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/rate.js b/dist/commands/fun/rate.js
new file mode 100644
index 0000000..d5bf2ce
--- /dev/null
+++ b/dist/commands/fun/rate.js
@@ -0,0 +1,36 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class RateFun extends discord_js_commando_1.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, { tThing }) {
+ msg.reply(`I'd give ${tThing} a ${Math.floor(Math.random() * 10) + 1}/10! ${emoji_random_1.default.random()}`);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBZ0M7QUFFaEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLE9BQVEsU0FBUSw2QkFBTztJQUMxQyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxRQUFRO29CQUNiLE1BQU0sRUFBRSw4QkFBOEI7b0JBQ3RDLElBQUksRUFBRSxRQUFRO29CQUNkLEdBQUcsRUFBRSxJQUFJO2lCQUNaO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUU7UUFDaEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLE1BQU0sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsc0JBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDakcsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/rolldie.js b/dist/commands/fun/rolldie.js
new file mode 100644
index 0000000..e3e1dbd
--- /dev/null
+++ b/dist/commands/fun/rolldie.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class RollDieFun extends discord_js_commando_1.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) {
+ var r = [1, 2, 3, 4, 5, 6];
+ var s = r[Math.floor(Math.random() * r.length)];
+ let embed = new discord_js_1.MessageEmbed()
+ .setAuthor('The die landed on', 'https://i.imgur.com/dK18NpV.png')
+ .setDescription('`' + s + '`');
+ msg.say(embed);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbGRpZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vcm9sbGRpZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFVBQVcsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFNBQVM7WUFDZixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsYUFBYTtZQUMxQixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7WUFDckMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRCxJQUFJLEtBQUssR0FBRyxJQUFJLHlCQUFZLEVBQUU7YUFFekIsU0FBUyxDQUFDLG1CQUFtQixFQUFFLGlDQUFpQyxDQUFDO2FBQ2pFLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRW5DLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/romannumeral.js b/dist/commands/fun/romannumeral.js
new file mode 100644
index 0000000..a830256
--- /dev/null
+++ b/dist/commands/fun/romannumeral.js
@@ -0,0 +1,56 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const romanize_1 = __importDefault(require("romanize"));
+module.exports = class RomanNumeralFun extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'romannumeral',
+ aliases: [
+ 'roman-numeral',
+ 'romannumerals',
+ 'roman-numerals'
+ ],
+ group: 'fun',
+ 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, { nNum }) {
+ if (nNum === parseInt(nNum, 10)) {
+ msg.reply(romanize_1.default(nNum));
+ }
+ const back = value => {
+ 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;
+ };
+ msg.reply(back(nNum));
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9tYW5udW1lcmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9yb21hbm51bWVyYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFFL0Qsd0RBQStCO0FBRS9CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxlQUFnQixTQUFRLDZCQUFPO0lBQ2xELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUU7Z0JBQ0wsZUFBZTtnQkFDZixlQUFlO2dCQUNmLGdCQUFnQjthQUNuQjtZQUNELEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLGNBQWM7WUFDMUIsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxRQUFRLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztZQUNqQyxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLHlDQUF5QztvQkFDakQsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsR0FBRyxFQUFFLENBQUM7aUJBQ1Q7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLElBQUksRUFBRTtRQUM5QixJQUFJLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1NBQzVCO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFBO1lBRVgsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN0RSxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ3JGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNsQyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7aUJBQ3RDO2FBQ0o7WUFDRCxPQUFPLEdBQUcsQ0FBQTtRQUNkLENBQUMsQ0FBQTtRQUVELEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDekIsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/russianroulette.js b/dist/commands/fun/russianroulette.js
new file mode 100644
index 0000000..96e32a4
--- /dev/null
+++ b/dist/commands/fun/russianroulette.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+module.exports = class RussianRouletteFun extends discord_js_commando_1.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) {
+ var s = Math.floor(Math.random() * 6);
+ if (s === 0) {
+ return msg.reply('💥 *Bang.* You lose.');
+ }
+ else {
+ return msg.reply("🔫 *Click.* You survived.");
+ }
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzc2lhbnJvdWxldHRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9ydXNzaWFucm91bGV0dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFBK0Q7QUFHL0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGtCQUFtQixTQUFRLDZCQUFPO0lBQ3JELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNmLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixXQUFXLEVBQUUsa0NBQWtDO1lBQy9DLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsUUFBUSxFQUFFLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDO1lBQzNDLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztTQUMvRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CO1FBQ3BCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNULE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1NBQzNDO2FBQU07WUFDSCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/say.js b/dist/commands/fun/say.js
index 13cad85..0e1e966 100644
--- a/dist/commands/fun/say.js
+++ b/dist/commands/fun/say.js
@@ -29,4 +29,4 @@ module.exports = class SayFun extends discord_js_commando_1.Command {
msg.delete();
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9zYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFBK0Q7QUFHL0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLE1BQU8sU0FBUSw2QkFBTztJQUN6QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxpQ0FBaUM7WUFDOUMsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxLQUFLO29CQUNWLE1BQU0sRUFBRSw4QkFBOEI7b0JBQ3RDLElBQUksRUFBRSxRQUFRO2lCQUNqQjthQUNKO1lBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQ25FLGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQ3RELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEdBQUcsRUFBRTtRQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ1osR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9zYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFBK0Q7QUFFL0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLE1BQU8sU0FBUSw2QkFBTztJQUN6QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxpQ0FBaUM7WUFDOUMsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxLQUFLO29CQUNWLE1BQU0sRUFBRSw4QkFBOEI7b0JBQ3RDLElBQUksRUFBRSxRQUFRO2lCQUNqQjthQUNKO1lBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQ25FLGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQ3RELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEdBQUcsRUFBRTtRQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ1osR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/showerthought.js b/dist/commands/fun/showerthought.js
new file mode 100644
index 0000000..29f32fc
--- /dev/null
+++ b/dist/commands/fun/showerthought.js
@@ -0,0 +1,33 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const Subreddit_js_1 = __importDefault(require("../../models/commands/Subreddit.js"));
+module.exports = class ShowerThoughtFun extends Subreddit_js_1.default {
+ constructor(client) {
+ super(client, {
+ name: 'showerthought',
+ aliases: [
+ 'shower-thought',
+ 'showerthoughts',
+ 'shower-thoughts'
+ ],
+ group: 'fun',
+ memberName: 'showerthought',
+ description: 'Shower thoughts.',
+ 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;
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd2VydGhvdWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vc2hvd2VydGhvdWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHNGQUFpRTtBQUVqRSxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sZ0JBQWlCLFNBQVEsc0JBQWdCO0lBQzVELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsZUFBZTtZQUNyQixPQUFPLEVBQUU7Z0JBQ0wsZ0JBQWdCO2dCQUNoQixnQkFBZ0I7Z0JBQ2hCLGlCQUFpQjthQUNwQjtZQUNELEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLGVBQWU7WUFDM0IsV0FBVyxFQUFFLGtCQUFrQjtZQUMvQixRQUFRLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvQixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxTQUFTLEVBQUUsZ0JBQWdCO1NBQzlCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxZQUFZLENBQUMsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/fun/smashorpass.js b/dist/commands/fun/smashorpass.js
new file mode 100644
index 0000000..5e112d6
--- /dev/null
+++ b/dist/commands/fun/smashorpass.js
@@ -0,0 +1,49 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const random_js_1 = require("random-js");
+module.exports = class SmashOrPassFun extends discord_js_commando_1.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, { uUser }) {
+ var _a;
+ let random = random_js_1.MersenneTwister19937.seed(uUser.id);
+ let smashOrPass = random_js_1.bool()(random);
+ if (uUser.id === ((_a = this.client.user) === null || _a === void 0 ? void 0 : _a.id)) {
+ msg.reply(`Obviously smash, Google me. ${emoji_random_1.default.random()}`);
+ }
+ else {
+ msg.reply(smashOrPass ? 'Smash, I\'d definetly smash. ' : 'Hard pass. Yuck. ' + emoji_random_1.default.random());
+ }
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hc2hvcnBhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZnVuL3NtYXNob3JwYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUNqQyx5Q0FBc0Q7QUFFdEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGNBQWUsU0FBUSw2QkFBTztJQUNqRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsT0FBTyxFQUFFO2dCQUNMLGVBQWU7Z0JBQ2YsS0FBSztnQkFDTCxPQUFPO2FBQ1Y7WUFDRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3JCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsMkNBQTJDO29CQUNuRCxJQUFJLEVBQUUsTUFBTTtpQkFDZjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFOztRQUMvQixJQUFJLE1BQU0sR0FBRyxnQ0FBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2hELElBQUksV0FBVyxHQUFHLGdCQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoQyxJQUFJLEtBQUssQ0FBQyxFQUFFLFlBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDBDQUFFLEVBQUUsQ0FBQSxFQUFFO1lBQ25DLEdBQUcsQ0FBQyxLQUFLLENBQUMsK0JBQStCLHNCQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1NBQzdEO2FBQU07WUFDSCxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtTQUNsRztJQUNMLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/spoiler.js b/dist/commands/fun/spoiler.js
new file mode 100644
index 0000000..3783fc4
--- /dev/null
+++ b/dist/commands/fun/spoiler.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+module.exports = class SpoilerFun extends discord_js_commando_1.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 ||spoiler||.',
+ 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, { say }) {
+ msg.say(say.replace(/./g, '||$&||'));
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvaWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4vc3BvaWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUErRDtBQUUvRCxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sVUFBVyxTQUFRLDZCQUFPO0lBQzdDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7WUFDNUUsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsOERBQThEO1lBQzNFLElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsS0FBSztvQkFDVixNQUFNLEVBQUUsK0JBQStCO29CQUN2QyxJQUFJLEVBQUUsUUFBUTtpQkFDakI7YUFDSjtZQUNELFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ2hDLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEdBQUcsRUFBRTtRQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDeEMsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/fun/subreddit.js b/dist/commands/fun/subreddit.js
new file mode 100644
index 0000000..c2b1415
--- /dev/null
+++ b/dist/commands/fun/subreddit.js
@@ -0,0 +1,50 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const Subreddit_js_1 = __importDefault(require("../../models/commands/Subreddit.js"));
+const Util_js_1 = require("../../utils/Util.js");
+const discord_js_1 = require("discord.js");
+module.exports = class SubredditFun extends Subreddit_js_1.default {
+ 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 discord_js_1.MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(`r/${subreddit}`, icon, `https://www.reddit.com/r/${subreddit}/`)
+ .setTitle(Util_js_1.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(`⬆ ${Util_js_1.formatNumber(post.score)}`);
+ if (post.thumbnail && post.thumbnail !== 'self' && post.post_hint !== 'image') {
+ embed.setThumbnail(post.thumbnail);
+ }
+ return embed;
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VicmVkZGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Z1bi9zdWJyZWRkaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxzRkFBcUU7QUFDckUsaURBQTJEO0FBQzNELDJDQUEwQztBQUUxQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLHNCQUFvQjtJQUM1RCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDaEMsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLFdBQVc7WUFDdkIsV0FBVyxFQUFFLHdEQUF3RDtZQUNyRSxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLG9EQUFvRDtvQkFDNUQsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO2lCQUNwRDthQUNKO1lBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxZQUFZLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJO1FBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUkseUJBQVksRUFBRTthQUMzQixRQUFRLENBQUMsUUFBUSxDQUFDO2FBQ2xCLFNBQVMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSw0QkFBNEIsU0FBUyxHQUFHLENBQUM7YUFDM0UsUUFBUSxDQUFDLGlCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUN0RCxNQUFNLENBQUMseUJBQXlCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNqRCxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDckMsU0FBUyxDQUFDLEtBQUssc0JBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRTtZQUMzRSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/yearfact.js b/dist/commands/fun/yearfact.js
new file mode 100644
index 0000000..8f4d51c
--- /dev/null
+++ b/dist/commands/fun/yearfact.js
@@ -0,0 +1,57 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const axios_1 = __importDefault(require("axios"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class DayFactFun extends discord_js_commando_1.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']
+ });
+ }
+ run(msg, { year }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const fact = yield axios_1.default.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_1.default.random());
+ });
+ msg.reply(fact.data);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhcmZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZnVuL3llYXJmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGtEQUF5QjtBQUN6QixnRUFBZ0M7QUFFaEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFVBQVcsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsT0FBTyxFQUFFO2dCQUNMLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxZQUFZO2FBQ2Y7WUFDRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxNQUFNO29CQUNYLE1BQU0sRUFBRSw0Q0FBNEM7b0JBQ3BELElBQUksRUFBRSxTQUFTO29CQUNmLE9BQU8sRUFBRSxRQUFRO2lCQUNwQjthQUNKO1lBQ0QsUUFBUSxFQUFFLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDO1lBQy9DLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLElBQUksRUFBRTs7WUFDcEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLHlCQUF5QixJQUFJLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxpRUFBaUUsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDakcsQ0FBQyxDQUFDLENBQUE7WUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/fun/yomomma.js b/dist/commands/fun/yomomma.js
new file mode 100644
index 0000000..965fd8c
--- /dev/null
+++ b/dist/commands/fun/yomomma.js
@@ -0,0 +1,48 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const axios_1 = __importDefault(require("axios"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class YoMommaFun extends discord_js_commando_1.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']
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ let text = yield (yield axios_1.default.get('http://api.yomomma.info/')).data.joke;
+ msg.reply(`${text}` + ' ' + emoji_random_1.default.random());
+ }
+ catch (err) {
+ console.log(err);
+ msg.reply('Woops, there was an error with the (https://yomomma.info/) API. ' + emoji_random_1.default.random());
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW9tb21tYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mdW4veW9tb21tYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCxrREFBeUI7QUFFekIsZ0VBQWdDO0FBRWhDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFXLFNBQVEsNkJBQU87SUFDN0MsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxTQUFTO1lBQ2YsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUNwRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSw0QkFBNEI7WUFDekMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3pCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0I7O1lBQzFCLElBQUk7Z0JBQ0EsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtnQkFDeEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7YUFDOUM7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLGtFQUFrRSxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTthQUNqRztRQUNMLENBQUM7S0FBQTtDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/minecraft/getbody.js b/dist/commands/minecraft/getbody.js
new file mode 100644
index 0000000..26ec881
--- /dev/null
+++ b/dist/commands/minecraft/getbody.js
@@ -0,0 +1,56 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class GetBodyMinecraft extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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'
+ }
+ ]
+ });
+ }
+ run(msg, { uUsername }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let emb = new discord_js_1.MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(uUsername, `https://minotar.net/body/${encodeURIComponent(uUsername)}`)
+ .setImage(`https://minotar.net/body/${encodeURIComponent(uUsername)}`);
+ msg.reply(emb);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Ym9keS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9taW5lY3JhZnQvZ2V0Ym9keS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGdCQUFpQixTQUFRLDZCQUFPO0lBQ25ELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRTtnQkFDTCxVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsYUFBYTtnQkFDYixNQUFNO2FBQ1Q7WUFDRCxLQUFLLEVBQUUsV0FBVztZQUNsQixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsa0RBQWtEO1lBQy9ELFFBQVEsRUFBRTtnQkFDTixtQkFBbUI7Z0JBQ25CLGNBQWM7YUFDakI7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFdBQVc7b0JBQ2hCLE1BQU0sRUFBRSx1Q0FBdUM7b0JBQy9DLElBQUksRUFBRSxRQUFRO2lCQUNqQjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsU0FBUyxFQUFFOztZQUN6QyxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsNEJBQTRCLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGLFFBQVEsQ0FBQyw0QkFBNEIsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRzFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/minecraft/getface.js b/dist/commands/minecraft/getface.js
new file mode 100644
index 0000000..35757c6
--- /dev/null
+++ b/dist/commands/minecraft/getface.js
@@ -0,0 +1,56 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class GetFaceMinecraft extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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'
+ }
+ ]
+ });
+ }
+ run(msg, { uUsername }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let emb = new discord_js_1.MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`)
+ .setImage(`https://minotar.net/helm/${encodeURIComponent(uUsername)}`);
+ msg.reply(emb);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0ZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9taW5lY3JhZnQvZ2V0ZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGdCQUFpQixTQUFRLDZCQUFPO0lBQ25ELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRTtnQkFDTCxVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsYUFBYTtnQkFDYixNQUFNO2FBQ1Q7WUFDRCxLQUFLLEVBQUUsV0FBVztZQUNsQixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsa0RBQWtEO1lBQy9ELFFBQVEsRUFBRTtnQkFDTixtQkFBbUI7Z0JBQ25CLGNBQWM7YUFDakI7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFdBQVc7b0JBQ2hCLE1BQU0sRUFBRSx1Q0FBdUM7b0JBQy9DLElBQUksRUFBRSxRQUFRO2lCQUNqQjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsU0FBUyxFQUFFOztZQUN6QyxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsNEJBQTRCLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGLFFBQVEsQ0FBQyw0QkFBNEIsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQzFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/minecraft/gethead.js b/dist/commands/minecraft/gethead.js
new file mode 100644
index 0000000..03c5514
--- /dev/null
+++ b/dist/commands/minecraft/gethead.js
@@ -0,0 +1,56 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class GetHeadMinecraft extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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'
+ }
+ ]
+ });
+ }
+ run(msg, { uUsername }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let emb = new discord_js_1.MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`)
+ .setImage(`https://minotar.net/cube/${encodeURIComponent(uUsername)}/100.png`);
+ msg.reply(emb);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0aGVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9taW5lY3JhZnQvZ2V0aGVhZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGdCQUFpQixTQUFRLDZCQUFPO0lBQ25ELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRTtnQkFDTCxVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsYUFBYTtnQkFDYixNQUFNO2FBQ1Q7WUFDRCxLQUFLLEVBQUUsV0FBVztZQUNsQixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsa0RBQWtEO1lBQy9ELFFBQVEsRUFBRTtnQkFDTixtQkFBbUI7Z0JBQ25CLGNBQWM7YUFDakI7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFdBQVc7b0JBQ2hCLE1BQU0sRUFBRSx1Q0FBdUM7b0JBQy9DLElBQUksRUFBRSxRQUFRO2lCQUNqQjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsU0FBUyxFQUFFOztZQUN6QyxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsNEJBQTRCLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGLFFBQVEsQ0FBQyw0QkFBNEIsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ2xGLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/minecraft/getminime.js b/dist/commands/minecraft/getminime.js
new file mode 100644
index 0000000..177bcc0
--- /dev/null
+++ b/dist/commands/minecraft/getminime.js
@@ -0,0 +1,68 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class GetMiniMeMinecraft extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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
+ }
+ ]
+ });
+ }
+ run(msg, { uUsername, uTrans }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let emb = new discord_js_1.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(username)}.png`);
+ }
+ msg.reply(emb);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0bWluaW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL21pbmVjcmFmdC9nZXRtaW5pbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsMkNBQTBDO0FBRTFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxrQkFBbUIsU0FBUSw2QkFBTztJQUNyRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFO2dCQUNMLGFBQWE7Z0JBQ2IsYUFBYTtnQkFDYixnQkFBZ0I7Z0JBQ2hCLE9BQU87YUFDVjtZQUNELEtBQUssRUFBRSxXQUFXO1lBQ2xCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFdBQVcsRUFBRSxrREFBa0Q7WUFDL0QsUUFBUSxFQUFFO2dCQUNOLHFCQUFxQjtnQkFDckIscUJBQXFCO2FBQ3hCO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxXQUFXO29CQUNoQixNQUFNLEVBQUUsdUNBQXVDO29CQUMvQyxJQUFJLEVBQUUsUUFBUTtpQkFDakI7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLFFBQVE7b0JBQ2IsTUFBTSxFQUFFLDhEQUE4RDtvQkFDdEUsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsT0FBTyxFQUFFLElBQUk7aUJBQ2hCO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFOztZQUdqRCxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsK0NBQStDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSw0QkFBNEIsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDbEwsU0FBUyxDQUFDLDRFQUE0RSxDQUFDLENBQUE7WUFFNUYsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxzRUFBc0Usa0JBQWtCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzFIO2lCQUFNO2dCQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsb0VBQW9FLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUN2SDtZQUdELEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/minecraft/getskin.js b/dist/commands/minecraft/getskin.js
new file mode 100644
index 0000000..1a8bf0b
--- /dev/null
+++ b/dist/commands/minecraft/getskin.js
@@ -0,0 +1,56 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class GetSkinMinecraft extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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'
+ }
+ ]
+ });
+ }
+ run(msg, { uUsername }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let emb = new discord_js_1.MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`)
+ .setImage(`https://minotar.net/skin/${encodeURIComponent(uUsername)}`);
+ msg.reply(emb);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0c2tpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9taW5lY3JhZnQvZ2V0c2tpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGdCQUFpQixTQUFRLDZCQUFPO0lBQ25ELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRTtnQkFDTCxVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsYUFBYTtnQkFDYixNQUFNO2FBQ1Q7WUFDRCxLQUFLLEVBQUUsV0FBVztZQUNsQixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsa0RBQWtEO1lBQy9ELFFBQVEsRUFBRTtnQkFDTixtQkFBbUI7Z0JBQ25CLGNBQWM7YUFDakI7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFdBQVc7b0JBQ2hCLE1BQU0sRUFBRSx1Q0FBdUM7b0JBQy9DLElBQUksRUFBRSxRQUFRO2lCQUNqQjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsU0FBUyxFQUFFOztZQUN6QyxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsNEJBQTRCLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGLFFBQVEsQ0FBQyw0QkFBNEIsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQzFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/minecraft/minecraftserverstatus.js b/dist/commands/minecraft/minecraftserverstatus.js
new file mode 100644
index 0000000..33f8fca
--- /dev/null
+++ b/dist/commands/minecraft/minecraftserverstatus.js
@@ -0,0 +1,87 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+const axios_1 = __importDefault(require("axios"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class MinecraftServerMinecraft extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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
+ }
+ ]
+ });
+ }
+ run(msg, { ip, port }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const res = (yield axios_1.default(`https://mcapi.us/server/status?ip=${ip}&port=${port}`).catch(err => {
+ console.error(err);
+ return msg.reply('Woops, an error has occured. ' + emoji_random_1.default.random());
+ })).data;
+ if (res.status !== 'success') {
+ return msg.reply('Woops, there was an error with your request. ' + emoji_random_1.default.random());
+ }
+ let emb = new discord_js_1.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);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZWNyYWZ0c2VydmVyc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL21pbmVjcmFmdC9taW5lY3JhZnRzZXJ2ZXJzdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsMkNBQTBDO0FBQzFDLGtEQUF5QjtBQUN6QixnRUFBZ0M7QUFFaEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLHdCQUF5QixTQUFRLDZCQUFPO0lBQzNELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLE9BQU8sRUFBRTtnQkFDTCxnQkFBZ0I7Z0JBQ2hCLHlCQUF5QjtnQkFDekIsTUFBTTthQUNUO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxXQUFXLEVBQUUsb0RBQW9EO1lBQ2pFLFFBQVEsRUFBRTtnQkFDTiwyQkFBMkI7Z0JBQzNCLFVBQVU7YUFDYjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsSUFBSTtvQkFDVCxNQUFNLEVBQUUsK0JBQStCO29CQUN2QyxJQUFJLEVBQUUsUUFBUTtpQkFDakI7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLGlDQUFpQztvQkFDekMsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLEdBQUcsRUFBRSxLQUFLO29CQUNWLEdBQUcsRUFBRSxDQUFDO2lCQUNUO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFOztZQUN4QyxNQUFNLEdBQUcsR0FBRyxDQUNSLE1BQU0sZUFBSyxDQUFDLHFDQUFxQyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2xCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDdEUsQ0FBQyxDQUFDLENBQ0wsQ0FBQyxJQUFJLENBQUE7WUFFTixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUMxQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsK0NBQStDLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQ3JGO1lBRUQsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2lCQUN2QixRQUFRLENBQUMsRUFBRSxDQUFDO2lCQUNaLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO2lCQUM5QixRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7WUFFdkIsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUNaLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFBO2dCQUN6RCxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO2dCQUN0RSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsQ0FBQyxJQUFJLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUN4RDtpQkFBTSxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLHNCQUFzQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUN6RjtpQkFBTTtnQkFDSCxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxvQ0FBb0MsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUM1RTtZQUNELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN6QixDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/nsfw/danbooru.js b/dist/commands/nsfw/danbooru.js
index ce1ef04..34ae1ee 100644
--- a/dist/commands/nsfw/danbooru.js
+++ b/dist/commands/nsfw/danbooru.js
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const discord_js_1 = require("discord.js");
const axios_1 = __importDefault(require("axios"));
-class DanbooruBot extends discord_js_commando_1.Command {
+class DanbooruNSFW extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
name: 'danbooru',
@@ -47,13 +47,13 @@ class DanbooruBot extends discord_js_commando_1.Command {
let randomInt = Math.floor(Math.random() * 100);
let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat'];
if (tags !== 0) {
- if (blacklist.includes(tags)) {
- msg.reply('Blacklisted word was used! ⛔');
+ if (blacklist.includes(tags.toLowerCase())) {
+ return msg.reply('Blacklisted word was used! ⛔');
}
}
let res = yield axios_1.default.get(`https://danbooru.donmai.us/posts.json?limit=200&tags=${tags}+-rating:safe`);
- if (blacklist.includes(res.data[randomInt].tags)) {
- msg.reply('Sorry! This image had a tag that was blacklisted! ⛔');
+ if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) {
+ return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔');
}
let getRating = (rating) => {
if (rating === 's') {
@@ -80,5 +80,5 @@ class DanbooruBot extends discord_js_commando_1.Command {
});
}
}
-exports.default = DanbooruBot;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuYm9vcnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvbnNmdy9kYW5ib29ydS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFDMUMsa0RBQXlCO0FBRXpCLE1BQXFCLFdBQVksU0FBUSw2QkFBTztJQUM1QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsV0FBVztZQUN4QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFFBQVEsRUFBRTtnQkFDTixjQUFjO2dCQUNkLHdCQUF3QjthQUMzQjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLDZCQUE2QjtvQkFDckMsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLElBQUksRUFBRTs7WUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUE7WUFDL0MsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVuRyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMxQixHQUFHLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUE7aUJBQzVDO2FBQ0o7WUFFRCxJQUFJLEdBQUcsR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsd0RBQXdELElBQUksZUFBZSxDQUFDLENBQUE7WUFFdEcsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlDLEdBQUcsQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQTthQUNuRTtZQUVELElBQUksU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDaEIsT0FBTyxNQUFNLENBQUE7aUJBQ2hCO2dCQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDbEIsT0FBTyxjQUFjLENBQUE7aUJBQ3hCO2dCQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDbEIsT0FBTyxVQUFVLENBQUE7aUJBQ3BCO2dCQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDbEIsT0FBTyxTQUFTLENBQUE7aUJBQ25CO1lBQ0wsQ0FBQyxDQUFBO1lBRUQsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2lCQUN2QixRQUFRLENBQUMsUUFBUSxDQUFDO2lCQUNsQixRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDdkQsY0FBYyxDQUFDLDRDQUE0QyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO2lCQUNyRixRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUM7aUJBQ3RDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2lCQUN4QixTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssY0FBYyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUNoSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtDQUNKO0FBaEVELDhCQWdFQyJ9 \ No newline at end of file
+exports.default = DanbooruNSFW;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuYm9vcnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvbnNmdy9kYW5ib29ydS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFDMUMsa0RBQXlCO0FBRXpCLE1BQXFCLFlBQWEsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsV0FBVztZQUN4QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFFBQVEsRUFBRTtnQkFDTixjQUFjO2dCQUNkLHdCQUF3QjthQUMzQjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLDZCQUE2QjtvQkFDckMsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLElBQUksRUFBRTs7WUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUE7WUFDL0MsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVuRyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO29CQUN4QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtpQkFDbkQ7YUFDSjtZQUVELElBQUksR0FBRyxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsSUFBSSxlQUFlLENBQUMsQ0FBQTtZQUV0RyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUE7YUFDMUU7WUFFRCxJQUFJLFNBQVMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN2QixJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ2hCLE9BQU8sTUFBTSxDQUFBO2lCQUNoQjtnQkFBQyxJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ2xCLE9BQU8sY0FBYyxDQUFBO2lCQUN4QjtnQkFBQyxJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ2xCLE9BQU8sVUFBVSxDQUFBO2lCQUNwQjtnQkFBQyxJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ2xCLE9BQU8sU0FBUyxDQUFBO2lCQUNuQjtZQUNMLENBQUMsQ0FBQTtZQUVELElBQUksR0FBRyxHQUFHLElBQUkseUJBQVksRUFBRTtpQkFDdkIsUUFBUSxDQUFDLFFBQVEsQ0FBQztpQkFDbEIsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ3ZELGNBQWMsQ0FBQyw0Q0FBNEMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztpQkFDckYsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDO2lCQUN0QyxZQUFZLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztpQkFDeEIsU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLGNBQWMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7WUFDaEksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixDQUFDO0tBQUE7Q0FDSjtBQWhFRCwrQkFnRUMifQ== \ No newline at end of file
diff --git a/dist/commands/nsfw/gelbooru.js b/dist/commands/nsfw/gelbooru.js
index feda991..3fb6b16 100644
--- a/dist/commands/nsfw/gelbooru.js
+++ b/dist/commands/nsfw/gelbooru.js
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const discord_js_1 = require("discord.js");
const axios_1 = __importDefault(require("axios"));
-class GelbooruBot extends discord_js_commando_1.Command {
+class GelbooruNSFW extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
name: 'gelbooru',
@@ -47,13 +47,13 @@ class GelbooruBot extends discord_js_commando_1.Command {
let randomInt = Math.floor(Math.random() * 100);
let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat'];
if (tags !== 0) {
- if (blacklist.includes(tags)) {
- msg.reply('Blacklisted word was used! ⛔');
+ if (blacklist.includes(tags.toLowerCase())) {
+ return msg.reply('Blacklisted word was used! ⛔');
}
}
let res = yield axios_1.default.get(`https://gelbooru.com/index.php?page=dapi&s=post&q=index&limit=100&tags=${tags}+-rating:safe&json=1`);
- if (blacklist.includes(res.data[randomInt].tags)) {
- msg.reply('Sorry! This image had a tag that was blacklisted! ⛔');
+ if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) {
+ return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔');
}
let getRating = (rating) => {
if (rating === 's') {
@@ -80,5 +80,5 @@ class GelbooruBot extends discord_js_commando_1.Command {
});
}
}
-exports.default = GelbooruBot;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VsYm9vcnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvbnNmdy9nZWxib29ydS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFDMUMsa0RBQXlCO0FBRXpCLE1BQXFCLFdBQVksU0FBUSw2QkFBTztJQUM1QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsV0FBVztZQUN4QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFFBQVEsRUFBRTtnQkFDTixjQUFjO2dCQUNkLHdCQUF3QjthQUMzQjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLDZCQUE2QjtvQkFDckMsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLElBQUksRUFBRTs7WUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUE7WUFDL0MsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVuRyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMxQixHQUFHLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUE7aUJBQzVDO2FBQ0o7WUFFRCxJQUFJLEdBQUcsR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsMEVBQTBFLElBQUksc0JBQXNCLENBQUMsQ0FBQTtZQUUvSCxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDOUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFBO2FBQ25FO1lBRUQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNoQixPQUFPLE1BQU0sQ0FBQTtpQkFDaEI7Z0JBQUMsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNsQixPQUFPLGNBQWMsQ0FBQTtpQkFDeEI7Z0JBQUMsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNsQixPQUFPLFVBQVUsQ0FBQTtpQkFDcEI7Z0JBQUMsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNsQixPQUFPLFNBQVMsQ0FBQTtpQkFDbkI7WUFDTCxDQUFDLENBQUE7WUFFRCxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUN2RCxjQUFjLENBQUMsK0RBQStELEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7aUJBQ3hHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztpQkFDdEMsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7aUJBQ3hCLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxjQUFjLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ2hJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsQ0FBQztLQUFBO0NBQ0o7QUFoRUQsOEJBZ0VDIn0= \ No newline at end of file
+exports.default = GelbooruNSFW;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VsYm9vcnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvbnNmdy9nZWxib29ydS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFDMUMsa0RBQXlCO0FBRXpCLE1BQXFCLFlBQWEsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsV0FBVztZQUN4QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFFBQVEsRUFBRTtnQkFDTixjQUFjO2dCQUNkLHdCQUF3QjthQUMzQjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLDZCQUE2QjtvQkFDckMsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLElBQUksRUFBRTs7WUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUE7WUFDL0MsSUFBSSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVuRyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO29CQUN4QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtpQkFDbkQ7YUFDSjtZQUVELElBQUksR0FBRyxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQywwRUFBMEUsSUFBSSxzQkFBc0IsQ0FBQyxDQUFBO1lBRS9ILElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUM1RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQTthQUMxRTtZQUVELElBQUksU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDaEIsT0FBTyxNQUFNLENBQUE7aUJBQ2hCO2dCQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDbEIsT0FBTyxjQUFjLENBQUE7aUJBQ3hCO2dCQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDbEIsT0FBTyxVQUFVLENBQUE7aUJBQ3BCO2dCQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDbEIsT0FBTyxTQUFTLENBQUE7aUJBQ25CO1lBQ0wsQ0FBQyxDQUFBO1lBRUQsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2lCQUN2QixRQUFRLENBQUMsUUFBUSxDQUFDO2lCQUNsQixRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDdkQsY0FBYyxDQUFDLCtEQUErRCxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO2lCQUN4RyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUM7aUJBQ3RDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2lCQUN4QixTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssY0FBYyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUNoSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtDQUNKO0FBaEVELCtCQWdFQyJ9 \ No newline at end of file
diff --git a/dist/commands/nsfw/rule34.js b/dist/commands/nsfw/rule34.js
index ec85fdc..841d69d 100644
--- a/dist/commands/nsfw/rule34.js
+++ b/dist/commands/nsfw/rule34.js
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const discord_js_1 = require("discord.js");
const axios_1 = __importDefault(require("axios"));
-class Rule34Bot extends discord_js_commando_1.Command {
+class Rule34NSFW extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
name: 'rule34',
@@ -37,7 +37,8 @@ class Rule34Bot extends discord_js_commando_1.Command {
{
key: 'tags',
prompt: 'What tag(s) would you like?',
- type: 'string'
+ type: 'string',
+ default: '',
}
],
nsfw: true
@@ -46,15 +47,15 @@ class Rule34Bot extends discord_js_commando_1.Command {
run(msg, { tags }) {
return __awaiter(this, void 0, void 0, function* () {
let randomInt = Math.floor(Math.random() * 100);
- let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat'];
+ let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat', 'poop'];
if (tags !== 0) {
- if (blacklist.includes(tags)) {
- msg.reply('Blacklisted word was used! ⛔');
+ if (blacklist.includes(tags.toLowerCase())) {
+ return msg.reply('Blacklisted word was used! ⛔');
}
}
let res = yield axios_1.default.get(`http://rule34.xxx/index.php?page=dapi&s=post&q=index&limit=100&tags=${tags}+-rating:safe&json=1`);
- if (blacklist.includes(res.data[randomInt].tags)) {
- msg.reply('Sorry! This image had a tag that was blacklisted! ⛔');
+ if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) {
+ return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔');
}
let emb = new discord_js_1.MessageEmbed()
.setColor(0xFFCC4D)
@@ -67,5 +68,5 @@ class Rule34Bot extends discord_js_commando_1.Command {
});
}
}
-exports.default = Rule34Bot;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZTM0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL25zZncvcnVsZTM0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELDJDQUEwQztBQUMxQyxrREFBeUI7QUFFekIsTUFBcUIsU0FBVSxTQUFRLDZCQUFPO0lBQzFDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixLQUFLLEVBQUUsTUFBTTtZQUNiLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFlBQVk7Z0JBQ1osc0JBQXNCO2FBQ3pCO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsTUFBTTtvQkFDWCxNQUFNLEVBQUUsNkJBQTZCO29CQUNyQyxJQUFJLEVBQUUsUUFBUTtpQkFDakI7YUFDSjtZQUNELElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFOztZQUNwQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQTtZQUMvQyxJQUFJLFNBQVMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRW5HLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDWixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtpQkFDNUM7YUFDSjtZQUVELElBQUksR0FBRyxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyx1RUFBdUUsSUFBSSxzQkFBc0IsQ0FBQyxDQUFBO1lBRTVILElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5QyxHQUFHLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUE7YUFDbkU7WUFFRCxJQUFJLEdBQUcsR0FBRyxJQUFJLHlCQUFZLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNyRCxjQUFjLENBQUMsNkRBQTZELEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7aUJBQ3RHLFFBQVEsQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDbkcsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7aUJBQ3hCLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ3JILEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsQ0FBQztLQUFBO0NBQ0o7QUFyREQsNEJBcURDIn0= \ No newline at end of file
+exports.default = Rule34NSFW;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZTM0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL25zZncvcnVsZTM0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELDJDQUEwQztBQUMxQyxrREFBeUI7QUFFekIsTUFBcUIsVUFBVyxTQUFRLDZCQUFPO0lBQzNDLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixLQUFLLEVBQUUsTUFBTTtZQUNiLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFlBQVk7Z0JBQ1osc0JBQXNCO2FBQ3pCO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsTUFBTTtvQkFDWCxNQUFNLEVBQUUsNkJBQTZCO29CQUNyQyxJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUUsRUFBRTtpQkFDZDthQUNKO1lBQ0QsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUU7O1lBQ3BDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFBO1lBQy9DLElBQUksU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTNHLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDWixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7b0JBQ3hDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO2lCQUNuRDthQUNKO1lBRUQsSUFBSSxHQUFHLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLHVFQUF1RSxJQUFJLHNCQUFzQixDQUFDLENBQUE7WUFFNUgsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQzVELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFBO2FBQzFFO1lBRUQsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2lCQUN2QixRQUFRLENBQUMsUUFBUSxDQUFDO2lCQUNsQixRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDckQsY0FBYyxDQUFDLDZEQUE2RCxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO2lCQUN0RyxRQUFRLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ25HLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2lCQUN4QixTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUNySCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtDQUNKO0FBdERELDZCQXNEQyJ9 \ No newline at end of file
diff --git a/dist/commands/roleplay/blush.js b/dist/commands/roleplay/blush.js
new file mode 100644
index 0000000..4d99bd3
--- /dev/null
+++ b/dist/commands/roleplay/blush.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class BlushRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** blushes at **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmx1c2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvcm9sZXBsYXkvYmx1c2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxhQUFjLFNBQVEsNkJBQU87SUFDaEQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLFVBQVU7WUFDakIsVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUFFLDRCQUE0QjtZQUN6QyxRQUFRLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztZQUNqQyxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE9BQU87b0JBQ1osTUFBTSxFQUFFLHdDQUF3QztvQkFDaEQsSUFBSSxFQUFFLE1BQU07aUJBQ2Y7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEtBQUssRUFBRTtRQUMvQixHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLG1CQUFtQixLQUFLLENBQUMsUUFBUSxNQUFNLEdBQUcsR0FBRyxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUNwRyxDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/roleplay/celebrate.js b/dist/commands/roleplay/celebrate.js
new file mode 100644
index 0000000..c72d02f
--- /dev/null
+++ b/dist/commands/roleplay/celebrate.js
@@ -0,0 +1,28 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class CelebrateRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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) {
+ msg.say(`_**${msg.author.username}** celebrates._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsZWJyYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3JvbGVwbGF5L2NlbGVicmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGlCQUFrQixTQUFRLDZCQUFPO0lBQ3BELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsV0FBVztZQUN2QixXQUFXLEVBQUUsWUFBWTtZQUN6QixRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDM0IsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQjtRQUNwQixHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDOUUsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/roleplay/eat.js b/dist/commands/roleplay/eat.js
new file mode 100644
index 0000000..ed19f6a
--- /dev/null
+++ b/dist/commands/roleplay/eat.js
@@ -0,0 +1,28 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class EatRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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) {
+ msg.say(`_**${msg.author.username}** eats._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3JvbGVwbGF5L2VhdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFdBQVksU0FBUSw2QkFBTztJQUM5QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsTUFBTTtZQUNuQixRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDckIsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQjtRQUNwQixHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLFdBQVcsR0FBRyxHQUFHLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/roleplay/fistbump.js b/dist/commands/roleplay/fistbump.js
new file mode 100644
index 0000000..0d51663
--- /dev/null
+++ b/dist/commands/roleplay/fistbump.js
@@ -0,0 +1,36 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class FistBumpRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'fistbump',
+ aliases: ['fist-bump'],
+ group: 'roleplay',
+ memberName: 'fistbump',
+ description: 'Fist-bump with 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** fist-bumps **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlzdGJ1bXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvcm9sZXBsYXkvZmlzdGJ1bXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxnQkFBaUIsU0FBUSw2QkFBTztJQUNuRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3RCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFdBQVcsRUFBRSxrQ0FBa0M7WUFDL0MsUUFBUSxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDcEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSx5Q0FBeUM7b0JBQ2pELElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxtQkFBbUIsS0FBSyxDQUFDLFFBQVEsTUFBTSxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDcEcsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/roleplay/highfive.js b/dist/commands/roleplay/highfive.js
new file mode 100644
index 0000000..b88183d
--- /dev/null
+++ b/dist/commands/roleplay/highfive.js
@@ -0,0 +1,36 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class HighFiveRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'highfive',
+ aliases: ['high-five'],
+ group: 'roleplay',
+ memberName: 'highfive',
+ description: 'High-fave with 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** high-fives **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGZpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvcm9sZXBsYXkvaGlnaGZpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxnQkFBaUIsU0FBUSw2QkFBTztJQUNuRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3RCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFdBQVcsRUFBRSxrQ0FBa0M7WUFDL0MsUUFBUSxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDcEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSx5Q0FBeUM7b0JBQ2pELElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxtQkFBbUIsS0FBSyxDQUFDLFFBQVEsTUFBTSxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDcEcsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/roleplay/holdhands.js b/dist/commands/roleplay/holdhands.js
new file mode 100644
index 0000000..7e1e822
--- /dev/null
+++ b/dist/commands/roleplay/holdhands.js
@@ -0,0 +1,36 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class HoldHandsRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** holds **${uUser.username}** hand._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGhhbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3JvbGVwbGF5L2hvbGRoYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGlCQUFrQixTQUFRLDZCQUFPO0lBQ3BELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQztZQUNoRCxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsV0FBVztZQUN2QixXQUFXLEVBQUUsbUNBQW1DO1lBQ2hELFFBQVEsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ3JDLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsK0NBQStDO29CQUN2RCxJQUFJLEVBQUUsTUFBTTtpQkFDZjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsY0FBYyxLQUFLLENBQUMsUUFBUSxXQUFXLEdBQUcsR0FBRyxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUNwRyxDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/roleplay/hug.js b/dist/commands/roleplay/hug.js
new file mode 100644
index 0000000..37ef325
--- /dev/null
+++ b/dist/commands/roleplay/hug.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class HugRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'hug',
+ group: 'roleplay',
+ memberName: 'hug',
+ description: 'Hug hands with 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** hugs **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3JvbGVwbGF5L2h1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFdBQVksU0FBUSw2QkFBTztJQUM5QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsa0NBQWtDO1lBQy9DLFFBQVEsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQy9CLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsbUNBQW1DO29CQUMzQyxJQUFJLEVBQUUsTUFBTTtpQkFDZjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsYUFBYSxLQUFLLENBQUMsUUFBUSxNQUFNLEdBQUcsR0FBRyxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUM5RixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/roleplay/inhale.js b/dist/commands/roleplay/inhale.js
new file mode 100644
index 0000000..ae2ce59
--- /dev/null
+++ b/dist/commands/roleplay/inhale.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class InhaleRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** inhales **${uUser.username}** but gained no abilities._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5oYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3JvbGVwbGF5L2luaGFsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGNBQWUsU0FBUSw2QkFBTztJQUNqRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsUUFBUTtZQUNwQixXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLFFBQVEsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1lBQ2xDLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsc0NBQXNDO29CQUM5QyxJQUFJLEVBQUUsTUFBTTtpQkFDZjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsZ0JBQWdCLEtBQUssQ0FBQyxRQUFRLDhCQUE4QixHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDekgsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/roleplay/kill.js b/dist/commands/roleplay/kill.js
new file mode 100644
index 0000000..77c0214
--- /dev/null
+++ b/dist/commands/roleplay/kill.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class KillRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** kills **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yb2xlcGxheS9raWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSx3QkFBd0I7WUFDckMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSxvQ0FBb0M7b0JBQzVDLElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxjQUFjLEtBQUssQ0FBQyxRQUFRLE1BQU0sR0FBRyxHQUFHLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQy9GLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/roleplay/kiss.js b/dist/commands/roleplay/kiss.js
new file mode 100644
index 0000000..9619790
--- /dev/null
+++ b/dist/commands/roleplay/kiss.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class KissRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** kisses **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yb2xlcGxheS9raXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSx3QkFBd0I7WUFDckMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSxvQ0FBb0M7b0JBQzVDLElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxlQUFlLEtBQUssQ0FBQyxRQUFRLE1BQU0sR0FBRyxHQUFHLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ2hHLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/roleplay/pat.js b/dist/commands/roleplay/pat.js
new file mode 100644
index 0000000..6b8f428
--- /dev/null
+++ b/dist/commands/roleplay/pat.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class PatRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** pat **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3JvbGVwbGF5L3BhdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFdBQVksU0FBUSw2QkFBTztJQUM5QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsdUJBQXVCO1lBQ3BDLFFBQVEsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQy9CLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsbUNBQW1DO29CQUMzQyxJQUFJLEVBQUUsTUFBTTtpQkFDZjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsWUFBWSxLQUFLLENBQUMsUUFBUSxNQUFNLEdBQUcsR0FBRyxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUM3RixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/roleplay/poke.js b/dist/commands/roleplay/poke.js
new file mode 100644
index 0000000..90fe93b
--- /dev/null
+++ b/dist/commands/roleplay/poke.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class PokeRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** pokes **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9rZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yb2xlcGxheS9wb2tlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSx3QkFBd0I7WUFDckMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSxvQ0FBb0M7b0JBQzVDLElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxjQUFjLEtBQUssQ0FBQyxRQUFRLE1BQU0sR0FBRyxHQUFHLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQy9GLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/roleplay/punch.js b/dist/commands/roleplay/punch.js
new file mode 100644
index 0000000..7acf146
--- /dev/null
+++ b/dist/commands/roleplay/punch.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class PunchRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** punches **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVuY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvcm9sZXBsYXkvcHVuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxhQUFjLFNBQVEsNkJBQU87SUFDaEQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLFVBQVU7WUFDakIsVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxRQUFRLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztZQUNqQyxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE9BQU87b0JBQ1osTUFBTSxFQUFFLHFDQUFxQztvQkFDN0MsSUFBSSxFQUFFLE1BQU07aUJBQ2Y7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEtBQUssRUFBRTtRQUMvQixHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLGdCQUFnQixLQUFLLENBQUMsUUFBUSxNQUFNLEdBQUcsR0FBRyxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUNqRyxDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/roleplay/slap.js b/dist/commands/roleplay/slap.js
new file mode 100644
index 0000000..5dc5a48
--- /dev/null
+++ b/dist/commands/roleplay/slap.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class SlapRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** slaps **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yb2xlcGxheS9zbGFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSx3QkFBd0I7WUFDckMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSxvQ0FBb0M7b0JBQzVDLElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxjQUFjLEtBQUssQ0FBQyxRQUFRLE1BQU0sR0FBRyxHQUFHLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQy9GLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/roleplay/sleep.js b/dist/commands/roleplay/sleep.js
new file mode 100644
index 0000000..574a199
--- /dev/null
+++ b/dist/commands/roleplay/sleep.js
@@ -0,0 +1,28 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class SleepRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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) {
+ msg.say(`_**${msg.author.username}** falls asleep._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xlZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvcm9sZXBsYXkvc2xlZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWlDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxhQUFjLFNBQVEsNkJBQU87SUFDaEQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLFVBQVU7WUFDakIsVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUFFLFFBQVE7WUFDckIsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxtQkFBbUIsR0FBRyxHQUFHLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ2hGLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/roleplay/wakeup.js b/dist/commands/roleplay/wakeup.js
new file mode 100644
index 0000000..0f88bf5
--- /dev/null
+++ b/dist/commands/roleplay/wakeup.js
@@ -0,0 +1,29 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class WakeUpRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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) {
+ msg.say(`_**${msg.author.username}** wakes up._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FrZXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3JvbGVwbGF5L3dha2V1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGNBQWUsU0FBUSw2QkFBTztJQUNqRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDcEIsS0FBSyxFQUFFLFVBQVU7WUFDakIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsV0FBVyxFQUFFLFVBQVU7WUFDdkIsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQ3hCLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxlQUFlLEdBQUcsR0FBRyxHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/roleplay/wave.js b/dist/commands/roleplay/wave.js
new file mode 100644
index 0000000..86b9288
--- /dev/null
+++ b/dist/commands/roleplay/wave.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class WaveRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'wave',
+ group: 'roleplay',
+ memberName: 'wave',
+ description: 'Wave 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** waves at **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yb2xlcGxheS93YXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSx3QkFBd0I7WUFDckMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSx1Q0FBdUM7b0JBQy9DLElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxpQkFBaUIsS0FBSyxDQUFDLFFBQVEsTUFBTSxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDbEcsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/roleplay/wink.js b/dist/commands/roleplay/wink.js
new file mode 100644
index 0000000..b02e156
--- /dev/null
+++ b/dist/commands/roleplay/wink.js
@@ -0,0 +1,35 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class WinkRoleplay extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'wink',
+ group: 'roleplay',
+ memberName: 'wink',
+ description: 'Wink 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, { uUser }) {
+ msg.say(`_**${msg.author.username}** winks at **${uUser.username}**._` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yb2xlcGxheS93aW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUVqQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sWUFBYSxTQUFRLDZCQUFPO0lBQy9DLFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFdBQVcsRUFBRSx3QkFBd0I7WUFDckMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSx1Q0FBdUM7b0JBQy9DLElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxpQkFBaUIsS0FBSyxDQUFDLFFBQVEsTUFBTSxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDbEcsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/server/oldestmember.js b/dist/commands/server/oldestmember.js
new file mode 100644
index 0000000..5e4b962
--- /dev/null
+++ b/dist/commands/server/oldestmember.js
@@ -0,0 +1,55 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const date_fns_1 = require("date-fns");
+const common_tags_1 = require("common-tags");
+module.exports = class OldestMemberServer extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'oldestmember',
+ aliases: [
+ 'oldest-member',
+ 'oldestuser',
+ 'oldest-user',
+ 'oldest'
+ ],
+ group: 'fun',
+ 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) {
+ var _a;
+ const oldest = (_a = 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()) === null || _a === void 0 ? void 0 : _a.user;
+ const { createdAt } = oldest;
+ const age = date_fns_1.formatDistance(createdAt, new Date());
+ const date = date_fns_1.formatRelative(createdAt, new Date());
+ msg.reply(common_tags_1.stripIndents `${oldest.tag} is the oldest member in this server.
+ Their account is **${age}** old (created **${date}**).` + ' ' + emoji_random_1.default.random());
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2xkZXN0bWVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9vbGRlc3RtZW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWdDO0FBQ2hDLHVDQUF5RDtBQUN6RCw2Q0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGtCQUFtQixTQUFRLDZCQUFPO0lBQ3JELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUU7Z0JBQ0wsZUFBZTtnQkFDZixZQUFZO2dCQUNaLGFBQWE7Z0JBQ2IsUUFBUTthQUNYO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsY0FBYztZQUMxQixXQUFXLEVBQUUsZ0RBQWdEO1lBQzdELFFBQVEsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQzlCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7O1FBQ3BCLE1BQU0sTUFBTSxTQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTzthQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzdCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUE7WUFDaEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtZQUVoRCxJQUFJLFVBQVUsR0FBRyxVQUFVLEVBQUU7Z0JBQ3pCLE9BQU8sQ0FBQyxDQUFBO2FBQ1g7aUJBQU0sSUFBSSxVQUFVLEdBQUcsVUFBVSxFQUFFO2dCQUNoQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2FBQ1o7WUFDRCxPQUFPLENBQUMsQ0FBQTtRQUNaLENBQUMsQ0FBQzthQUNHLEtBQUssRUFBRSwwQ0FBRSxJQUFJLENBQUE7UUFFdEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUM1QixNQUFNLEdBQUcsR0FBRyx5QkFBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUE7UUFDakQsTUFBTSxJQUFJLEdBQUcseUJBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ2xELEdBQUcsQ0FBQyxLQUFLLENBQUMsMEJBQVksQ0FBQSxHQUFHLE1BQU0sQ0FBQyxHQUFHOzZCQUNkLEdBQUcscUJBQXFCLElBQUksTUFBTSxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDbkYsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/server/quotemessage.js b/dist/commands/server/quotemessage.js
new file mode 100644
index 0000000..e61cdb6
--- /dev/null
+++ b/dist/commands/server/quotemessage.js
@@ -0,0 +1,78 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+const truncateText_js_1 = __importDefault(require("../../utils/truncateText.js"));
+const path_1 = __importDefault(require("path"));
+module.exports = class QuoteMessageServer extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { mMsg }) {
+ let emb = new discord_js_1.MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setTimestamp(mMsg.createdAt)
+ .setAuthor(mMsg.author.tag, mMsg.author.avatarUrl)
+ .addFields([
+ {
+ name: 'Channel',
+ value: mMsg.channel.toString()
+ },
+ {
+ name: 'Message',
+ value: `[Jump to](https://discordapp.com/channels/${mMsg.guild.id}/${mMsg.channel.id}/${mMsg.id})`
+ }
+ ]);
+ console.debug('Does the message have content:', Boolean(mMsg.content));
+ if (mMsg.content)
+ emb.setDescription(truncateText_js_1.default(mMsg.content));
+ let messageImage;
+ const extensions = ['.png', '.jpg', '.jpeg', '.gif', '.webp'];
+ const linkRegex = /https?:\/\/(?:\w+\.)?[\w-]+\.[\w]{2,3}(?:\/[\w-_.]+)+\.(?:png|jpg|jpeg|gif|webp)/;
+ const imageEmbed = mMsg.embeds.find(msgEmbed => msgEmbed.type === 'rich' && msgEmbed.image && extensions.includes(path_1.default.extname(msgEmbed.image.url)));
+ if (imageEmbed)
+ messageImage = imageEmbed.image.url;
+ const attachment = mMsg.attachments.find(file => extensions.includes(path_1.default.extname(file.url)));
+ if (attachment) {
+ messageImage = attachment.url;
+ }
+ if (!messageImage) {
+ const linkMatch = mMsg.content.match(linkRegex);
+ if (linkMatch && extensions.includes(path_1.default.extname(linkMatch[0]))) {
+ [messageImage] = linkMatch;
+ }
+ }
+ if (messageImage)
+ emb.setImage(messageImage);
+ msg.say(emb);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGVtZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9xdW90ZW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFFL0QsMkNBQTBDO0FBQzFDLGtGQUE0QztBQUM1QyxnREFBdUI7QUFFdkIsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGtCQUFtQixTQUFRLDZCQUFPO0lBQ3JELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUU7Z0JBQ0wsZUFBZTtnQkFDZixVQUFVO2dCQUNWLFdBQVc7YUFDZDtZQUNELEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLGNBQWM7WUFDMUIsV0FBVyxFQUFFLHNDQUFzQztZQUNuRCxRQUFRLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLHVDQUF1QztvQkFDL0MsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFlBQVk7aUJBQ3RCO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUU7UUFDOUIsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2FBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2FBQ2pELFNBQVMsQ0FBQztZQUNQO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTthQUNqQztZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSw2Q0FBNkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRzthQUNyRztTQUNKLENBQUMsQ0FBQTtRQUdOLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3RFLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLHlCQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFHdEQsSUFBSSxZQUFZLENBQUE7UUFFaEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFN0QsTUFBTSxTQUFTLEdBQUcsa0ZBQWtGLENBQUM7UUFHckcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQy9CLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNsSCxDQUFBO1FBQ0QsSUFBSSxVQUFVO1lBQUUsWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFBO1FBR25ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0YsSUFBSSxVQUFVLEVBQUU7WUFDWixZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQTtTQUNoQztRQUdELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUMvQyxJQUFJLFNBQVMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUQsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLENBQUE7YUFDN0I7U0FDSjtRQUdELElBQUksWUFBWTtZQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFNUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNoQixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/server/randommember.js b/dist/commands/server/randommember.js
new file mode 100644
index 0000000..a64f25f
--- /dev/null
+++ b/dist/commands/server/randommember.js
@@ -0,0 +1,39 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class RandomMemberServer extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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) {
+ 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_1.default.random()}`);
+ }
+ return msg.reply(`I choose ${msg.guild.members.cache.random().displayName}! ${emoji_random_1.default.random()}`);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tbWVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9yYW5kb21tZW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWdDO0FBRWhDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxrQkFBbUIsU0FBUSw2QkFBTztJQUNyRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLGNBQWM7WUFDcEIsT0FBTyxFQUFFO2dCQUNMLGVBQWU7Z0JBQ2YsWUFBWTtnQkFDWixhQUFhO2dCQUNiLFNBQVM7Z0JBQ1QsVUFBVTthQUNiO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsY0FBYztZQUMxQixXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELFFBQVEsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQzlCLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssc0JBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDbkg7UUFDRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxLQUFLLHNCQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/server/roleinfo.js b/dist/commands/server/roleinfo.js
new file mode 100644
index 0000000..7e12a10
--- /dev/null
+++ b/dist/commands/server/roleinfo.js
@@ -0,0 +1,62 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+module.exports = class RoleInfoServer extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'roleinfo',
+ aliases: [
+ 'role-info'
+ ],
+ group: 'fun',
+ 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, { rRole }) {
+ let emb = new discord_js_1.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}`)}`
+ }
+ ]);
+ msg.say(emb);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2VydmVyL3JvbGVpbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkRBQStEO0FBRS9ELDJDQUEwQztBQUUxQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sY0FBZSxTQUFRLDZCQUFPO0lBQ2pELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsVUFBVTtZQUNoQixPQUFPLEVBQUU7Z0JBQ0wsV0FBVzthQUNkO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ2hDLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxPQUFPO29CQUNaLE1BQU0sRUFBRSxpREFBaUQ7b0JBQ3pELElBQUksRUFBRSxNQUFNO2lCQUNmO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDL0IsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2FBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEIsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUM7YUFDdkMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7YUFDN0IsU0FBUyxDQUFDO1lBQ1A7Z0JBQ0ksSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLFdBQVcsR0FBRzthQUN0RTtZQUNEO2dCQUNJLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDMUM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ3BDO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUk7YUFDNUI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO2FBQzFEO1NBQ0osQ0FBQyxDQUFBO1FBQ04sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNoQixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/server/roles.js b/dist/commands/server/roles.js
new file mode 100644
index 0000000..cb2f6b7
--- /dev/null
+++ b/dist/commands/server/roles.js
@@ -0,0 +1,43 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+const truncateText_js_1 = __importDefault(require("../../utils/truncateText.js"));
+module.exports = class RolesServer extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'roles',
+ aliases: [
+ 'list-roles',
+ 'listroles',
+ 'roles-list',
+ 'roleslist'
+ ],
+ group: 'fun',
+ 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) {
+ let emb = new discord_js_1.MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setTitle('All Roles')
+ .setDescription(truncateText_js_1.default(msg.guild.roles
+ .cache.sort((role1, role2) => role2.position - role1.position)
+ .array()
+ .join(', ')));
+ msg.say(emb);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2VydmVyL3JvbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBRS9ELDJDQUEwQztBQUMxQyxrRkFBNEM7QUFFNUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFdBQVksU0FBUSw2QkFBTztJQUM5QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixXQUFXO2dCQUNYLFlBQVk7Z0JBQ1osV0FBVzthQUNkO1lBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsT0FBTztZQUNuQixXQUFXLEVBQUUsNENBQTRDO1lBQ3pELFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUN2QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxTQUFTLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CO1FBQ3BCLElBQUksR0FBRyxHQUFHLElBQUkseUJBQVksRUFBRTthQUN2QixRQUFRLENBQUMsUUFBUSxDQUFDO2FBQ2xCLFFBQVEsQ0FBQyxXQUFXLENBQUM7YUFDckIsY0FBYyxDQUFDLHlCQUFFLENBQ2QsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLO2FBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQzthQUM3RCxLQUFLLEVBQUU7YUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2xCLENBQUMsQ0FBQTtRQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEIsQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/user/age.js b/dist/commands/user/age.js
new file mode 100644
index 0000000..45ebc28
--- /dev/null
+++ b/dist/commands/user/age.js
@@ -0,0 +1,52 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const date_fns_1 = require("date-fns");
+const common_tags_1 = require("common-tags");
+module.exports = class AgeFun extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'age',
+ aliases: [
+ 'account-age',
+ 'accountage'
+ ],
+ group: 'fun',
+ 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: ''
+ }
+ ]
+ });
+ }
+ run(msg, { uUser }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const target = uUser || msg.author;
+ const { createdAt } = target;
+ msg.reply(common_tags_1.stripIndents `${date_fns_1.formatDistance(createdAt, new Date())} old.
+ Created on ${date_fns_1.formatRelative(createdAt, new Date())}`);
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VzZXIvYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBRS9ELHVDQUF5RDtBQUN6RCw2Q0FBMEM7QUFFMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLE1BQU8sU0FBUSw2QkFBTztJQUN6QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUU7Z0JBQ0wsYUFBYTtnQkFDYixZQUFZO2FBQ2Y7WUFDRCxLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxzREFBc0Q7WUFDbkUsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDO1lBQzFDLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUscUNBQXFDO29CQUM3QyxJQUFJLEVBQUUsTUFBTTtvQkFDWixPQUFPLEVBQUUsRUFBRTtpQkFDZDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFOztZQUNyQyxNQUFNLE1BQU0sR0FBRyxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQTtZQUNsQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFBO1lBQzVCLEdBQUcsQ0FBQyxLQUFLLENBQUMsMEJBQVksQ0FBQSxHQUFHLHlCQUFjLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7cUJBQ2pELHlCQUFjLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDekQsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/user/id.js b/dist/commands/user/id.js
new file mode 100644
index 0000000..276788b
--- /dev/null
+++ b/dist/commands/user/id.js
@@ -0,0 +1,36 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class IDUser extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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 => msg.author
+ }
+ ]
+ });
+ }
+ run(msg, { uUser }) {
+ msg.reply(`**${uUser.id === msg.author.id ? 'Your' : `${uUser.username}'s`}** ID is **${uUser.id}**. ${emoji_random_1.default.random()}`);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdXNlci9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZEQUErRDtBQUMvRCxnRUFBaUM7QUFHakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLE1BQU8sU0FBUSw2QkFBTztJQUN6QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsTUFBTTtZQUNiLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSx3QkFBd0I7WUFDckMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ3BCLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsT0FBTztvQkFDWixNQUFNLEVBQUUsNkNBQTZDO29CQUNyRCxJQUFJLEVBQUUsTUFBTTtvQkFDWixPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDN0I7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLEtBQUssRUFBRTtRQUMvQixHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksY0FBYyxLQUFLLENBQUMsRUFBRSxPQUFPLHNCQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVILENBQUM7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/user/nitro.js b/dist/commands/user/nitro.js
new file mode 100644
index 0000000..4b8609c
--- /dev/null
+++ b/dist/commands/user/nitro.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+const common_tags_1 = require("common-tags");
+module.exports = class NitroUser extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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) {
+ let emb = new discord_js_1.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(common_tags_1.stripIndents `
+ This message can only be viewed by users with Discord Nitro.
+ [Lift off with Discord Nitro today](https://discordapp.com/nitro)`);
+ msg.say(emb);
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibml0cm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdXNlci9uaXRyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUErRDtBQUMvRCwyQ0FBMEM7QUFDMUMsNkNBQTBDO0FBRTFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxTQUFVLFNBQVEsNkJBQU87SUFDNUMsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLE1BQU07WUFDYixVQUFVLEVBQUUsT0FBTztZQUNuQixXQUFXLEVBQUUsOERBQThEO1lBQzNFLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUN2QixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0I7UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2FBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEIsU0FBUyxDQUFDLGVBQWUsRUFBRSwwREFBMEQsRUFBRSw4QkFBOEIsQ0FBQzthQUN0SCxZQUFZLENBQUMsMERBQTBELENBQUM7YUFDeEUsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7YUFDeEIsY0FBYyxDQUFDLDBCQUFZLENBQUE7OzhFQUVzQyxDQUFDLENBQUE7UUFDdkUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNoQixDQUFDO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/user/pfp.js b/dist/commands/user/pfp.js
index a6c480a..1a6a61c 100644
--- a/dist/commands/user/pfp.js
+++ b/dist/commands/user/pfp.js
@@ -45,8 +45,8 @@ module.exports = class PFPServer extends discord_js_commando_1.Command {
.setColor(0xFFCC4D)
.setTitle(`${(_a = msg.mentions.users.first()) === null || _a === void 0 ? void 0 : _a.username}'s Profile Picture ` + emoji_random_1.default.random())
.setImage(user.avatarURL());
- msg.reply(emb);
+ msg.say(emb);
});
}
};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGZwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VzZXIvcGZwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELDJDQUEwQztBQUMxQyxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFNBQVUsU0FBUSw2QkFBTztJQUM1QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUU7Z0JBQ0wsZ0JBQWdCO2dCQUNoQixpQkFBaUI7Z0JBQ2pCLGNBQWM7Z0JBQ2QsZUFBZTtnQkFDZixRQUFRO2dCQUNSLEtBQUs7YUFDUjtZQUNELEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLDRDQUE0QztZQUN6RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFFBQVE7b0JBQ2IsTUFBTSxFQUFFLHVEQUF1RDtvQkFDL0QsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxRQUFRLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvQixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRTs7UUFDaEMsTUFBTSxTQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSwwQ0FBRSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTs7WUFDeEMsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2lCQUN2QixRQUFRLENBQUMsUUFBUSxDQUFDO2lCQUNsQixRQUFRLENBQUMsR0FBRyxNQUFBLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSwwQ0FBRSxRQUFRLHFCQUFxQixHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3ZGLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUMvQixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2xCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGZwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VzZXIvcGZwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELDJDQUEwQztBQUMxQyxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFNBQVUsU0FBUSw2QkFBTztJQUM1QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUU7Z0JBQ0wsZ0JBQWdCO2dCQUNoQixpQkFBaUI7Z0JBQ2pCLGNBQWM7Z0JBQ2QsZUFBZTtnQkFDZixRQUFRO2dCQUNSLEtBQUs7YUFDUjtZQUNELEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLDRDQUE0QztZQUN6RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFFBQVE7b0JBQ2IsTUFBTSxFQUFFLHVEQUF1RDtvQkFDL0QsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2FBQ0o7WUFDRCxRQUFRLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvQixVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRTs7UUFDaEMsTUFBTSxTQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSwwQ0FBRSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTs7WUFDeEMsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2lCQUN2QixRQUFRLENBQUMsUUFBUSxDQUFDO2lCQUNsQixRQUFRLENBQUMsR0FBRyxNQUFBLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSwwQ0FBRSxRQUFRLHFCQUFxQixHQUFHLHNCQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3ZGLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUMvQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/utility/average.js b/dist/commands/utility/average.js
new file mode 100644
index 0000000..afc265a
--- /dev/null
+++ b/dist/commands/utility/average.js
@@ -0,0 +1,57 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class AverageUtility extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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
+ }
+ ]
+ });
+ }
+ run(msg, { nNum }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ if (nNum.length < 2)
+ msg.reply('Please provide **2** or more numbers.');
+ const reducer = (accumulator, currentValue) => accumulator + currentValue;
+ msg.reply(`The average of the specified numbers is ${nNum.reduce(reducer) / nNum.length}.` + ' ' + emoji_random_1.default.random());
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91dGlsaXR5L2F2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsZ0VBQWdDO0FBSWhDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxjQUFlLFNBQVEsNkJBQU87SUFDakQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxTQUFTO1lBQ2YsT0FBTyxFQUFFO2dCQUNMLGdCQUFnQjtnQkFDaEIsZUFBZTtnQkFDZixhQUFhO2dCQUNiLFlBQVk7YUFDZjtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSx3Q0FBd0M7WUFDckQsUUFBUSxFQUFFLENBQUMsNEJBQTRCLENBQUM7WUFDeEMsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxNQUFNO29CQUNYLE1BQU0sRUFBRSxtREFBbUQ7b0JBQzNELElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxRQUFRO29CQUNmLFFBQVEsRUFBRSxJQUFJO2lCQUNqQjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFOztZQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUE7WUFFdkUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFBO1lBQ3pFLEdBQUcsQ0FBQyxLQUFLLENBQUMsMkNBQTJDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdEgsQ0FBQztLQUFBO0NBQ0osQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/commands/utility/csgoserverstatus.js b/dist/commands/utility/csgoserverstatus.js
new file mode 100644
index 0000000..93ef2b1
--- /dev/null
+++ b/dist/commands/utility/csgoserverstatus.js
@@ -0,0 +1,90 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const gamedig_1 = __importDefault(require("gamedig"));
+const gameDigHelper_js_1 = __importDefault(require("../../utils/gameDigHelper.js"));
+module.exports = class CSGOServerStatusUtility extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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
+ }
+ ]
+ });
+ }
+ run(msg, { host, port }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const options = {
+ host,
+ type: 'csgo'
+ };
+ if (port) {
+ options.port = port;
+ }
+ gamedig_1.default
+ .query(options)
+ .then(data => {
+ let emb = gameDigHelper_js_1.default(data);
+ emb.setColor(0xFFCC4D);
+ emb.setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/730/header.jpg');
+ return msg.replyEmbed(emb);
+ })
+ .catch(err => {
+ if (err === 'UDP Watchdog Timeout')
+ return msg.reply('Server timed out, it\'s probably offline. ' + emoji_random_1.default.random());
+ return msg.reply('Woops, an unknown error has occured. ' + emoji_random_1.default.random());
+ });
+ }
+ finally {
+ msg.channel.stopTyping();
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Nnb3NlcnZlcnN0YXR1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91dGlsaXR5L2NzZ29zZXJ2ZXJzdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFFL0QsZ0VBQWdDO0FBQ2hDLHNEQUE2QjtBQUM3QixvRkFBd0Q7QUFFeEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLHVCQUF3QixTQUFRLDZCQUFPO0lBQzFELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLE9BQU8sRUFBRTtnQkFDTCwyQkFBMkI7Z0JBQzNCLDhCQUE4QjtnQkFDOUIsMENBQTBDO2dCQUMxQywrQ0FBK0M7Z0JBQy9DLFFBQVE7YUFDWDtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxrQkFBa0I7WUFDOUIsV0FBVyxFQUFFLGdEQUFnRDtZQUM3RCxRQUFRLEVBQUU7Z0JBQ04sc0JBQXNCO2dCQUN0QixZQUFZO2FBQ2Y7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLHVDQUF1QztvQkFDL0MsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2dCQUNEO29CQUNJLEdBQUcsRUFBRSxNQUFNO29CQUNYLE1BQU0sRUFBRSxpQ0FBaUM7b0JBQ3pDLElBQUksRUFBRSxTQUFTO29CQUNmLE9BQU8sRUFBRSxPQUFPO29CQUNoQixHQUFHLEVBQUUsS0FBSztvQkFDVixHQUFHLEVBQUUsQ0FBQztpQkFDVDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTs7WUFDMUMsSUFBSTtnQkFDQSxNQUFNLE9BQU8sR0FBRztvQkFDWixJQUFJO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNmLENBQUE7Z0JBRUQsSUFBSSxJQUFJLEVBQUU7b0JBQ04sT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7aUJBQ3RCO2dCQUVELGlCQUFPO3FCQUNGLEtBQUssQ0FBQyxPQUFPLENBQUM7cUJBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNULElBQUksR0FBRyxHQUFHLDBCQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQzdCLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7b0JBQ3RCLEdBQUcsQ0FBQyxZQUFZLENBQUMsMkRBQTJELENBQUMsQ0FBQTtvQkFDN0UsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUM5QixDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNULElBQUksR0FBRyxLQUFLLHNCQUFzQjt3QkFBRSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsNENBQTRDLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO29CQUduSCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2dCQUM5RSxDQUFDLENBQUMsQ0FBQTthQUNUO29CQUFTO2dCQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUE7YUFDM0I7UUFDTCxDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/utility/fortnitestats.js b/dist/commands/utility/fortnitestats.js
new file mode 100644
index 0000000..7faafb0
--- /dev/null
+++ b/dist/commands/utility/fortnitestats.js
@@ -0,0 +1,106 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const axios_1 = __importDefault(require("axios"));
+const config_json_1 = __importDefault(require("../../config.json"));
+const platforms = ['pc', 'xbl', 'psn'];
+module.exports = class FortniteStatsUtility extends discord_js_commando_1.Command {
+ constructor(client) {
+ super(client, {
+ name: 'fortnitestats',
+ aliases: [
+ 'fortnite-stats',
+ 'fortnitestatistics',
+ 'fortnite-statistics',
+ 'fnstats',
+ 'fn-stats',
+ 'fnstatistics',
+ 'fn-statistics',
+ 'fns',
+ 'fn-s'
+ ],
+ group: 'utility',
+ memberName: 'fortnitestats',
+ description: 'Grabs a specified player\' 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 => platform.toLowerCase(),
+ oneOf: platforms
+ },
+ {
+ key: 'pUsername',
+ prompt: 'What user would you like to look up?',
+ type: 'string'
+ }
+ ]
+ });
+ }
+ run(msg, { pPlatform, pUsername }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const stats = (yield axios_1.default
+ .get(`https://api.fortnitetracker.com/v1/profile/${pPlatform}/${pUsername}`, {
+ headers: { 'TRN-Api-Key': config_json_1.default.fortniteTrackerNetworkToken }
+ })
+ .catch(err => {
+ console.error(err);
+ return msg.reply('Woops, There was an error with the (https://api.fortnitetracker.com) API. ' + emoji_random_1.default.random());
+ })).data;
+ if (stats.error === 'Player Not Found') {
+ return msg.reply('Specified player was not found on that platform. ' + emoji_random_1.default.random());
+ }
+ console.debug(`Result for ${pUsername} on ${pPlatform}:`, stats);
+ let emb = new discord_js_1.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 {
+ msg.channel.stopTyping();
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ydG5pdGVzdGF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91dGlsaXR5L2ZvcnRuaXRlc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFDL0QsMkNBQTBDO0FBQzFDLGdFQUFnQztBQUNoQyxrREFBeUI7QUFDekIsb0VBQXNDO0FBQ3RDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUV0QyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sb0JBQXFCLFNBQVEsNkJBQU87SUFDdkQsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxlQUFlO1lBQ3JCLE9BQU8sRUFBRTtnQkFDTCxnQkFBZ0I7Z0JBQ2hCLG9CQUFvQjtnQkFDcEIscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULFVBQVU7Z0JBQ1YsY0FBYztnQkFDZCxlQUFlO2dCQUNmLEtBQUs7Z0JBQ0wsTUFBTTthQUNUO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLGVBQWU7WUFDM0IsV0FBVyxFQUFFLGlEQUFpRDtZQUM5RCxPQUFPLEVBQUUsdUZBQXVGO1lBQ2hHLFFBQVEsRUFBRTtnQkFDTiwwQkFBMEI7Z0JBQzFCLGFBQWE7YUFDaEI7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLFdBQVc7b0JBQ2hCLE1BQU0sRUFBRSw0Q0FBNEM7b0JBQ3BELElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUss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 \ No newline at end of file
diff --git a/dist/commands/utility/gmodserverstatus.js b/dist/commands/utility/gmodserverstatus.js
new file mode 100644
index 0000000..2496915
--- /dev/null
+++ b/dist/commands/utility/gmodserverstatus.js
@@ -0,0 +1,89 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const gamedig_1 = __importDefault(require("gamedig"));
+const gameDigHelper_js_1 = __importDefault(require("../../utils/gameDigHelper.js"));
+module.exports = class GModServerStatusUtility extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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 GMod 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
+ }
+ ]
+ });
+ }
+ run(msg, { host, port }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const options = {
+ host,
+ type: 'garrysmod'
+ };
+ if (port) {
+ options.port = port;
+ }
+ gamedig_1.default
+ .query(options)
+ .then(data => {
+ let emb = gameDigHelper_js_1.default(data);
+ emb.setColor(0xFFCC4D);
+ emb.setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/4000/header.jpg');
+ return msg.replyEmbed(emb);
+ })
+ .catch(err => {
+ if (err === 'UDP Watchdog Timeout')
+ return msg.reply('Server timed out, it\'s probably offline. ' + emoji_random_1.default.random());
+ return msg.reply('Woops, an unknown error has occured. ' + emoji_random_1.default.random());
+ });
+ }
+ finally {
+ msg.channel.stopTyping();
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ21vZHNlcnZlcnN0YXR1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91dGlsaXR5L2dtb2RzZXJ2ZXJzdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFFL0QsZ0VBQWdDO0FBQ2hDLHNEQUE2QjtBQUM3QixvRkFBd0Q7QUFFeEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLHVCQUF3QixTQUFRLDZCQUFPO0lBQzFELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLE9BQU8sRUFBRTtnQkFDTCxxQkFBcUI7Z0JBQ3JCLHVCQUF1QjtnQkFDdkIsMEJBQTBCO2dCQUMxQixRQUFRO2FBQ1g7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsa0JBQWtCO1lBQzlCLFdBQVcsRUFBRSwrQ0FBK0M7WUFDNUQsUUFBUSxFQUFFO2dCQUNOLHNCQUFzQjtnQkFDdEIsWUFBWTthQUNmO1lBQ0QsZUFBZSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzFELGlCQUFpQixFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQzVELFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsRUFBRTthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNGO29CQUNJLEdBQUcsRUFBRSxNQUFNO29CQUNYLE1BQU0sRUFBRSx1Q0FBdUM7b0JBQy9DLElBQUksRUFBRSxRQUFRO2lCQUNqQjtnQkFDRDtvQkFDSSxHQUFHLEVBQUUsTUFBTTtvQkFDWCxNQUFNLEVBQUUsaUNBQWlDO29CQUN6QyxJQUFJLEVBQUUsU0FBUztvQkFDZixPQUFPLEVBQUUsT0FBTztvQkFDaEIsR0FBRyxFQUFFLEtBQUs7b0JBQ1YsR0FBRyxFQUFFLENBQUM7aUJBQ1Q7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7O1lBQzFDLElBQUk7Z0JBQ0EsTUFBTSxPQUFPLEdBQUc7b0JBQ1osSUFBSTtvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDcEIsQ0FBQTtnQkFFRCxJQUFJLElBQUksRUFBRTtvQkFDTixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtpQkFDdEI7Z0JBRUQsaUJBQU87cUJBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQztxQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ1QsSUFBSSxHQUFHLEdBQUcsMEJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDN0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtvQkFDdEIsR0FBRyxDQUFDLFlBQVksQ0FBQyw0REFBNEQsQ0FBQyxDQUFBO29CQUM5RSxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQzlCLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ1QsSUFBSSxHQUFHLEtBQUssc0JBQXNCO3dCQUFFLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7b0JBR25ILE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7Z0JBQzlFLENBQUMsQ0FBQyxDQUFBO2FBQ1Q7b0JBQVM7Z0JBQ04sR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQTthQUMzQjtRQUNMLENBQUM7S0FBQTtDQUNKLENBQUMifQ== \ No newline at end of file
diff --git a/dist/commands/utility/iss.js b/dist/commands/utility/iss.js
new file mode 100644
index 0000000..3f46a7c
--- /dev/null
+++ b/dist/commands/utility/iss.js
@@ -0,0 +1,48 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const node_superfetch_1 = __importDefault(require("node-superfetch"));
+module.exports = class ISSUtility extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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
+ },
+ });
+ }
+ run(msg) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const { body } = yield node_superfetch_1.default.get('http://api.open-notify.org/iss-now.json');
+ const pos = body.iss_position;
+ return msg.reply(`The ISS is currentaly at **${pos.latitude}, ${pos.longitude}**. ${emoji_random_1.default.random()}`);
+ }
+ catch (err) {
+ return msg.reply(`Woops, an error has occurred: \`${err.message}\`. Try again later! ${emoji_random_1.default.random()}`);
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3V0aWxpdHkvaXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELGdFQUFpQztBQUNqQyxzRUFBcUM7QUFFckMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLFVBQVcsU0FBUSw2QkFBTztJQUM3QyxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSw2QkFBNkIsQ0FBQztZQUNyRSxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsb0VBQW9FO1lBQ2pGLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNyQixlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9COztZQUMxQixJQUFJO2dCQUNBLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLHlCQUFPLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7Z0JBQzdFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7Z0JBQzdCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsU0FBUyxPQUFPLHNCQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2FBQ3hHO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxHQUFHLENBQUMsT0FBTyx3QkFBd0Isc0JBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUE7YUFDM0c7UUFDTCxDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/utility/rustserverstatus.js b/dist/commands/utility/rustserverstatus.js
new file mode 100644
index 0000000..a7ccf5c
--- /dev/null
+++ b/dist/commands/utility/rustserverstatus.js
@@ -0,0 +1,87 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const gamedig_1 = __importDefault(require("gamedig"));
+const gameDigHelper_js_1 = __importDefault(require("../../utils/gameDigHelper.js"));
+module.exports = class RustServerStatusUtility extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { host, port }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const options = {
+ host,
+ type: 'rust'
+ };
+ if (port) {
+ options.port = port;
+ }
+ gamedig_1.default
+ .query(options)
+ .then(data => {
+ msg.replyEmbed(gameDigHelper_js_1.default(data)
+ .setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/252490/header.jpg')
+ .setColor(0xFFCC4D));
+ })
+ .catch(err => {
+ if (err === 'UDP Watchdog Timeout')
+ return msg.reply('Server timed out, it\'s probably offline. ' + emoji_random_1.default.random());
+ return msg.reply('Woops, an unknown error has occured. ' + emoji_random_1.default.random());
+ });
+ }
+ finally {
+ msg.channel.stopTyping();
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdHNlcnZlcnN0YXR1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91dGlsaXR5L3J1c3RzZXJ2ZXJzdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBK0Q7QUFFL0QsZ0VBQWdDO0FBQ2hDLHNEQUE2QjtBQUM3QixvRkFBd0Q7QUFFeEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLHVCQUF3QixTQUFRLDZCQUFPO0lBQzFELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLE9BQU8sRUFBRTtnQkFDTCxTQUFTO2dCQUNULG9CQUFvQjtnQkFDcEIsUUFBUTthQUNYO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLGtCQUFrQjtZQUM5QixXQUFXLEVBQUUsK0NBQStDO1lBQzVELFFBQVEsRUFBRTtnQkFDTixzQkFBc0I7Z0JBQ3RCLFlBQVk7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDRjtvQkFDSSxHQUFHLEVBQUUsTUFBTTtvQkFDWCxNQUFNLEVBQUUsdUNBQXVDO29CQUMvQyxJQUFJLEVBQUUsUUFBUTtpQkFDakI7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLGlDQUFpQztvQkFDekMsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLEdBQUcsRUFBRSxLQUFLO29CQUNWLEdBQUcsRUFBRSxDQUFDO2lCQUNUO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0ssR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFOztZQUMxQyxJQUFJO2dCQUNBLE1BQU0sT0FBTyxHQUFHO29CQUNaLElBQUk7b0JBQ0osSUFBSSxFQUFFLE1BQU07aUJBQ2YsQ0FBQTtnQkFFRCxJQUFJLElBQUksRUFBRTtvQkFDTixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtpQkFDdEI7Z0JBRUQsaUJBQU87cUJBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQztxQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ1QsR0FBRyxDQUFDLFVBQVUsQ0FDViwwQkFBYSxDQUFDLElBQUksQ0FBQzt5QkFDZCxZQUFZLENBQUMsOERBQThELENBQUM7eUJBQzVFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FDMUIsQ0FBQTtnQkFDTCxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNULElBQUksR0FBRyxLQUFLLHNCQUFzQjt3QkFBRSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsNENBQTRDLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO29CQUduSCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2dCQUM5RSxDQUFDLENBQUMsQ0FBQTthQUNUO29CQUFTO2dCQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUE7YUFDM0I7UUFDTCxDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/commands/utility/starboundserverstatus.js b/dist/commands/utility/starboundserverstatus.js
new file mode 100644
index 0000000..230b685
--- /dev/null
+++ b/dist/commands/utility/starboundserverstatus.js
@@ -0,0 +1,105 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+const discord_js_1 = require("discord.js");
+const emoji_random_1 = __importDefault(require("emoji-random"));
+const gamedig_1 = __importDefault(require("gamedig"));
+module.exports = class StarboundServerStatusUtility extends discord_js_commando_1.Command {
+ constructor(client) {
+ 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, { host, port }) {
+ return __awaiter(this, void 0, void 0, function* () {
+ try {
+ const options = {
+ host,
+ type: 'starbound'
+ };
+ if (port) {
+ options.port = port;
+ }
+ gamedig_1.default
+ .query(options)
+ .then(data => {
+ const curr = data.raw.numplayers;
+ const max = data.maxplayers;
+ return msg.replyEmbed(new discord_js_1.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 => {
+ if (err === 'UDP Watchdog Timeout')
+ return msg.reply('Server timed out, it\'s probably offline. ' + emoji_random_1.default.random());
+ return msg.reply('Woops, an unknown error has occured. ' + emoji_random_1.default.random());
+ });
+ }
+ finally {
+ msg.channel.stopTyping();
+ }
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmJvdW5kc2VydmVyc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3V0aWxpdHkvc3RhcmJvdW5kc2VydmVyc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStEO0FBQy9ELDJDQUFtRDtBQUNuRCxnRUFBZ0M7QUFDaEMsc0RBQTZCO0FBRzdCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSw0QkFBNkIsU0FBUSw2QkFBTztJQUMvRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixPQUFPLEVBQUU7Z0JBQ0wsY0FBYztnQkFDZCx5QkFBeUI7Z0JBQ3pCLE1BQU07YUFDVDtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSx1QkFBdUI7WUFDbkMsV0FBVyxFQUFFLG9EQUFvRDtZQUNqRSxRQUFRLEVBQUU7Z0JBQ04sMkJBQTJCO2dCQUMzQixVQUFVO2FBQ2I7WUFDRCxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUFDNUQsVUFBVSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLHVDQUF1QztvQkFDL0MsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCO2dCQUNEO29CQUNJLEdBQUcsRUFBRSxNQUFNO29CQUNYLE1BQU0sRUFBRSxpQ0FBaUM7b0JBQ3pDLElBQUksRUFBRSxTQUFTO29CQUNmLE9BQU8sRUFBRSxPQUFPO29CQUNoQixHQUFHLEVBQUUsS0FBSztvQkFDVixHQUFHLEVBQUUsQ0FBQztpQkFDVDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNLLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTs7WUFDMUMsSUFBSTtnQkFDQSxNQUFNLE9BQU8sR0FBRztvQkFDWixJQUFJO29CQUNKLElBQUksRUFBRSxXQUFXO2lCQUNwQixDQUFBO2dCQUVELElBQUksSUFBSSxFQUFFO29CQUNOLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO2lCQUN0QjtnQkFFRCxpQkFBTztxQkFDRixLQUFLLENBQUMsT0FBTyxDQUFDO3FCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQTtvQkFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQTtvQkFFM0IsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUNqQixJQUFJLHlCQUFZLEVBQUU7eUJBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7eUJBQ25CLFlBQVksQ0FBQyw4REFBOEQsQ0FBQzt5QkFDNUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLGVBQWUsQ0FBQzt5QkFDckQsU0FBUyxDQUFDO3dCQUNQOzRCQUNJLElBQUksRUFBRSxZQUFZOzRCQUNsQixLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRzt5QkFDM0Q7d0JBQ0Q7NEJBQ0ksSUFBSSxFQUFFLGdCQUFnQjs0QkFDdEIsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJO3lCQUMvRDt3QkFDRDs0QkFDSSxJQUFJLEVBQUUsbUJBQW1COzRCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO3lCQUN0QztxQkFDSixDQUFDO3lCQUNELFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FDMUIsQ0FBQTtnQkFDTCxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNULElBQUksR0FBRyxLQUFLLHNCQUFzQjt3QkFBRSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsNENBQTRDLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO29CQUduSCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEdBQUcsc0JBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2dCQUM5RSxDQUFDLENBQUMsQ0FBQTthQUNUO29CQUFTO2dCQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUE7YUFDM0I7UUFDTCxDQUFDO0tBQUE7Q0FDSixDQUFDIn0= \ No newline at end of file
diff --git a/dist/config.json b/dist/config.json
index 069c4b7..e81186f 100644
--- a/dist/config.json
+++ b/dist/config.json
@@ -1,5 +1,8 @@
{
"secret": "Njk5NDczMjYzOTk4MjcxNDg5.XpU5oQ.btZuxVudhNllSQY6CxrXXtMJm9A",
"yt-api-key": "AIzaSyCeG1lQAeInv4vjFv_eTL9IFAFNdQC9Nk8",
- "version": "8.2.0"
+ "version": "9.0.0",
+ "fortniteTrackerNetworkToken": "4cf21f95-5f1a-412a-b4a7-e5424adc314a",
+ "maxMultipler": 100,
+ "minMultipler": 1.01
}
diff --git a/dist/models/Command.js b/dist/models/Command.js
new file mode 100644
index 0000000..2584775
--- /dev/null
+++ b/dist/models/Command.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const discord_js_commando_1 = require("discord.js-commando");
+module.exports = class UwufierCommand extends discord_js_commando_1.Command {
+ constructor(client, info) {
+ super(client, info);
+ this.argsSingleQuotes = info.argsSingleQuotes || false;
+ this.throttling = info.throttling || { usages: 1, duration: 2 };
+ this.credit = info.credit || [];
+ this.credit.push({
+ name: 'Dragon Fire',
+ url: 'https://github.com/dragonfire535',
+ reason: 'Code'
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUE4QztBQUU5QyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sY0FBZSxTQUFRLDZCQUFPO0lBQ2pELFlBQVksTUFBTSxFQUFFLElBQUk7UUFDcEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2IsSUFBSSxFQUFFLGFBQWE7WUFDbkIsR0FBRyxFQUFFLGtDQUFrQztZQUN2QyxNQUFNLEVBQUUsTUFBTTtTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQSJ9 \ No newline at end of file
diff --git a/dist/models/commands/Subreddit.js b/dist/models/commands/Subreddit.js
new file mode 100644
index 0000000..055b718
--- /dev/null
+++ b/dist/models/commands/Subreddit.js
@@ -0,0 +1,90 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const Command_js_1 = __importDefault(require("../Command.js"));
+const node_superfetch_1 = __importDefault(require("node-superfetch"));
+const emoji_random_1 = __importDefault(require("emoji-random"));
+module.exports = class SubredditCommand extends Command_js_1.default {
+ constructor(client, info) {
+ 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/'
+ });
+ }
+ run(msg, { subreddit }, fromPattern) {
+ return __awaiter(this, void 0, void 0, function* () {
+ if (fromPattern)
+ subreddit = msg.patternMatches[1];
+ if (!subreddit)
+ subreddit = typeof this.subreddit === 'function' ? this.subreddit() : this.subreddit;
+ try {
+ const post = yield this.random(subreddit, msg.channel.nsfw);
+ if (!post)
+ return msg.reply('Could not find any results. ' + emoji_random_1.default.random());
+ 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_1.default.random());
+ if (err.status === 404)
+ return msg.reply('Could not find any results. ' + emoji_random_1.default.random());
+ return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
+ }
+ });
+ }
+ generateText() {
+ throw new Error('The generateText method is required.');
+ }
+ random(subreddit, nsfw) {
+ return __awaiter(this, void 0, void 0, function* () {
+ let icon = null;
+ const { body } = yield node_superfetch_1.default
+ .get(`https://www.reddit.com/r/${subreddit}/hot.json`)
+ .query({ limit: 100 });
+ if (!body.data.children.length)
+ return null;
+ 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 = yield this.fetchIcon(subreddit);
+ return {
+ origin: subreddit,
+ post: posts[Math.floor(Math.random() * posts.length)].data,
+ icon
+ };
+ });
+ }
+ fetchIcon(subreddit) {
+ return __awaiter(this, void 0, void 0, function* () {
+ const { body } = yield node_superfetch_1.default.get(`https://www.reddit.com/r/${subreddit}/about.json`);
+ if (!body.data.icon_img && !body.data.community_icon)
+ return 'https://i.imgur.com/DSBOK0P.png';
+ return body.data.icon_img || body.data.community_icon;
+ });
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VicmVkZGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVscy9jb21tYW5kcy9TdWJyZWRkaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrREFBbUM7QUFDbkMsc0VBQXFDO0FBQ3JDLGdFQUFnQztBQUVoQyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sZ0JBQWlCLFNBQVEsb0JBQU87SUFDbkQsWUFBWSxNQUFNLEVBQUUsSUFBSTtRQUNwQixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDYixJQUFJLEVBQUUsUUFBUTtZQUNkLEdBQUcsRUFBRSx5QkFBeUI7WUFDOUIsTUFBTSxFQUFFLEtBQUs7WUFDYixTQUFTLEVBQUUsaUNBQWlDO1NBQy9DLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFSyxHQUFHLENBQUMsR0FBb0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLFdBQVc7O1lBQ3RELElBQUksV0FBVztnQkFBRSxTQUFTLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsU0FBUztnQkFBRSxTQUFTLEdBQUcsT0FBTyxJ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 \ No newline at end of file
diff --git a/dist/utils/Util.js b/dist/utils/Util.js
new file mode 100644
index 0000000..633c7da
--- /dev/null
+++ b/dist/utils/Util.js
@@ -0,0 +1,199 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const crypto_1 = __importDefault(require("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) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+ static shuffle(array) {
+ 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, 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, maxLen = 2000) {
+ return text.length > maxLen ? `${text.substr(0, maxLen - 3)}...` : text;
+ }
+ static randomRange(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+ }
+ static trimArray(arr, 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) {
+ if (arr.length === 0 || arr.length === 1)
+ return arr;
+ const newArr = [];
+ for (let i = 0; i < arr.length; i++) {
+ if (newArr.includes(arr[i]))
+ continue;
+ newArr.push(arr[i]);
+ }
+ return newArr;
+ }
+ static sortByName(arr, prop) {
+ 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, split = ' ') {
+ return text.split(split).map(word => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join(' ');
+ }
+ static formatNumber(number, minimumFractionDigits = 0) {
+ return Number.parseFloat(number).toLocaleString(undefined, {
+ minimumFractionDigits,
+ maximumFractionDigits: 2
+ });
+ }
+ static base64(text, 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.`);
+ }
+ static hash(text, algorithm) {
+ return crypto_1.default.createHash(algorithm).update(text).digest('hex');
+ }
+ static streamToArray(stream) {
+ if (!stream.readable)
+ return Promise.resolve([]);
+ return new Promise((resolve, reject) => {
+ const array = [];
+ function onData(data) {
+ array.push(data);
+ }
+ function onEnd(error) {
+ 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, percentColors) {
+ 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) {
+ 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) {
+ const today = Util.today(timeZone);
+ today.setDate(today.getDate() + 1);
+ return today;
+ }
+ static embedURL(title, url, display) {
+ return `[${title}](${url.replace(/\)/g, '%27')}${display ? ` "${display}"` : ''})`;
+ }
+ static verify(channel, user, { time = 30000, extraYes = [], extraNo = [] } = {}) {
+ return __awaiter(this, void 0, void 0, function* () {
+ 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 = yield 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(/&#039;/g, '\'')
+ .replace(/&quot;/g, '"')
+ .replace(/<\/?i>/g, '*')
+ .replace(/<\/?b>/g, '**')
+ .replace(/~!|!~/g, '||')
+ .replace(/&mdash;/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;
+ }
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9VdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdEcsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxJQUFJO0lBQzFCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNkLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSztRQUNuQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FB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 \ No newline at end of file
diff --git a/dist/utils/gameDigHelper.js b/dist/utils/gameDigHelper.js
new file mode 100644
index 0000000..7b80e82
--- /dev/null
+++ b/dist/utils/gameDigHelper.js
@@ -0,0 +1,42 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const ms_1 = __importDefault(require("ms"));
+const discord_js_1 = require("discord.js");
+module.exports = res => {
+ const playerCount = res.players.length;
+ const maxPlayers = res.maxPlayers;
+ const emb = new discord_js_1.MessageEmbed()
+ .setTitle(res.name)
+ .setFooter(`Took ${ms_1.default(res.ping)} to complete.`)
+ .addFields([
+ {
+ name: 'Connect',
+ value: `${res.connect}`
+ },
+ {
+ name: 'Online Players',
+ value: `${playerCount}/${maxPlayers} (${Math.round((playerCount / maxPlayers) * 100)}%)`
+ },
+ {
+ name: 'Map',
+ value: discord_js_1.Util.escapeMarkdown(res.map)
+ },
+ {
+ name: 'Password Required',
+ value: res.password ? 'Yes' : 'No'
+ }
+ ]);
+ const unconfirmedValues = new Map([
+ [res.raw.secure, secure => emb.addField('Vac Secured', secure ? 'Yes' : 'No')],
+ [res.raw.games, game => emb.addField('Game', discord_js_1.Util.escapeMarkdown(game))]
+ ]);
+ unconfirmedValues.forEach((val, key) => {
+ if (typeof key !== 'undefined')
+ val(key);
+ });
+ return emb;
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZURpZ0hlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9nYW1lRGlnSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDJDQUErQztBQVEvQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUFFO0lBQ25CLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFBO0lBQ3RDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUE7SUFFakMsTUFBTSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO1NBQ3pCLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1NBQ2xCLFNBQVMsQ0FBQyxRQUFRLFlBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUM5QyxTQUFTLENBQUM7UUFDUDtZQUNJLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRTtTQUMxQjtRQUNEO1lBQ0ksSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixLQUFLLEVBQUUsR0FBRyxXQUFXLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUk7U0FDM0Y7UUFDRDtZQUNJLElBQUksRUFBRSxLQUFLO1lBQ1gsS0FBSyxFQUFFLGlCQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7U0FDdEM7UUFDRDtZQUNJLElBQUksRUFBRSxtQkFBbUI7WUFDekIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNyQztLQUNKLENBQUMsQ0FBQTtJQUVOLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDOUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsaUJBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUMzRSxDQUFDLENBQUE7SUFFRixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDbkMsSUFBSSxPQUFPLEdBQUcsS0FBSyxXQUFXO1lBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVDLENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxHQUFHLENBQUE7QUFDZCxDQUFDLENBQUEifQ== \ No newline at end of file
diff --git a/dist/utils/genCmdURL.js b/dist/utils/genCmdURL.js
new file mode 100644
index 0000000..c063f3c
--- /dev/null
+++ b/dist/utils/genCmdURL.js
@@ -0,0 +1,3 @@
+"use strict";
+module.exports = cmd => `/commands/${cmd.group.name.toLowerCase().replace(/\s/g, "-")}/${cmd.name}`;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuQ21kVVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2dlbkNtZFVSTC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMifQ== \ No newline at end of file
diff --git a/dist/utils/simpleFormat.js b/dist/utils/simpleFormat.js
new file mode 100644
index 0000000..8813916
--- /dev/null
+++ b/dist/utils/simpleFormat.js
@@ -0,0 +1,6 @@
+"use strict";
+module.exports = value => {
+ const result = parseFloat(parseFloat(value).toFixed(2));
+ return result;
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlRm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NpbXBsZUZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRTtJQUNyQixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/utils/stripWebhookURL.js b/dist/utils/stripWebhookURL.js
new file mode 100644
index 0000000..b788447
--- /dev/null
+++ b/dist/utils/stripWebhookURL.js
@@ -0,0 +1,7 @@
+"use strict";
+module.exports = url => {
+ const regex = /https:\/\/discordapp\.com\/api\/webhooks\/(\d{1,})\/([\w-_]{1,})/;
+ const matches = regex.exec(url);
+ return { id: matches[1], token: matches[2] };
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBXZWJob29rVVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3N0cmlwV2ViaG9va1VSTC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsRUFBRTtJQUNuQixNQUFNLEtBQUssR0FBRyxrRUFBa0UsQ0FBQztJQUNqRixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNqRCxDQUFDLENBQUMifQ== \ No newline at end of file
diff --git a/dist/utils/truncateText.js b/dist/utils/truncateText.js
new file mode 100644
index 0000000..5a10468
--- /dev/null
+++ b/dist/utils/truncateText.js
@@ -0,0 +1,3 @@
+"use strict";
+module.exports = (string, number = 2048) => (string.length > number ? `${string.substring(0, number - 3)}...` : string);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGVUZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3RydW5jYXRlVGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyJ9 \ No newline at end of file
diff --git a/dist/utils/wait.js b/dist/utils/wait.js
new file mode 100644
index 0000000..ff5442a
--- /dev/null
+++ b/dist/utils/wait.js
@@ -0,0 +1,3 @@
+"use strict";
+module.exports = delay => new Promise(resolve => setTimeout(resolve, delay));
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy93YWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLQSxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMifQ== \ No newline at end of file
diff --git a/dist/utils/winPercentage.js b/dist/utils/winPercentage.js
new file mode 100644
index 0000000..ee31621
--- /dev/null
+++ b/dist/utils/winPercentage.js
@@ -0,0 +1,5 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+module.exports = (multiplier, user) => {
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luUGVyY2VudGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy93aW5QZXJjZW50YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRTtBQVF0QyxDQUFDLENBQUMifQ== \ No newline at end of file
diff --git a/package.json b/package.json
index 9eca1da..978ef2e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "package",
- "version": "8.2.0",
+ "version": "9.0.0",
"description": "A Discord bot that supports audio playback, fun commands, utilities, and soundsboard, and more to come!",
"main": "./dist/app.js",
"scripts": {
@@ -16,9 +16,13 @@
"axios": "^0.19.2",
"body-parser": "^1.19.0",
"btc-value": "^3.0.1",
+ "cheerio": "^1.0.0-rc.3",
"chewbacca-quotes": "^1.0.0",
+ "common-tags": "^1.8.0",
"cows": "^2.1.0",
+ "crypto": "^1.0.1",
"culturedtext": "^1.2.0",
+ "date-fns": "^2.12.0",
"discord.js": "github:discordjs/discord.js",
"discord.js-commando": "github:discordjs/Commando",
"dogeify-js": "^1.2.0",
@@ -27,18 +31,24 @@
"express-handlebars": "^4.0.3",
"ffmpeg-static": "^4.1.1",
"figlet": "^1.3.0",
+ "gamedig": "^2.0.20",
"harvey-specter-quotes": "^1.4.1",
"howifier": "^1.2.2",
"insult": "0.0.3",
"is-image-url": "^1.1.8",
"lorem-memesum": "^1.2.0",
+ "mathjs": "^6.6.4",
"moment": "^2.24.0",
"moment-duration-format": "^2.3.2",
"mongoose": "^5.9.10",
"motivations": "^1.1.2",
"nekos.life": "^2.0.6",
"node-opus": "^0.3.3",
+ "node-superfetch": "^0.1.10",
"popular-movie-quotes": "^1.2.4",
+ "random-js": "^2.1.0",
+ "romanize": "^1.1.1",
+ "rss-parser": "^3.7.6",
"simple-youtube-api": "^5.2.1",
"spongibobu.js": "^1.1.0",
"uwufy": "^1.0.5",
diff --git a/src/bot.ts b/src/bot.ts
index 5e949e9..fc4a6a5 100644
--- a/src/bot.ts
+++ b/src/bot.ts
@@ -29,7 +29,11 @@ client.registry
['crypto', 'Crypto Command Group'],
['zerotwo', 'Zero Two Command Group'],
['bot', 'Bot COmmand Group'],
- ['user', 'User Command Group']
+ ['user', 'User Command Group'],
+ ['utility', 'Utility Command Group'],
+ ['minecraft', 'Minecraft Command Group'],
+ ['animals', 'Animal Command Group'],
+ ['roleplay', 'Roleplay Command Group']
])
.registerDefaultGroups()
.registerDefaultCommands({
diff --git a/src/commands/animals/bunny.ts b/src/commands/animals/bunny.ts
new file mode 100644
index 0000000..fb3b2b8
--- /dev/null
+++ b/src/commands/animals/bunny.ts
@@ -0,0 +1,38 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import axios from 'axios';
+
+module.exports = class BunnyAnimals extends Command {
+ constructor(client) {
+ 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)
+ msg.say(emb)
+ } catch (err) {
+ console.log(err)
+ 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
new file mode 100644
index 0000000..2530830
--- /dev/null
+++ b/src/commands/animals/cat.ts
@@ -0,0 +1,38 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import axios from 'axios';
+
+module.exports = class CatAnimals extends Command {
+ constructor(client) {
+ 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)
+ msg.say(emb)
+ } catch (err) {
+ console.log(err)
+ 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/fun/cow.ts b/src/commands/animals/cow.ts
index e8fa60b..80eedf0 100644
--- a/src/commands/fun/cow.ts
+++ b/src/commands/animals/cow.ts
@@ -1,12 +1,12 @@
import { Command, CommandoMessage } from 'discord.js-commando';
import cows from 'cows';
-module.exports = class CowFun extends Command {
+module.exports = class CowAnimals extends Command {
constructor(client) {
super(client, {
name: 'cow',
aliases: ['cows'],
- group: 'fun',
+ group: 'animals',
memberName: 'cow',
description: 'Gives you a random cow.',
throttling: {
diff --git a/src/commands/animals/dog.ts b/src/commands/animals/dog.ts
new file mode 100644
index 0000000..118c951
--- /dev/null
+++ b/src/commands/animals/dog.ts
@@ -0,0 +1,38 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import axios from 'axios';
+
+module.exports = class DogAnimals extends Command {
+ constructor(client) {
+ 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)
+ msg.say(emb)
+ } catch (err) {
+ console.log(err)
+ 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
new file mode 100644
index 0000000..dbc4f94
--- /dev/null
+++ b/src/commands/animals/duck.ts
@@ -0,0 +1,38 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import axios from 'axios';
+
+module.exports = class DuckAnimals extends Command {
+ constructor(client) {
+ 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)
+ msg.say(emb)
+ } catch (err) {
+ console.log(err)
+ 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
new file mode 100644
index 0000000..86cab3a
--- /dev/null
+++ b/src/commands/animals/fox.ts
@@ -0,0 +1,38 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import axios from 'axios';
+
+module.exports = class FoxAnimals extends Command {
+ constructor(client) {
+ 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)
+ msg.say(emb)
+ } catch (err) {
+ console.log(err)
+ 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
new file mode 100644
index 0000000..9f219ac
--- /dev/null
+++ b/src/commands/animals/owl.ts
@@ -0,0 +1,38 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import axios from 'axios';
+
+module.exports = class OwlAnimals extends Command {
+ constructor(client) {
+ 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)
+ msg.say(emb)
+ } catch (err) {
+ console.log(err)
+ 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
index e3f5f8a..45bb3d1 100644
--- a/src/commands/anime/uwufy.ts
+++ b/src/commands/anime/uwufy.ts
@@ -2,12 +2,12 @@ import { Command, CommandoMessage } from 'discord.js-commando';
import emoji from 'emoji-random';
import uwufy from 'uwufy'
-module.exports = class UwufyFun extends Command {
+module.exports = class UwufyAnime extends Command {
constructor(client) {
super(client, {
name: 'uwufy',
aliases: ['uwu', 'owofy', 'owo'],
- group: 'fun',
+ group: 'anime',
memberName: 'uwufy',
description: 'Uwufys anything you send.',
args: [
diff --git a/src/commands/anime/waifu.ts b/src/commands/anime/waifu.ts
new file mode 100644
index 0000000..80363e3
--- /dev/null
+++ b/src/commands/anime/waifu.ts
@@ -0,0 +1,34 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import request from 'node-superfetch';
+import { MessageEmbed } from 'discord.js';
+import { shorten } from '../../utils/Util.js'
+
+module.exports = class WaifuAnime extends Command {
+ constructor(client) {
+ 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`)
+ msg.reply(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/bot/clientid.ts b/src/commands/bot/clientid.ts
index 65040bf..9e7565c 100644
--- a/src/commands/bot/clientid.ts
+++ b/src/commands/bot/clientid.ts
@@ -9,7 +9,7 @@ module.exports = class ClientIDBot extends Command {
aliases: ['cid'],
group: 'bot',
memberName: 'clientid',
- description: 'Tells you the bot\'s client ID version.',
+ description: 'Tells you the bot\'s client ID.',
examples: ['uwu!clientid', 'uwu!cid'],
userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
@@ -20,14 +20,6 @@ module.exports = class ClientIDBot extends Command {
});
}
run(msg: CommandoMessage) {
- msg.say('Please wait...').then(m => {
- m.edit(`** **`);
-
- let emb = new MessageEmbed()
- .setDescription('uwufier\'s client ID is **699473263998271489**. ' + emoji.random())
- .setColor(0xFFCC4D)
-
- msg.say(emb);
- });
+ msg.reply(`**uwufier\'s** client ID is **699473263998271489**. ${emoji.random()}`)
}
}; \ No newline at end of file
diff --git a/src/commands/bot/generatecommands.ts b/src/commands/bot/generatecommands.ts
new file mode 100644
index 0000000..11010c0
--- /dev/null
+++ b/src/commands/bot/generatecommands.ts
@@ -0,0 +1,45 @@
+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 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/guildbackdoor.ts b/src/commands/bot/guildbackdoor.ts
new file mode 100644
index 0000000..1282cdd
--- /dev/null
+++ b/src/commands/bot/guildbackdoor.ts
@@ -0,0 +1,54 @@
+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
index 0b72063..479e1a8 100644
--- a/src/commands/bot/invite.ts
+++ b/src/commands/bot/invite.ts
@@ -1,5 +1,6 @@
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) {
@@ -19,6 +20,8 @@ module.exports = class InviteBot extends Command {
});
}
run(msg: CommandoMessage) {
- msg.reply('https://crack.cf/uwu ' + emoji.random())
+ let emb = new MessageEmbed()
+ .setDescription('To invite the bot, please use [this link](https://crack.cf/uwu). ' + emoji.random())
+ msg.say(emb)
}
}; \ No newline at end of file
diff --git a/src/commands/bot/ip.ts b/src/commands/bot/ip.ts
new file mode 100644
index 0000000..c9c8ec0
--- /dev/null
+++ b/src/commands/bot/ip.ts
@@ -0,0 +1,38 @@
+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 the bot\'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/support.ts b/src/commands/bot/support.ts
index c022de7..f6818ef 100644
--- a/src/commands/bot/support.ts
+++ b/src/commands/bot/support.ts
@@ -1,5 +1,6 @@
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) {
@@ -18,6 +19,8 @@ module.exports = class SupportBot extends Command {
});
}
run(msg: CommandoMessage) {
- msg.reply('For support, please join; https://crack.cf/uwufier-support. ' + emoji.random())
+ let emb = new MessageEmbed()
+ .setDescription('For support, please join [this server](https://crack.cf/uwufier-support). ' + emoji.random())
+ msg.say(emb)
}
}; \ No newline at end of file
diff --git a/src/commands/bot/vote.ts b/src/commands/bot/vote.ts
new file mode 100644
index 0000000..8f64686
--- /dev/null
+++ b/src/commands/bot/vote.ts
@@ -0,0 +1,25 @@
+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 the bot\'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/crypto/securitykey.ts b/src/commands/crypto/securitykey.ts
new file mode 100644
index 0000000..649320a
--- /dev/null
+++ b/src/commands/crypto/securitykey.ts
@@ -0,0 +1,26 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import crypto from 'crypto'
+
+module.exports = class RateCrypto extends Command {
+ constructor(client) {
+ 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()}`)
+ msg.author.send(crypto.randomBytes(15).toString('hex') + ' ' + emoji.random())
+ }
+}; \ No newline at end of file
diff --git a/src/commands/fun/clapify.ts b/src/commands/fun/clapify.ts
new file mode 100644
index 0000000..f05c768
--- /dev/null
+++ b/src/commands/fun/clapify.ts
@@ -0,0 +1,31 @@
+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/datefact.ts b/src/commands/fun/datefact.ts
new file mode 100644
index 0000000..378aa52
--- /dev/null
+++ b/src/commands/fun/datefact.ts
@@ -0,0 +1,52 @@
+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
new file mode 100644
index 0000000..f30b828
--- /dev/null
+++ b/src/commands/fun/dayfact.ts
@@ -0,0 +1,43 @@
+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/drawcards.ts b/src/commands/fun/drawcards.ts
new file mode 100644
index 0000000..5d53b72
--- /dev/null
+++ b/src/commands/fun/drawcards.ts
@@ -0,0 +1,61 @@
+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/fml.ts b/src/commands/fun/fml.ts
new file mode 100644
index 0000000..a3fa600
--- /dev/null
+++ b/src/commands/fun/fml.ts
@@ -0,0 +1,36 @@
+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/githubzen.ts b/src/commands/fun/githubzen.ts
new file mode 100644
index 0000000..cc2f0a2
--- /dev/null
+++ b/src/commands/fun/githubzen.ts
@@ -0,0 +1,35 @@
+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/howify.ts b/src/commands/fun/howify.ts
index a0cbbf5..c1337f9 100644
--- a/src/commands/fun/howify.ts
+++ b/src/commands/fun/howify.ts
@@ -26,6 +26,7 @@ module.exports = class HowifyFun extends Command {
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);
diff --git a/src/commands/fun/iq.ts b/src/commands/fun/iq.ts
new file mode 100644
index 0000000..2185878
--- /dev/null
+++ b/src/commands/fun/iq.ts
@@ -0,0 +1,46 @@
+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
new file mode 100644
index 0000000..1a7622d
--- /dev/null
+++ b/src/commands/fun/kissmarrykill.ts
@@ -0,0 +1,74 @@
+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/numberfact.ts b/src/commands/fun/numberfact.ts
new file mode 100644
index 0000000..9e7b698
--- /dev/null
+++ b/src/commands/fun/numberfact.ts
@@ -0,0 +1,47 @@
+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/offspring.ts b/src/commands/fun/offspring.ts
new file mode 100644
index 0000000..7152a1c
--- /dev/null
+++ b/src/commands/fun/offspring.ts
@@ -0,0 +1,24 @@
+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',
+ group: 'fun',
+ memberName: 'offspring',
+ description: 'Determines your 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
new file mode 100644
index 0000000..341b461
--- /dev/null
+++ b/src/commands/fun/onion.ts
@@ -0,0 +1,36 @@
+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
new file mode 100644
index 0000000..eada220
--- /dev/null
+++ b/src/commands/fun/opinion.ts
@@ -0,0 +1,36 @@
+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 the bot\'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
new file mode 100644
index 0000000..3f2446d
--- /dev/null
+++ b/src/commands/fun/quantumcoinflip.ts
@@ -0,0 +1,31 @@
+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/randomfacts.ts b/src/commands/fun/randomfacts.ts
new file mode 100644
index 0000000..5d9777e
--- /dev/null
+++ b/src/commands/fun/randomfacts.ts
@@ -0,0 +1,66 @@
+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
new file mode 100644
index 0000000..0dfc505
--- /dev/null
+++ b/src/commands/fun/rate.ts
@@ -0,0 +1,31 @@
+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/rolldie.ts b/src/commands/fun/rolldie.ts
new file mode 100644
index 0000000..6426238
--- /dev/null
+++ b/src/commands/fun/rolldie.ts
@@ -0,0 +1,31 @@
+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/romannumeral.ts b/src/commands/fun/romannumeral.ts
new file mode 100644
index 0000000..f7a805f
--- /dev/null
+++ b/src/commands/fun/romannumeral.ts
@@ -0,0 +1,55 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import romanize from 'romanize'
+
+module.exports = class RomanNumeralFun extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'romannumeral',
+ aliases: [
+ 'roman-numeral',
+ 'romannumerals',
+ 'roman-numerals'
+ ],
+ group: 'fun',
+ 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 }) {
+ if (nNum === parseInt(nNum, 10)) {
+ msg.reply(romanize(nNum))
+ }
+
+ const back = value => {
+ 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
+ }
+
+ msg.reply(back(nNum))
+ }
+}; \ No newline at end of file
diff --git a/src/commands/fun/russianroulette.ts b/src/commands/fun/russianroulette.ts
new file mode 100644
index 0000000..ba67118
--- /dev/null
+++ b/src/commands/fun/russianroulette.ts
@@ -0,0 +1,29 @@
+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
index 35083d0..e70ad76 100644
--- a/src/commands/fun/say.ts
+++ b/src/commands/fun/say.ts
@@ -1,5 +1,4 @@
import { Command, CommandoMessage } from 'discord.js-commando';
-import emoji from 'emoji-random';
module.exports = class SayFun extends Command {
constructor(client) {
diff --git a/src/commands/fun/showerthought.ts b/src/commands/fun/showerthought.ts
new file mode 100644
index 0000000..5ee7cb4
--- /dev/null
+++ b/src/commands/fun/showerthought.ts
@@ -0,0 +1,29 @@
+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: 'Shower thoughts.',
+ 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
new file mode 100644
index 0000000..c6aecbc
--- /dev/null
+++ b/src/commands/fun/smashorpass.ts
@@ -0,0 +1,42 @@
+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
new file mode 100644
index 0000000..4144f48
--- /dev/null
+++ b/src/commands/fun/spoiler.ts
@@ -0,0 +1,30 @@
+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 ||spoiler||.',
+ 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.say(say.replace(/./g, '||$&||'))
+ }
+}; \ No newline at end of file
diff --git a/src/commands/fun/subreddit.ts b/src/commands/fun/subreddit.ts
new file mode 100644
index 0000000..a9369d2
--- /dev/null
+++ b/src/commands/fun/subreddit.ts
@@ -0,0 +1,46 @@
+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/yearfact.ts b/src/commands/fun/yearfact.ts
new file mode 100644
index 0000000..8448efc
--- /dev/null
+++ b/src/commands/fun/yearfact.ts
@@ -0,0 +1,41 @@
+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
new file mode 100644
index 0000000..c0b1743
--- /dev/null
+++ b/src/commands/fun/yomomma.ts
@@ -0,0 +1,32 @@
+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
new file mode 100644
index 0000000..3fb6eec
--- /dev/null
+++ b/src/commands/minecraft/getbody.ts
@@ -0,0 +1,45 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+
+module.exports = class GetBodyMinecraft extends Command {
+ constructor(client) {
+ 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 }) {
+ 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)
+ msg.reply(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/minecraft/getface.ts b/src/commands/minecraft/getface.ts
new file mode 100644
index 0000000..b53e6fb
--- /dev/null
+++ b/src/commands/minecraft/getface.ts
@@ -0,0 +1,43 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+
+module.exports = class GetFaceMinecraft extends Command {
+ constructor(client) {
+ 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 }) {
+ let emb = new MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`)
+ .setImage(`https://minotar.net/helm/${encodeURIComponent(uUsername)}`)
+ msg.reply(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/minecraft/gethead.ts b/src/commands/minecraft/gethead.ts
new file mode 100644
index 0000000..665d01e
--- /dev/null
+++ b/src/commands/minecraft/gethead.ts
@@ -0,0 +1,43 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+
+module.exports = class GetHeadMinecraft extends Command {
+ constructor(client) {
+ 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 }) {
+ let emb = new MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`)
+ .setImage(`https://minotar.net/cube/${encodeURIComponent(uUsername)}/100.png`)
+ msg.reply(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/minecraft/getminime.ts b/src/commands/minecraft/getminime.ts
new file mode 100644
index 0000000..c948d38
--- /dev/null
+++ b/src/commands/minecraft/getminime.ts
@@ -0,0 +1,59 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+
+module.exports = class GetMiniMeMinecraft extends Command {
+ constructor(client) {
+ 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 }) {
+ //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(username)}.png`)
+ }
+
+ //console.debug(`Image URL for ${uUsername}: ${emb.image?.url}`)
+ msg.reply(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/minecraft/getskin.ts b/src/commands/minecraft/getskin.ts
new file mode 100644
index 0000000..ff2deb2
--- /dev/null
+++ b/src/commands/minecraft/getskin.ts
@@ -0,0 +1,43 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+
+module.exports = class GetSkinMinecraft extends Command {
+ constructor(client) {
+ 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 }) {
+ let emb = new MessageEmbed()
+ .setColor(0xFFCC4D)
+ .setAuthor(uUsername, `https://minotar.net/helm/${encodeURIComponent(uUsername)}`)
+ .setImage(`https://minotar.net/skin/${encodeURIComponent(uUsername)}`)
+ msg.reply(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/minecraft/minecraftserverstatus.ts b/src/commands/minecraft/minecraftserverstatus.ts
new file mode 100644
index 0000000..156a04f
--- /dev/null
+++ b/src/commands/minecraft/minecraftserverstatus.ts
@@ -0,0 +1,74 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+import axios from 'axios'
+import emoji from 'emoji-random'
+
+module.exports = class MinecraftServerMinecraft extends Command {
+ constructor(client) {
+ 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 }) {
+ 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())
+ })
+ ).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/nsfw/danbooru.ts b/src/commands/nsfw/danbooru.ts
index 87df99e..68bcc17 100644
--- a/src/commands/nsfw/danbooru.ts
+++ b/src/commands/nsfw/danbooru.ts
@@ -2,7 +2,7 @@ import { Command, CommandoMessage } from 'discord.js-commando';
import { MessageEmbed } from 'discord.js';
import axios from 'axios'
-export default class DanbooruBot extends Command {
+export default class DanbooruNSFW extends Command {
constructor(client) {
super(client, {
name: 'danbooru',
@@ -34,15 +34,15 @@ export default class DanbooruBot extends Command {
let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat'];
if (tags !== 0) {
- if (blacklist.includes(tags)) {
- msg.reply('Blacklisted word was used! ⛔')
+ if (blacklist.includes(tags.toLowerCase())) {
+ return msg.reply('Blacklisted word was used! ⛔')
}
}
let res = await axios.get(`https://danbooru.donmai.us/posts.json?limit=200&tags=${tags}+-rating:safe`)
- if (blacklist.includes(res.data[randomInt].tags)) {
- msg.reply('Sorry! This image had a tag that was blacklisted! ⛔')
+ if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) {
+ return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔')
}
let getRating = (rating) => {
diff --git a/src/commands/nsfw/gelbooru.ts b/src/commands/nsfw/gelbooru.ts
index 2f6fdeb..6a21c10 100644
--- a/src/commands/nsfw/gelbooru.ts
+++ b/src/commands/nsfw/gelbooru.ts
@@ -2,7 +2,7 @@ import { Command, CommandoMessage } from 'discord.js-commando';
import { MessageEmbed } from 'discord.js';
import axios from 'axios'
-export default class GelbooruBot extends Command {
+export default class GelbooruNSFW extends Command {
constructor(client) {
super(client, {
name: 'gelbooru',
@@ -34,15 +34,15 @@ export default class GelbooruBot extends Command {
let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat'];
if (tags !== 0) {
- if (blacklist.includes(tags)) {
- msg.reply('Blacklisted word was used! ⛔')
+ if (blacklist.includes(tags.toLowerCase())) {
+ return msg.reply('Blacklisted word was used! ⛔')
}
}
let res = await axios.get(`https://gelbooru.com/index.php?page=dapi&s=post&q=index&limit=100&tags=${tags}+-rating:safe&json=1`)
- if (blacklist.includes(res.data[randomInt].tags)) {
- msg.reply('Sorry! This image had a tag that was blacklisted! ⛔')
+ if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) {
+ return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔')
}
let getRating = (rating) => {
diff --git a/src/commands/nsfw/rule34.ts b/src/commands/nsfw/rule34.ts
index eb6fa10..669fcad 100644
--- a/src/commands/nsfw/rule34.ts
+++ b/src/commands/nsfw/rule34.ts
@@ -2,7 +2,7 @@ import { Command, CommandoMessage } from 'discord.js-commando';
import { MessageEmbed } from 'discord.js';
import axios from 'axios'
-export default class Rule34Bot extends Command {
+export default class Rule34NSFW extends Command {
constructor(client) {
super(client, {
name: 'rule34',
@@ -24,7 +24,8 @@ export default class Rule34Bot extends Command {
{
key: 'tags',
prompt: 'What tag(s) would you like?',
- type: 'string'
+ type: 'string',
+ default: '',
}
],
nsfw: true
@@ -32,18 +33,18 @@ export default class Rule34Bot extends Command {
}
async run(msg: CommandoMessage, { tags }) {
let randomInt = Math.floor(Math.random() * 100)
- let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat'];
+ let blacklist = ['loli', 'shota', 'cub', 'young', 'child', 'baby', 'guro', 'gore', 'vore', 'scat', 'poop'];
if (tags !== 0) {
- if (blacklist.includes(tags)) {
- msg.reply('Blacklisted word was used! ⛔')
+ if (blacklist.includes(tags.toLowerCase())) {
+ return msg.reply('Blacklisted word was used! ⛔')
}
}
let res = await axios.get(`http://rule34.xxx/index.php?page=dapi&s=post&q=index&limit=100&tags=${tags}+-rating:safe&json=1`)
- if (blacklist.includes(res.data[randomInt].tags)) {
- msg.reply('Sorry! This image had a tag that was blacklisted! ⛔')
+ if (blacklist.includes(res.data[randomInt].tags.toLowerCase())) {
+ return msg.reply('Sorry! This image had a tag that was blacklisted! ⛔')
}
let emb = new MessageEmbed()
diff --git a/src/commands/roleplay/blush.ts b/src/commands/roleplay/blush.ts
new file mode 100644
index 0000000..bbf0107
--- /dev/null
+++ b/src/commands/roleplay/blush.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class BlushRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..6924b39
--- /dev/null
+++ b/src/commands/roleplay/celebrate.ts
@@ -0,0 +1,23 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class CelebrateRoleplay extends Command {
+ constructor(client) {
+ 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.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
new file mode 100644
index 0000000..ba2c364
--- /dev/null
+++ b/src/commands/roleplay/eat.ts
@@ -0,0 +1,23 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class EatRoleplay extends Command {
+ constructor(client) {
+ 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.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
new file mode 100644
index 0000000..1a2f6db
--- /dev/null
+++ b/src/commands/roleplay/fistbump.ts
@@ -0,0 +1,31 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class FistBumpRoleplay extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'fistbump',
+ aliases: ['fist-bump'],
+ group: 'roleplay',
+ memberName: 'fistbump',
+ description: 'Fist-bump with 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 }) {
+ 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
new file mode 100644
index 0000000..bb9435d
--- /dev/null
+++ b/src/commands/roleplay/highfive.ts
@@ -0,0 +1,31 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class HighFiveRoleplay extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'highfive',
+ aliases: ['high-five'],
+ group: 'roleplay',
+ memberName: 'highfive',
+ description: 'High-fave with 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 }) {
+ 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
new file mode 100644
index 0000000..acfa78e
--- /dev/null
+++ b/src/commands/roleplay/holdhands.ts
@@ -0,0 +1,31 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class HoldHandsRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..06e267b
--- /dev/null
+++ b/src/commands/roleplay/hug.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class HugRoleplay extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'hug',
+ group: 'roleplay',
+ memberName: 'hug',
+ description: 'Hug hands with 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 }) {
+ 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
new file mode 100644
index 0000000..4765a86
--- /dev/null
+++ b/src/commands/roleplay/inhale.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class InhaleRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..5756ad0
--- /dev/null
+++ b/src/commands/roleplay/kill.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class KillRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..7b455c7
--- /dev/null
+++ b/src/commands/roleplay/kiss.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class KissRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..70649a4
--- /dev/null
+++ b/src/commands/roleplay/pat.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class PatRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ msg.say(`_**${msg.author.username}** pat **${uUser.username}**._` + ' ' + emoji.random())
+ }
+}; \ No newline at end of file
diff --git a/src/commands/roleplay/poke.ts b/src/commands/roleplay/poke.ts
new file mode 100644
index 0000000..6d8525d
--- /dev/null
+++ b/src/commands/roleplay/poke.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class PokeRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..980bcff
--- /dev/null
+++ b/src/commands/roleplay/punch.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class PunchRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..f007cb7
--- /dev/null
+++ b/src/commands/roleplay/slap.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class SlapRoleplay extends Command {
+ constructor(client) {
+ 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 }) {
+ 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
new file mode 100644
index 0000000..0d8beb2
--- /dev/null
+++ b/src/commands/roleplay/sleep.ts
@@ -0,0 +1,23 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class SleepRoleplay extends Command {
+ constructor(client) {
+ 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.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
new file mode 100644
index 0000000..d8418a7
--- /dev/null
+++ b/src/commands/roleplay/wakeup.ts
@@ -0,0 +1,24 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class WakeUpRoleplay extends Command {
+ constructor(client) {
+ 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.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
new file mode 100644
index 0000000..32b9f6e
--- /dev/null
+++ b/src/commands/roleplay/wave.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class WaveRoleplay extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'wave',
+ group: 'roleplay',
+ memberName: 'wave',
+ description: 'Wave 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 }) {
+ 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
new file mode 100644
index 0000000..a3360ee
--- /dev/null
+++ b/src/commands/roleplay/wink.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+
+module.exports = class WinkRoleplay extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'wink',
+ group: 'roleplay',
+ memberName: 'wink',
+ description: 'Wink 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 }) {
+ msg.say(`_**${msg.author.username}** winks at **${uUser.username}**._` + ' ' + emoji.random())
+ }
+}; \ No newline at end of file
diff --git a/src/commands/server/oldestmember.ts b/src/commands/server/oldestmember.ts
new file mode 100644
index 0000000..c14e694
--- /dev/null
+++ b/src/commands/server/oldestmember.ts
@@ -0,0 +1,50 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { formatDistance, formatRelative } from 'date-fns'
+import { stripIndents } from 'common-tags'
+
+module.exports = class OldestMemberServer extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'oldestmember',
+ aliases: [
+ 'oldest-member',
+ 'oldestuser',
+ 'oldest-user',
+ 'oldest'
+ ],
+ group: 'fun',
+ 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
+
+ const { createdAt } = oldest
+ const age = formatDistance(createdAt, new Date())
+ const date = formatRelative(createdAt, new Date())
+ 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/quotemessage.ts b/src/commands/server/quotemessage.ts
new file mode 100644
index 0000000..7dc2965
--- /dev/null
+++ b/src/commands/server/quotemessage.ts
@@ -0,0 +1,88 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import tt from '../../utils/truncateText.js'
+import path from 'path'
+
+module.exports = class QuoteMessageServer extends Command {
+ constructor(client) {
+ 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 }) {
+ 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 => 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 => 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)
+
+ msg.say(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/server/randommember.ts b/src/commands/server/randommember.ts
new file mode 100644
index 0000000..e818e61
--- /dev/null
+++ b/src/commands/server/randommember.ts
@@ -0,0 +1,34 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+
+module.exports = class RandomMemberServer extends Command {
+ constructor(client) {
+ 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
new file mode 100644
index 0000000..3fc3814
--- /dev/null
+++ b/src/commands/server/roleinfo.ts
@@ -0,0 +1,61 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+
+module.exports = class RoleInfoServer extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'roleinfo',
+ aliases: [
+ 'role-info'
+ ],
+ group: 'fun',
+ 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 }) {
+ 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}`)}`
+ }
+ ])
+ msg.say(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/server/roles.ts b/src/commands/server/roles.ts
new file mode 100644
index 0000000..e55f3a8
--- /dev/null
+++ b/src/commands/server/roles.ts
@@ -0,0 +1,41 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { MessageEmbed } from 'discord.js';
+import tt from '../../utils/truncateText.js'
+
+module.exports = class RolesServer extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'roles',
+ aliases: [
+ 'list-roles',
+ 'listroles',
+ 'roles-list',
+ 'roleslist'
+ ],
+ group: 'fun',
+ 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(', ')
+ ))
+ msg.say(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/user/age.ts b/src/commands/user/age.ts
new file mode 100644
index 0000000..0ba4515
--- /dev/null
+++ b/src/commands/user/age.ts
@@ -0,0 +1,40 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { formatDistance, formatRelative } from 'date-fns'
+import { stripIndents } from 'common-tags'
+
+module.exports = class AgeFun extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'age',
+ aliases: [
+ 'account-age',
+ 'accountage'
+ ],
+ group: 'fun',
+ 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 }) {
+ const target = uUser || msg.author
+ const { createdAt } = target
+ msg.reply(stripIndents`${formatDistance(createdAt, new Date())} old.
+ Created on ${formatRelative(createdAt, new Date())}`)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/user/id.ts b/src/commands/user/id.ts
new file mode 100644
index 0000000..b5d9060
--- /dev/null
+++ b/src/commands/user/id.ts
@@ -0,0 +1,32 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+import { MessageEmbed } from 'discord.js';
+
+module.exports = class IDUser extends Command {
+ constructor(client) {
+ 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 => msg.author
+ }
+ ]
+ });
+ }
+ run(msg: CommandoMessage, { uUser }) {
+ 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/nitro.ts b/src/commands/user/nitro.ts
new file mode 100644
index 0000000..1302a0a
--- /dev/null
+++ b/src/commands/user/nitro.ts
@@ -0,0 +1,30 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+import { stripIndents } from 'common-tags'
+
+module.exports = class NitroUser extends Command {
+ constructor(client) {
+ 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)`)
+ msg.say(emb)
+ }
+}; \ No newline at end of file
diff --git a/src/commands/user/pfp.ts b/src/commands/user/pfp.ts
index 6efba76..f4fdee5 100644
--- a/src/commands/user/pfp.ts
+++ b/src/commands/user/pfp.ts
@@ -39,7 +39,7 @@ module.exports = class PFPServer extends Command {
.setColor(0xFFCC4D)
.setTitle(`${msg.mentions.users.first()?.username}'s Profile Picture ` + emoji.random())
.setImage(user.avatarURL())
- msg.reply(emb)
+ msg.say(emb)
})
}
}; \ No newline at end of file
diff --git a/src/commands/utility/average.ts b/src/commands/utility/average.ts
new file mode 100644
index 0000000..51ac9e6
--- /dev/null
+++ b/src/commands/utility/average.ts
@@ -0,0 +1,43 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { formatDistance, formatRelative } from 'date-fns'
+import { stripIndents } from 'common-tags'
+
+module.exports = class AverageUtility extends Command {
+ constructor(client) {
+ 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 }) {
+ if (nNum.length < 2) msg.reply('Please provide **2** or more numbers.')
+
+ const reducer = (accumulator, currentValue) => accumulator + currentValue
+ 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
new file mode 100644
index 0000000..39b5c81
--- /dev/null
+++ b/src/commands/utility/csgoserverstatus.ts
@@ -0,0 +1,77 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+import emoji from 'emoji-random'
+import gamedig from 'gamedig'
+import gameDigHelper from '../../utils/gameDigHelper.js'
+
+module.exports = class CSGOServerStatusUtility extends Command {
+ constructor(client) {
+ 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 }) {
+ try {
+ const options = {
+ host,
+ type: 'csgo'
+ }
+
+ if (port) {
+ options.port = port
+ }
+
+ gamedig
+ .query(options)
+ .then(data => {
+ 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 => {
+ 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 {
+ msg.channel.stopTyping()
+ }
+ }
+}; \ No newline at end of file
diff --git a/src/commands/utility/fortnitestats.ts b/src/commands/utility/fortnitestats.ts
new file mode 100644
index 0000000..88a50a0
--- /dev/null
+++ b/src/commands/utility/fortnitestats.ts
@@ -0,0 +1,101 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+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) {
+ super(client, {
+ name: 'fortnitestats',
+ aliases: [
+ 'fortnite-stats',
+ 'fortnitestatistics',
+ 'fortnite-statistics',
+ 'fnstats',
+ 'fn-stats',
+ 'fnstatistics',
+ 'fn-statistics',
+ 'fns',
+ 'fn-s'
+ ],
+ group: 'utility',
+ memberName: 'fortnitestats',
+ description: 'Grabs a specified player\' 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 => platform.toLowerCase(),
+ oneOf: platforms
+ },
+ {
+ key: 'pUsername',
+ prompt: 'What user would you like to look up?',
+ type: 'string'
+ }
+ ]
+ });
+ }
+ async run(msg: CommandoMessage, { pPlatform, pUsername }) {
+ 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())
+ })
+ ).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 {
+ msg.channel.stopTyping()
+ }
+ }
+}; \ No newline at end of file
diff --git a/src/commands/utility/gmodserverstatus.ts b/src/commands/utility/gmodserverstatus.ts
new file mode 100644
index 0000000..a92b5cf
--- /dev/null
+++ b/src/commands/utility/gmodserverstatus.ts
@@ -0,0 +1,76 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+import emoji from 'emoji-random'
+import gamedig from 'gamedig'
+import gameDigHelper from '../../utils/gameDigHelper.js'
+
+module.exports = class GModServerStatusUtility extends Command {
+ constructor(client) {
+ 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 GMod 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 }) {
+ try {
+ const options = {
+ host,
+ type: 'garrysmod'
+ }
+
+ if (port) {
+ options.port = port
+ }
+
+ gamedig
+ .query(options)
+ .then(data => {
+ 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 => {
+ 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 {
+ msg.channel.stopTyping()
+ }
+ }
+}; \ No newline at end of file
diff --git a/src/commands/utility/iss.ts b/src/commands/utility/iss.ts
new file mode 100644
index 0000000..d49b499
--- /dev/null
+++ b/src/commands/utility/iss.ts
@@ -0,0 +1,31 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random';
+import request from 'node-superfetch'
+
+module.exports = class ISSUtility extends Command {
+ constructor(client) {
+ 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')
+ 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/rustserverstatus.ts b/src/commands/utility/rustserverstatus.ts
new file mode 100644
index 0000000..bce83cb
--- /dev/null
+++ b/src/commands/utility/rustserverstatus.ts
@@ -0,0 +1,76 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed } from 'discord.js';
+import emoji from 'emoji-random'
+import gamedig from 'gamedig'
+import gameDigHelper from '../../utils/gameDigHelper.js'
+
+module.exports = class RustServerStatusUtility extends Command {
+ constructor(client) {
+ 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
+ }
+ ]
+ });
+ }
+ async run(msg: CommandoMessage, { host, port }) {
+ try {
+ const options = {
+ host,
+ type: 'rust'
+ }
+
+ if (port) {
+ options.port = port
+ }
+
+ gamedig
+ .query(options)
+ .then(data => {
+ msg.replyEmbed(
+ gameDigHelper(data)
+ .setThumbnail('https://steamcdn-a.akamaihd.net/steam/apps/252490/header.jpg')
+ .setColor(0xFFCC4D)
+ )
+ })
+ .catch(err => {
+ 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 {
+ msg.channel.stopTyping()
+ }
+ }
+}; \ No newline at end of file
diff --git a/src/commands/utility/starboundserverstatus.ts b/src/commands/utility/starboundserverstatus.ts
new file mode 100644
index 0000000..963f226
--- /dev/null
+++ b/src/commands/utility/starboundserverstatus.ts
@@ -0,0 +1,95 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import { MessageEmbed, Message } from 'discord.js';
+import emoji from 'emoji-random'
+import gamedig from 'gamedig'
+import gameDigHelper from '../../utils/gameDigHelper.js'
+
+module.exports = class StarboundServerStatusUtility extends Command {
+ constructor(client) {
+ 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
+ }
+ ]
+ });
+ }
+ async run(msg: CommandoMessage, { host, port }) {
+ try {
+ const options = {
+ host,
+ type: 'starbound'
+ }
+
+ if (port) {
+ options.port = port
+ }
+
+ gamedig
+ .query(options)
+ .then(data => {
+ 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 => {
+ 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 {
+ msg.channel.stopTyping()
+ }
+ }
+}; \ No newline at end of file
diff --git a/src/config.json b/src/config.json
index 07f687f..e015555 100644
--- a/src/config.json
+++ b/src/config.json
@@ -1,5 +1,8 @@
{
"secret":"Njk5NDczMjYzOTk4MjcxNDg5.XpU5oQ.btZuxVudhNllSQY6CxrXXtMJm9A",
"yt-api-key":"AIzaSyCeG1lQAeInv4vjFv_eTL9IFAFNdQC9Nk8",
- "version":"8.2.0"
+ "version":"9.0.0",
+ "fortniteTrackerNetworkToken": "4cf21f95-5f1a-412a-b4a7-e5424adc314a",
+ "maxMultipler": 100,
+ "minMultipler": 1.01
} \ No newline at end of file
diff --git a/src/models/Command.ts b/src/models/Command.ts
new file mode 100644
index 0000000..a6d6700
--- /dev/null
+++ b/src/models/Command.ts
@@ -0,0 +1,16 @@
+import { Command } from 'discord.js-commando';
+
+module.exports = class UwufierCommand extends Command {
+ constructor(client, info) {
+ super(client, info);
+
+ this.argsSingleQuotes = info.argsSingleQuotes || false;
+ this.throttling = info.throttling || { usages: 1, duration: 2 };
+ this.credit = info.credit || [];
+ this.credit.push({
+ name: 'Dragon Fire',
+ url: 'https://github.com/dragonfire535',
+ reason: 'Code'
+ });
+ }
+} \ No newline at end of file
diff --git a/src/models/commands/Subreddit.ts b/src/models/commands/Subreddit.ts
new file mode 100644
index 0000000..ff58a71
--- /dev/null
+++ b/src/models/commands/Subreddit.ts
@@ -0,0 +1,64 @@
+import { CommandoMessage } from 'discord.js-commando';
+import Command from '../Command.js'
+import request from 'node-superfetch'
+import emoji from 'emoji-random'
+
+module.exports = class SubredditCommand extends Command {
+ constructor(client, info) {
+ 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 }, fromPattern) {
+ if (fromPattern) subreddit = msg.patternMatches[1];
+ if (!subreddit) subreddit = typeof this.subreddit === 'function' ? this.subreddit() : this.subreddit;
+ try {
+ const post = await this.random(subreddit, msg.channel.nsfw);
+ if (!post) return msg.reply('Could not find any results. ' + emoji.random());
+ 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, nsfw) {
+ let icon = null;
+ const { body } = await request
+ .get(`https://www.reddit.com/r/${subreddit}/hot.json`)
+ .query({ limit: 100 });
+ if (!body.data.children.length) return null;
+ 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) {
+ const { body } = await request.get(`https://www.reddit.com/r/${subreddit}/about.json`);
+ if (!body.data.icon_img && !body.data.community_icon) return 'https://i.imgur.com/DSBOK0P.png';
+ return body.data.icon_img || body.data.community_icon;
+ }
+}; \ No newline at end of file
diff --git a/src/utils/Util.ts b/src/utils/Util.ts
new file mode 100644
index 0000000..6e00d04
--- /dev/null
+++ b/src/utils/Util.ts
@@ -0,0 +1,185 @@
+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) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+
+ static shuffle(array) {
+ 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, 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, maxLen = 2000) {
+ return text.length > maxLen ? `${text.substr(0, maxLen - 3)}...` : text;
+ }
+
+ static randomRange(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+ }
+
+ static trimArray(arr, 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) {
+ if (arr.length === 0 || arr.length === 1) return arr;
+ const newArr = [];
+ for (let i = 0; i < arr.length; i++) {
+ if (newArr.includes(arr[i])) continue;
+ newArr.push(arr[i]);
+ }
+ return newArr;
+ }
+
+ static sortByName(arr, prop) {
+ 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, split = ' ') {
+ return text.split(split).map(word => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join(' ');
+ }
+
+ static formatNumber(number, minimumFractionDigits = 0) {
+ return Number.parseFloat(number).toLocaleString(undefined, {
+ minimumFractionDigits,
+ maximumFractionDigits: 2
+ });
+ }
+
+ static base64(text, 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.`);
+ }
+
+ static hash(text, algorithm) {
+ return crypto.createHash(algorithm).update(text).digest('hex');
+ }
+
+ static streamToArray(stream) {
+ if (!stream.readable) return Promise.resolve([]);
+ return new Promise((resolve, reject) => {
+ const array = [];
+ function onData(data) {
+ array.push(data);
+ }
+ function onEnd(error) {
+ 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, percentColors) {
+ 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) {
+ 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) {
+ const today = Util.today(timeZone);
+ today.setDate(today.getDate() + 1);
+ return today;
+ }
+
+ static embedURL(title, url, display) {
+ 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(/&#039;/g, '\'')
+ .replace(/&quot;/g, '"')
+ .replace(/<\/?i>/g, '*')
+ .replace(/<\/?b>/g, '**')
+ .replace(/~!|!~/g, '||')
+ .replace(/&mdash;/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
new file mode 100644
index 0000000..647777d
--- /dev/null
+++ b/src/utils/gameDigHelper.ts
@@ -0,0 +1,46 @@
+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 => {
+ 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 => 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
new file mode 100644
index 0000000..4d658bc
--- /dev/null
+++ b/src/utils/genCmdURL.ts
@@ -0,0 +1 @@
+module.exports = cmd => `/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
new file mode 100644
index 0000000..0985546
--- /dev/null
+++ b/src/utils/simpleFormat.ts
@@ -0,0 +1,9 @@
+/**
+* @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 => {
+ 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
new file mode 100644
index 0000000..fa8c240
--- /dev/null
+++ b/src/utils/stripWebhookURL.ts
@@ -0,0 +1,11 @@
+/**
+* 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 => {
+ const regex = /https:\/\/discordapp\.com\/api\/webhooks\/(\d{1,})\/([\w-_]{1,})/;
+ const matches = regex.exec(url);
+
+ 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
new file mode 100644
index 0000000..bd2f311
--- /dev/null
+++ b/src/utils/truncateText.ts
@@ -0,0 +1,6 @@
+/**
+* @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, 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
new file mode 100644
index 0000000..bac3b72
--- /dev/null
+++ b/src/utils/wait.ts
@@ -0,0 +1,6 @@
+/**
+* @name wait
+* @param {number} delay Delay in milliseconds to wait for
+* @returns {Promise<resolve>}
+*/
+module.exports = delay => new Promise(resolve => setTimeout(resolve, delay)); \ No newline at end of file
diff --git a/src/utils/winPercentage.ts b/src/utils/winPercentage.ts
new file mode 100644
index 0000000..022f079
--- /dev/null
+++ b/src/utils/winPercentage.ts
@@ -0,0 +1,16 @@
+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, user) => {
+ // 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