From 573ed8d16271abf0e093e6be742c2e9ac7603a6a Mon Sep 17 00:00:00 2001 From: WubzyGD Date: Thu, 12 Aug 2021 23:05:03 -0600 Subject: [PATCH] update to v13 --- .gitignore | 3 +- .idea/.name | 1 - .idea/Natsuki.iml | 24 +- .idea/discord.xml | 3 +- .idea/jsLibraryMappings.xml | 6 - .idea/modules.xml | 16 +- .idea/workspace.xml | 65 +- bot.js | 5 +- commands/anime/anime.js | 6 +- commands/dev/admin.js | 2 +- commands/dev/developer.js | 2 +- commands/dev/eval.js | 4 +- commands/dev/execute.js | 8 +- commands/dev/support.js | 2 +- commands/dev/vip.js | 4 +- commands/fun/8ball.js | 5 +- commands/fun/bite.js | 4 +- commands/fun/deathnote.js | 6 +- commands/fun/kiss.js | 8 +- commands/fun/nowplaying.js | 4 +- commands/fun/secretsanta.js | 10 +- commands/fun/slap.js | 4 +- commands/leveling/leaderboard.js | 4 +- commands/leveling/levelrole.js | 4 +- commands/leveling/setupleveling.js | 6 +- commands/leveling/stats.js | 6 +- commands/misc/ar.js | 10 +- commands/misc/avatar.js | 2 +- commands/misc/commands.js | 2 +- commands/misc/emoji.js | 6 +- commands/misc/help.js | 2 +- commands/misc/info.js | 7 +- commands/misc/ingorear.js | 4 +- commands/misc/invite.js | 4 +- commands/misc/mem.js | 4 +- commands/misc/prefix.js | 4 +- commands/misc/serverinfo.js | 6 +- commands/misc/supportserver.js | 4 +- commands/misc/uptime.js | 6 +- commands/misc/userinfo.js | 2 +- commands/moderation/ban.js | 2 +- commands/moderation/checkwarnings.js | 4 +- commands/moderation/leave.js | 8 +- commands/moderation/response.js | 4 +- commands/moderation/staffrole.js | 4 +- commands/moderation/warn.js | 4 +- commands/moderation/welcome.js | 8 +- commands/social/bio.js | 8 +- commands/social/blush.js | 4 +- commands/social/bonk.js | 8 +- commands/social/clearstatus.js | 2 +- commands/social/creampie.js | 8 +- commands/social/cry.js | 4 +- commands/social/dance.js | 4 +- commands/social/dodge.js | 4 +- commands/social/feed.js | 8 +- commands/social/fuck.js | 8 +- commands/social/handhold.js | 8 +- commands/social/heal.js | 8 +- commands/social/hug.js | 8 +- commands/social/kill.js | 8 +- commands/social/kiss.js | 8 +- commands/social/laugh.js | 4 +- commands/social/pat.js | 8 +- commands/social/run.js | 4 +- commands/social/simp.js | 10 +- commands/social/sip.js | 4 +- commands/social/smile.js | 4 +- commands/social/spank.js | 4 +- commands/social/wink.js | 8 +- commands/utility/coinflip.js | 2 +- commands/utility/monitor.js | 2 +- commands/utility/randnum.js | 4 +- commands/utility/robemote.js | 18 +- commands/utility/todo.js | 34 +- events/channelCreate.js | 4 +- events/channelDelete.js | 4 +- events/guildCreate.js | 8 +- events/guildDelete.js | 8 +- events/{message.js => messageCreate.js} | 19 +- events/messageDelete.js | 6 +- events/messageReactionAdd.js | 4 +- events/messageUpdate.js | 6 +- events/voiceStateUpdate.js | 20 +- handle/command.js | 16 +- package-lock.json | 1395 ++++++----------------- package.json | 7 +- responses/wubzy.js | 6 +- util/ask.js | 2 +- util/pagination.d.ts | 72 +- util/pagination.js | 269 ++--- util/response/filterresponse.js | 2 +- util/response/sendresponse.js | 2 +- util/ts/pagination.ts | 10 +- 94 files changed, 821 insertions(+), 1552 deletions(-) delete mode 100644 .idea/.name delete mode 100644 .idea/jsLibraryMappings.xml rename events/{message.js => messageCreate.js} (92%) diff --git a/.gitignore b/.gitignore index 8ac6dfb..63ad009 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ node_modules/ config.json auth.json -test.js \ No newline at end of file +test.js +/.idea/ \ No newline at end of file diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index b10b294..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -guild.js \ No newline at end of file diff --git a/.idea/Natsuki.iml b/.idea/Natsuki.iml index 7b02055..d007bc1 100644 --- a/.idea/Natsuki.iml +++ b/.idea/Natsuki.iml @@ -1,13 +1,13 @@ - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml index cd711a0..30bab2a 100644 --- a/.idea/discord.xml +++ b/.idea/discord.xml @@ -1,6 +1,7 @@ - \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml deleted file mode 100644 index 63326a8..0000000 --- a/.idea/jsLibraryMappings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 91e0157..20fd023 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1a6fcaf..cf9a294 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,81 +1,70 @@ + + - + + + + + + + -<<<<<<< HEAD -======= - - - ->>>>>>> 36ede9d7de87f20d905c506a6f9eb8a6f9d2816d + + + - - - - + + - - - - - - - - + + + + + - + + - - 1610796005269 + + 1628567777733 diff --git a/bot.js b/bot.js index 2d483cc..7f2e4e5 100644 --- a/bot.js +++ b/bot.js @@ -1,10 +1,13 @@ const Discord = require('discord.js'); -const client = new Discord.Client(); const chalk = require('chalk'); const ora = require('ora'); const mongoose = require('mongoose'); +const flags = Discord.Intents.FLAGS; +let fl = []; Object.keys(flags).forEach(flag => fl.push(flags[flag])) +const client = new Discord.Client({intents: fl, partials: ["CHANNEL", "REACTION", "MESSAGE"]}); + client.misc = { savers: ['497598953206841375', '480535078150340609', '468903364533420074'], activeDMs: new Discord.Collection(), diff --git a/commands/anime/anime.js b/commands/anime/anime.js index d865eac..1ed2b3c 100644 --- a/commands/anime/anime.js +++ b/commands/anime/anime.js @@ -150,15 +150,15 @@ module.exports = { .setFooter('Natsuki', client.user.avatarURL()) .setTimestamp(); try { - am = await message.channel.send(amEmbed); + am = await message.channel.send({embeds: [amEmbed]}); await am.react('👍'); await am.react('👎'); } catch {return message.channel.send(":thinking: hmmm... something went wrong there. I might not have permissions to add reactions to messages, and this could be the issue.");} try { - let rc = am.createReactionCollector((r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, {max: 1, time: 60000}); + let rc = am.createReactionCollector({filter: (r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, max: 1, time: 60000}); rc.on("collect", async r => { if (r.emoji.name !== '👎') { - client.guilds.fetch('762707532417335296').then(g => g.channels.cache.get('817466729293938698').send(amEmbed)); + client.guilds.fetch('762707532417335296').then(g => g.channels.cache.get('817466729293938698').send({embeds: [amEmbed]})); while (true) {options.id = require('../../util/makeid')(4); if (!await AniData.findOne({id: options.id})) {break;}} await new AniData(options).save(); return message.author.send(`Your anime has been ${!queue ? "added" : "submitted"}`); diff --git a/commands/dev/admin.js b/commands/dev/admin.js index 792ab1c..d39f7ea 100644 --- a/commands/dev/admin.js +++ b/commands/dev/admin.js @@ -36,7 +36,7 @@ module.exports = { .setColor("e8da3a") .setFooter("Natsuki") .setTimestamp(); - client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')); + client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')]}); return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} an admin!`); } }; \ No newline at end of file diff --git a/commands/dev/developer.js b/commands/dev/developer.js index 1dc2c7e..1e7b1cd 100644 --- a/commands/dev/developer.js +++ b/commands/dev/developer.js @@ -38,7 +38,7 @@ module.exports = { .setColor("e8da3a") .setFooter("Natsuki") .setTimestamp(); - client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')); + client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')]}); return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} a developer!`); } }; \ No newline at end of file diff --git a/commands/dev/eval.js b/commands/dev/eval.js index fa5e3c3..2069451 100644 --- a/commands/dev/eval.js +++ b/commands/dev/eval.js @@ -34,12 +34,12 @@ module.exports = { .replace(client.config.database.password, 'Database Password') .replace(client.config.database.cluster, 'Database Cluster'); - return options.silent ? null : message.channel.send(new Discord.MessageEmbed() + return options.silent ? null : message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle('Client Evaluation') .setDescription(`\`\`\`js\n${output}\n\`\`\``) .setColor('c375f0') .setFooter(`Natsuki | Evaluated in ${new Date().getTime() - timer}ms`, client.user.avatarURL()) - .setTimestamp()); + .setTimestamp()]}); }).catch(error => {return message.channel.send(`Error: \`${error}\`.`);}); } catch (error) { let date = new Date; date = date.toString().slice(date.toString().search(":") - 2, date.toString().search(":") + 6); diff --git a/commands/dev/execute.js b/commands/dev/execute.js index 0e2d118..749d925 100644 --- a/commands/dev/execute.js +++ b/commands/dev/execute.js @@ -18,21 +18,21 @@ module.exports = { if (args.join(" ").match(/^rm\s+/gm)) {return message.channel.send(":(");} return cp.exec(args.join(" "), function(error, stdout, stderr) { if (error) { - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Error") .setDescription(`\`\`\`${error}\`\`\``) .setColor("ff446a") .setFooter("Natsuki", client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} ); } - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Execution Successful") .setDescription(`\`\`\`${stdout}\`\`\``) .setColor("c375f0") .setFooter("Natsuki", client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} ); }); } diff --git a/commands/dev/support.js b/commands/dev/support.js index bf281e9..c8aa4b3 100644 --- a/commands/dev/support.js +++ b/commands/dev/support.js @@ -36,7 +36,7 @@ module.exports = { .setColor("e8da3a") .setFooter("Natsuki") .setTimestamp(); - client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')); + client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb(['a', 'add'].includes(args[0]) ? 'Added' : 'Removed')]}); return message.reply(`${message.guild.members.cache.get(person.id).displayName} is no${['a', 'add'].includes(args[0]) ? 'w' : ' longer'} a Support Team member!`); } }; \ No newline at end of file diff --git a/commands/dev/vip.js b/commands/dev/vip.js index e43dfcf..4ccd0cb 100644 --- a/commands/dev/vip.js +++ b/commands/dev/vip.js @@ -36,14 +36,14 @@ module.exports = { if (tguild.vip === true) {return message.reply("This server is already a VIP server.");} tguild.vip = true; tguild.save(); - client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb("Added")); + client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb("Added")]}); return message.reply("This server is now a VIP server!"); } else if (['remove', 'r', 'delete', 'd'].includes(args[0])) { let tguild = await GuildSettings.findOne({gid: message.guild.id}); if (tguild) { if (tguild.vip === false) {return message.reply("This server wasn't a VIP server anyways...");} await GuildSettings.findOneAndUpdate({gid: message.guild.id, vip: false}); - client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send(logemb("Removed")); + client.guilds.cache.get('762707532417335296').channels.cache.get('762732961753595915').send({embeds: [logemb("Removed")]}); } else {return message.reply("This server wasn't a VIP server anyways...");} return message.reply("This server is no longer a VIP server!"); } else if (['check', 'c', 'view', 'v'].includes(args[0])) { diff --git a/commands/fun/8ball.js b/commands/fun/8ball.js index 532f76d..72541ee 100644 --- a/commands/fun/8ball.js +++ b/commands/fun/8ball.js @@ -25,11 +25,12 @@ module.exports = { ]; let name = message.guild ? message.member.displayName : message.author.username; - return message.reply(new Discord.MessageEmbed() + return message.reply({embeds: [new Discord.MessageEmbed() .setAuthor("8ball Question", message.author.avatarURL()) .setDescription("**Question:** " + question + "\n**Answer:** " + responses[Math.floor(Math.random() * responses.length)]) .setColor("c375f0") .setFooter(`Asked by ${name} | Natsuki`) - .setTimestamp()); + .setTimestamp()]} + ); } }; \ No newline at end of file diff --git a/commands/fun/bite.js b/commands/fun/bite.js index c48c357..630aad6 100644 --- a/commands/fun/bite.js +++ b/commands/fun/bite.js @@ -24,11 +24,11 @@ module.exports = { if (!message.guild) {return message.reply("Oi! I get it if you don't like me but you can't just waltz into my DMs and bite me!");} if (!message.guild.members.cache.has(mention.id)) {return message.reply("That user is not in this server!");} if (message.author.id === mention.id) {return message.reply("Ew quit tryna bite yourself, that's weird.");} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} bites ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('d93846') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/fun/deathnote.js b/commands/fun/deathnote.js index 6c4eb05..7cb34b3 100644 --- a/commands/fun/deathnote.js +++ b/commands/fun/deathnote.js @@ -104,12 +104,12 @@ module.exports = { let pretext = before[Math.floor(Math.random() * before.length)].replace(/{p}/g, victim); - let note = await message.channel.send(new Discord.MessageEmbed() + let note = await message.channel.send({embeds: [new Discord.MessageEmbed() .setDescription(pretext) .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); await require('../../util/wait')(2500); @@ -139,6 +139,6 @@ module.exports = { if (mention) {finalEmbed.setThumbnail(mention.avatarURL({size: 1024}));} - return note.edit(finalEmbed); + return note.edit({embeds: [finalEmbed]}); } }; \ No newline at end of file diff --git a/commands/fun/kiss.js b/commands/fun/kiss.js index 37771f3..9883bae 100644 --- a/commands/fun/kiss.js +++ b/commands/fun/kiss.js @@ -16,24 +16,24 @@ module.exports = { let savess = await Saves.findOne({name: 'kiss'}) ? await Saves.findOne({name: 'kiss'}) : new Saves({name: 'kiss'}); let saves = savess.saves; if (!args.length) { - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} wants a kiss!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`) .setColor('c375f0') .setFooter('Natsuki', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "I'm not really into that kind of thing. Maybe try asking in a server?" );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (!message.guild) {return message.reply("Please make sure you're in a server so you can mention someone other than me to kiss!");} if (!message.guild.members.cache.has(mention.id)) {return message.reply("That user is not in this server!");} if (message.author.id === mention.id) {return message.reply("A self-kiss ought to be a little hard, don't you think?");} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} kisses ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('d428a0') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/fun/nowplaying.js b/commands/fun/nowplaying.js index cd28069..56be87b 100644 --- a/commands/fun/nowplaying.js +++ b/commands/fun/nowplaying.js @@ -28,14 +28,14 @@ module.exports = { let stream = client.lfm.stream(saves.get(user.id)); stream.on('nowPlaying', t => { clearTimeout(timeout); - message.channel.send(new Discord.MessageEmbed() + message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.guild ? message.guild.members.cache.get(user.id) ? message.guild.members.cache.get(user.id).displayName : user.username : user.username, user.avatarURL()) .setTitle(`${saves.get(user.id)} | Now Playing`) .setDescription(`<@${user.id}> is currently listening to **${t.name}** by **${t.artist['#text']}**.\nView the song [here](${t.url}).`) .setColor("c375f0") .setThumbnail(t.image[3]['#text']) .setTimestamp() - ) + ]}) found = true; stream.stop(); return resolve(undefined); diff --git a/commands/fun/secretsanta.js b/commands/fun/secretsanta.js index 7bf1709..7c2858b 100644 --- a/commands/fun/secretsanta.js +++ b/commands/fun/secretsanta.js @@ -75,7 +75,7 @@ module.exports = { tss.save(); clearDM(); - return dmch.send(new Discord.MessageEmbed() + return dmch.send({embeds: [new Discord.MessageEmbed() .setTitle("Secret Santa Created!") .setDescription("Your Secret Santa has been completed! Have your members join by using `n?secretsanta join ` where the ID is the ID displayed below. You can start your secret santa when you have at least 3 members with `n?secretsanta start `. If someone joins that you don't want in your secret santa, use `n?secretsanta kick <@member|userID>`. If you want to also participate, just join the same way as everyone else.") .setThumbnail(message.author.avatarURL({size: 1024})) @@ -84,7 +84,7 @@ module.exports = { .setColor("01bd2f") .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); } if (['j', 'join'].includes(args[0].toLowerCase())) { @@ -105,7 +105,7 @@ module.exports = { let o = await client.users.fetch(tss.owner); - await dmch.send(new Discord.MessageEmbed() + await dmch.send({embeds: [new Discord.MessageEmbed() .setTitle("This Secret Santa!") .setDescription("This is the one you're trying to join!") .addField("Start", tss.start) @@ -115,11 +115,11 @@ module.exports = { .addField("Anonymous Gifters", tss.anon ? "Yes" : "No") .addField("ID", `\`${tss.ssid}\``, true) .addField("Owner", o.username, true) - .addField("Members", tss.members ? tss.members.length : 0, true) + .addField("Members", `${tss.members ? tss.members.length : 0}`, true) .setColor("01bd2f") .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); let name = await ask(mesg, "What is your name? This can be seen by everyone in the secret santa.", 60000, true); if (!name) {return clearDM();} if (name.length > 50) {clearDM(); return dmch.send("Maybe just the *first* name? I doubt it's over 50 characters.");} diff --git a/commands/fun/slap.js b/commands/fun/slap.js index abcf2ab..f44348d 100644 --- a/commands/fun/slap.js +++ b/commands/fun/slap.js @@ -30,13 +30,13 @@ module.exports = { slaps.total++; slaps.markModified(`against.${mention.id}`); slaps.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} slaps ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL()) .setDescription(`That makes slap **#${slaps.against[mention.id]}** from you to them!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('d93846') .setFooter(`${slaps.total} slap${slaps.total === 1 ? '' : 's'} total`) - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/leveling/leaderboard.js b/commands/leveling/leaderboard.js index d83bdaf..c86c272 100644 --- a/commands/leveling/leaderboard.js +++ b/commands/leveling/leaderboard.js @@ -26,14 +26,14 @@ module.exports = { let i; for (i=0; i -> **Level ${xp[lvl[i]][1]}**\n`;} lvls += `\n${cfmh} *You are ranked **#${lvlp.indexOf(message.author.id) + 1}** at Level ${xp[lvlp[lvlp.indexOf(message.author.id)]][1]}.*`; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Server Leaderboard") .setThumbnail(message.guild.iconURL({size: 2048, dynamic: true})) .addField("Level", lvls) .setColor('c375f0') .setFooter("Natsuki | Stats may be up to 2 minutes out of sync") .setTimestamp() - ); + ]}); /*u = Object.keys(tm.messages.members).sort((a, b) => {return tm.messages.members[a] - tm.messages.members[b];}).reverse().slice(0, Object.keys(tm.messages.members).length >= 5 ? 5 : Object.keys(tm.messages.members).length); us = ``; diff --git a/commands/leveling/levelrole.js b/commands/leveling/levelrole.js index 11552fe..74416ee 100644 --- a/commands/leveling/levelrole.js +++ b/commands/leveling/levelrole.js @@ -59,14 +59,14 @@ module.exports = { rs.sort((a, b) => a.level - b.level); for (let i = 0; i < rs.length; i++) {s += `**${i + 1}.** Level ${rs[i].level} - <@&${rs[i].role.id}>\n`;} if (!s.length) {return message.channel.send("Hmm, there was some kind of error there. It may be that your server's leveling roles were deleted, or there was some internal error when trying to read them. Contact my devs if the problem persists.");} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Server Leveling Roles") .setThumbnail(message.guild.iconURL({size: 2048})) .setDescription(s) .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); } if (['d', 'delete', 'r', 'remove'].includes(args[0].toLowerCase())) { diff --git a/commands/leveling/setupleveling.js b/commands/leveling/setupleveling.js index 1ae8ca5..bc7552a 100644 --- a/commands/leveling/setupleveling.js +++ b/commands/leveling/setupleveling.js @@ -27,20 +27,20 @@ module.exports = { await am.react('👎'); } catch {return message.channel.send(":thinking: hmmm... something went wrong there. I might not have permissions to add reactions to messages, and this could be the issue.");} try { - let rc = am.createReactionCollector((r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, {max: 1, time: 60000}); + let rc = am.createReactionCollector({filter: (r, u) => ['👍', '👎'].includes(r.emoji.name) && u.id === message.author.id, max: 1, time: 60000}); rc.on("collect", async r => { let xp = new LXP({gid: message.guild.id}); xp.msg = r.emoji.name === "👍"; xp.save(); client.misc.cache.lxp.enabled.push(message.guild.id); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("XP System Enabled!") .setThumbnail(message.guild.iconURL({size: 2048})) .setDescription(`Your server now has its leveling system enabled! If you enabled level up messages, you can set the channel for that using \`${prefix}levelchannel\`.`) //TODO update this with info on how the shiz works .setColor("c375f0") .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); }); rc.on("end", collected => {if (!collected.size) {return message.channel.send("Looks like you ran out of time! Try again?");}}); } catch {return message.channel.send("Hmm... there was some error problem thingy that happened when I tried to enable XP for your server. If it keeps not working, then go yell at my devs!");} diff --git a/commands/leveling/stats.js b/commands/leveling/stats.js index 9336af6..0663a93 100644 --- a/commands/leveling/stats.js +++ b/commands/leveling/stats.js @@ -27,15 +27,15 @@ module.exports = { if (!txp.xp[u.id]) {return message.channel.send(`${u.id === message.author.id ? "You" : "That user"} doesn't have any leveling info available!`);} xp = {xp: txp.xp[u.id][0], level: txp.xp[u.id][1]}; } else {xp = client.misc.cache.lxp.xp[message.guild.id][u.id];} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${u.displayName}${u.displayName.toLowerCase().endsWith('s') ? "'" : "'s"} Stats`) .setDescription("Local leveling stats") - .addField("Level", xp.level, true) + .addField("Level", `${xp.level}`, true) .addField("XP", `**${xp.xp}** of **${Math.ceil(100 + (((xp.level / 3) ** 2) * 2))}** needed to level up`, true) .setThumbnail(client.users.cache.get(u.id).avatarURL({size: 2048})) .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ) + ]}) } }; \ No newline at end of file diff --git a/commands/misc/ar.js b/commands/misc/ar.js index 46b919c..9284b75 100644 --- a/commands/misc/ar.js +++ b/commands/misc/ar.js @@ -64,9 +64,9 @@ module.exports = { if (!tar || !tar.triggers.length) {return message.channel.send("You can't edit any auto-responses... because there aren't any here...");} let sar = sortARs(tar); - await message.channel.send(viewARs(sar).addField("Editing", "Please say the **number** of the AR you wish to edit.")); + await message.channel.send({embeds: [viewARs(sar).addField("Editing", "Please say the **number** of the AR you wish to edit.")]}); let collected; - try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60001, max: 1});} + try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60001, max: 1});} catch {return message.channel.send("This question has timed out. Please try again!");} collected = collected.first().content.trim(); if (isNaN(Number(collected))) {return message.channel.send("Hmmm, maybe try replying with a *number*!");} @@ -89,9 +89,9 @@ module.exports = { if (!tar || !tar.triggers.length) {return message.channel.send("It's not like this server has any ARs for me to delete in the first place!");} let sar = sortARs(tar); - await message.channel.send(viewARs(sar).addField("Deletion", "Please say the **number** of the AR you wish to delete.")); + await message.channel.send({embeds: [viewARs(sar).addField("Deletion", "Please say the **number** of the AR you wish to delete.")]}); let collected; - try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60000, max: 1});} + try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60000, max: 1});} catch {return message.channel.send("This question has timed out. Please try again!");} collected = collected.first().content.trim(); if (isNaN(Number(collected))) {return message.channel.send("You didn't reply with a number!");} @@ -113,7 +113,7 @@ module.exports = { if (['v', 'view', 'l', 'list'].includes(args[0].toLowerCase())) { let tar = await AR.findOne({gid: message.guild.id}); if (!tar || !tar.triggers.length) {return message.channel.send("This server has no ARs!");} - return message.channel.send(viewARs(sortARs(tar))); + return message.channel.send({embeds: [viewARs(sortARs(tar))]}); } if (['s', 'settings'].includes(args[0].toLowerCase())) { diff --git a/commands/misc/avatar.js b/commands/misc/avatar.js index ca5d4a7..3ef78c8 100644 --- a/commands/misc/avatar.js +++ b/commands/misc/avatar.js @@ -26,7 +26,7 @@ module.exports = { .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) if (!options.vsmall) {avem.setTimestamp();} - return message.channel.send(avem); + return message.channel.send({embeds: [avem]}); } catch {return message.reply("Hmm, there seems to have been an error while I tried to show you that user's avatar.");} } }; \ No newline at end of file diff --git a/commands/misc/commands.js b/commands/misc/commands.js index 02b8302..8b6d295 100644 --- a/commands/misc/commands.js +++ b/commands/misc/commands.js @@ -20,6 +20,6 @@ module.exports = { .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp(); categories.forEach(category => ce.addField(category, Array.from(client.commands.values()).filter(command => command.meta ? command.meta.category === category : category === "Uncategorized").map(cmd => `\`${cmd.name}\``).join(', '))); - return message.channel.send(ce); + return message.channel.send({embeds: [ce]}); } }; \ No newline at end of file diff --git a/commands/misc/emoji.js b/commands/misc/emoji.js index e2b23d2..8f56ad4 100644 --- a/commands/misc/emoji.js +++ b/commands/misc/emoji.js @@ -74,13 +74,13 @@ module.exports = { } else { let page = ''; for (let i = 0; i < lookup.size; i++) {page += `<${emotes[i].animated ? 'a' : ''}:${emotes[i].name}:${emotes[i].id}> \`:${emotes[i].name}:\` -> ${emotes[i].id}\n`;} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`Emoji Lookup Results - ${lookup.size}`) .setDescription(page) .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); } } let name; let id; let animated; let url; @@ -114,7 +114,7 @@ module.exports = { .setTimestamp(); if (access) {finEm.setThumbnail(client.emojis.cache.get(id).guild.iconURL({size: 1024}));} if (access && client.emojis.cache.get(id).guild.members.cache.has(message.author.id) && client.emojis.cache.get(id).guild.id !== (message.guild ? message.guild.id : 1)) {finEm.addField("Server", `You're in the server this emoji is from: **${client.emojis.cache.get(id).guild.name}**`);} - return message.channel.send(finEm); + return message.channel.send({embeds: [finEm]}); } catch { return message.channel.send("There was an error getting info for that emoji. You may not have given a valid emoji, or the ID you gave doesn't lead to a real emoji."); } diff --git a/commands/misc/help.js b/commands/misc/help.js index 6f25bd9..934ad03 100644 --- a/commands/misc/help.js +++ b/commands/misc/help.js @@ -54,7 +54,7 @@ module.exports = { if (pages.length > 1) { let help = new Pagination(message.channel, pages, message, client, true); return await help.start({endTime: 120000, user: message.author.id}); - } else {return message.channel.send(pages[0].setFooter("Natsuki", client.user.avatarURL()).setTimestamp());} + } else {return message.channel.send({embeds: [pages[0].setFooter("Natsuki", client.user.avatarURL()).setTimestamp()]});} } else { let command; if (client.commands.has(args[0])) {command = client.commands.get(args[0]);} diff --git a/commands/misc/info.js b/commands/misc/info.js index ff8dba5..5dd33a0 100644 --- a/commands/misc/info.js +++ b/commands/misc/info.js @@ -18,17 +18,18 @@ module.exports = { let botData = await require('../../models/bot').findOne({finder: 'lel'}); let user = await UserData.findOne({uid: message.author.id}); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor("About Me!", client.users.cache.get(client.developers[Math.floor(Math.random() * client.developers.length)]).avatarURL()) .setThumbnail(client.user.avatarURL({size: 1024})) .setDescription(`I am created by WubzyGD#8766 and Slushie#1234 - a pair conveniently known as NatsukiDev - in JavaScript/Discord.js!\n\nI'm a powerful all-purpose bot with everything you could want or need, and I have my own set of unique skills that you won't find anywhere else ^^`) .addField("Presence", `I'm currently in **${client.guilds.cache.size}** servers, and I'm watching over approximately **${client.users.cache.size}** people!`) - .addField("Restarts", botData.restarts, true) + .addField("Restarts", `${botData.restarts}`, true) .addField("Commands Executed", `${botData.commands}${user ? `\nYou: **${user.commands}** | **${Math.floor((user.commands / botData.commands) * 100)}%**` : ''}`, true) .addField("Last Restart", moment(botData.lastRestart).fromNow(), true) .addField("Mem", `\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB\` heap of \`${(process.memoryUsage().heapTotal / 1024 / 1024).toFixed(2)}MB\` allocated. | **${Math.floor((process.memoryUsage().heapUsed / process.memoryUsage().heapTotal) * 100)}%**\nTotal RAM: \`${(os.totalmem() / 1024 / 1024 / 1024).toFixed(2)}GB\` | Free RAM: \`${(os.freemem() / 1024 / 1024 / 1024).toFixed(2)}GB\``, true) .setColor("c375f0") .setFooter("Natsuki") - .setTimestamp()); + .setTimestamp() + ]}); } }; \ No newline at end of file diff --git a/commands/misc/ingorear.js b/commands/misc/ingorear.js index a0fd217..a9e854f 100644 --- a/commands/misc/ingorear.js +++ b/commands/misc/ingorear.js @@ -9,14 +9,14 @@ module.exports = { meta: { category: 'Misc', description: "Stop auto responses from being sent to a specific channel.", - syntax: '`ignorear [#channel|channelID]`', + syntax: '`ignorear [#channel|channelId]`', extra: null, guildOnly: true }, help: new Discord.MessageEmbed() .setTitle("Help -> AR Ignoring") .setDescription("Provide a channel (or don't to use the current channel) to be voided from auto-responses, that way the responses won't send in places you don't want them to.") - .addField("Syntax", "`[#channel|channelID]` - channel is optional."), + .addField("Syntax", "`[#channel|channelId]` - channel is optional."), async execute(message, msg, args, cmd, prefix, mention, client) { const tg = await GuildData.findOne({gid: message.guild.id}); if ((!tg || !tg.staffrole || !tg.staffrole.length || !message.member.roles.cache.has(tg.staffrole) && !message.member.permissions.has("ADMINISTRATOR"))) {return message.channel.send("You must have the staff role or be an administrator in this server in order to edit AR settings.");} diff --git a/commands/misc/invite.js b/commands/misc/invite.js index 67ad350..28c92b2 100644 --- a/commands/misc/invite.js +++ b/commands/misc/invite.js @@ -11,13 +11,13 @@ module.exports = { }, help: "Shows you my invite and support server invite", async execute(message, msg, args, cmd, prefix, mention, client) { - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("My links!") .setThumbnail(client.user.avatarURL({size: 2048})) .setDescription("[Bot Invite](https://discord.com/oauth2/authorize?client_id=762701327431237644&scope=bot&permissions=1581116647)\n`->` Use this link to invite Natsuki to your server! This has all the required permissions in it that the I need to work, and it is not recommended that you change them. Doing so will make it so that some commands don't function properly or won't complete (I'll usually tell you when I'm missing a permission).\n\n[Support Server Invite](https://discord.gg/u9c2uD24wB)\n`->` Use this to join my support server! Here you can talk to the devs, suggest features, hang out with the community, get update alerts, report bugs/issues and get help, or just stop and say hi!") .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ); + ]}); } }; \ No newline at end of file diff --git a/commands/misc/mem.js b/commands/misc/mem.js index e7bcf6c..ec52520 100644 --- a/commands/misc/mem.js +++ b/commands/misc/mem.js @@ -12,10 +12,10 @@ module.exports = { }, help: "shows my memory usage stats", async execute(message, msg, args, cmd, prefix, mention, client) { - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("RAM Usage") .setDescription(`\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB\` heap of \`${(process.memoryUsage().heapTotal / 1024 / 1024).toFixed(2)}MB\` allocated. | **${Math.floor((process.memoryUsage().heapUsed / process.memoryUsage().heapTotal) * 100)}%**\nTotal RAM: \`${(os.totalmem() / 1024 / 1024 / 1024).toFixed(2)}GB\` | Free RAM: \`${(os.freemem() / 1024 / 1024 / 1024).toFixed(2)}GB\``) .setColor('c375f0') - ); + ]}); } }; \ No newline at end of file diff --git a/commands/misc/prefix.js b/commands/misc/prefix.js index cfe6504..9f17184 100644 --- a/commands/misc/prefix.js +++ b/commands/misc/prefix.js @@ -35,7 +35,7 @@ module.exports = { client.guildconfig.prefixes.set(message.guild.id, np); let upm = await message.reply("sure thing!"); await require('../../util/wait')(1750); - return upm.edit(new Discord.MessageEmbed() + return upm.edit({embeds: [new Discord.MessageEmbed() .setAuthor('Prefix updated!', message.author.avatarURL()) .setDescription(`New prefix: \`${np}\``) .addField('Auditing Admin', `<@${message.member.id}>`, true) @@ -43,6 +43,6 @@ module.exports = { .setColor('c375f0') .setFooter('Natsuki', client.user.avatarURL()) .setTimestamp() - ); + ]}); } }; \ No newline at end of file diff --git a/commands/misc/serverinfo.js b/commands/misc/serverinfo.js index 8e865bb..a023624 100644 --- a/commands/misc/serverinfo.js +++ b/commands/misc/serverinfo.js @@ -14,11 +14,11 @@ module.exports = { }, execute(message, msg, args, cmd, prefix, mention, client) { let now = new Date(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor("Server info", message.author.avatarURL()) .setTitle(message.guild.name) .setThumbnail(message.guild.iconURL({size: 2048})) - .setDescription(`Name: \`${message.guild.name}\`\n\nOwner: <@${message.guild.ownerID}>\nRegion: ${message.guild.region}\nIcon: [URL](${message.guild.iconURL({size: 2048})})`) + .setDescription(`Name: \`${message.guild.name}\`\n\nOwner: <@${message.guild.ownerId}>\nRegion: ${message.guild.region}\nIcon: [URL](${message.guild.iconURL({size: 2048})})`) .addField("Members", `${message.guild.members.cache.size}\n[${message.guild.members.cache.filter(m => !client.users.cache.get(m.id).bot).size} Humans | ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).bot).size} Bots]\n\nOnline: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "online").size} | Idle: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "idle").size} | Do not Disturb: ${message.guild.members.cache.filter(m => client.users.cache.get(m.id).presence.status === "dnd").size}`) .addField("Channels", `${message.guild.channels.cache.size}\n[${message.guild.channels.cache.filter(ch => ch.type === "text").size} Text | ${message.guild.channels.cache.filter(ch => ch.type === "voice").size} Voice]`, true) .addField("Roles", `${message.guild.roles.cache.size} (you have ${message.member.roles.cache.size})\nYour highest is <@&${message.member.roles.highest.id}>`, true) @@ -26,6 +26,6 @@ module.exports = { .setColor('c375f0') .setFooter("Natsuki") .setTimestamp() - ); + ]}); } }; \ No newline at end of file diff --git a/commands/misc/supportserver.js b/commands/misc/supportserver.js index e68e4a1..d3f40af 100644 --- a/commands/misc/supportserver.js +++ b/commands/misc/supportserver.js @@ -11,13 +11,13 @@ module.exports = { }, help: "Get an invite to Natsuki's support server!", async execute(message, msg, args, cmd, prefix, mention, client) { - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Sure thing!") .setThumbnail(client.user.avatarURL({size: 2048})) .setDescription("Join the server with [this link](https://discord.gg/u9c2uD24wB)!\n\n`->` Here you can talk to the devs, suggest features, hang out with the community, get update alerts, report bugs/issues and get help, or just stop and say hi!") .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ); + ]}); } }; \ No newline at end of file diff --git a/commands/misc/uptime.js b/commands/misc/uptime.js index 1a164de..3c897dc 100644 --- a/commands/misc/uptime.js +++ b/commands/misc/uptime.js @@ -17,12 +17,12 @@ module.exports = { help: "Shows my uptime, which is how long it's been since my last restart.", async execute(message, msg, args, cmd, prefix, mention, client) { const bot = await Bot.findOne({finder: 'lel'}); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Uptime") - .setDescription(moment.preciseDiff(moment(bot.lastRestart), moment())) + .setDescription(`${moment.preciseDiff(moment(bot.lastRestart), moment())}`) .setColor('c375f0') .setFooter("Natsuki") .setTimestamp() - ) + ]}) } }; \ No newline at end of file diff --git a/commands/misc/userinfo.js b/commands/misc/userinfo.js index e4486ce..df73b00 100644 --- a/commands/misc/userinfo.js +++ b/commands/misc/userinfo.js @@ -31,7 +31,7 @@ module.exports = { if (message.guild) { infoembed.addField('In Server Since', `${moment(person.joinedAt).fromNow()}${!moment(person.joinedAt).fromNow().includes('days') ? ` | ${Math.floor((new Date().getTime() - person.joinedAt.getTime()) / (60 * 60 * 24 * 1000))} days` : ''}\nMember for **${Math.round(((now.getTime() - new Date(message.member.joinedAt.getTime()).getTime()) / (new Date(message.guild.createdAt).getTime() - now.getTime())) * -100)}%** of server lifetime`, false) .addField('Roles', `**${person.roles.cache.size}** roles | [${person.roles.cache.size}/${message.guild.roles.cache.size}] - ${Math.round((person.roles.cache.size / message.guild.roles.cache.size) * 100)}%\nHighest: ${person.roles.highest ? `<@&${person.roles.highest.id}>` : 'No roles!'}`, true) - if (message.guild.owner.id === person.id) {infoembed.addField("Extra", "User is the server's owner!");} + if (message.guild.ownerId === person.id) {infoembed.addField("Extra", "User is the server's owner!");} else if (person.permissions.has("ADMINISTRATOR")) {infoembed.addField("Extra", "User is an admin! Watch out :eyes:");} } diff --git a/commands/moderation/ban.js b/commands/moderation/ban.js index 7716479..80f22ce 100644 --- a/commands/moderation/ban.js +++ b/commands/moderation/ban.js @@ -47,7 +47,7 @@ module.exports = { else {if (args[1] && !options.days /*&& (!options.notes || !options.notes.length)*/ && (!options.reason || !options.reason.length)) {args.shift(); reason = args.join(" ");}} if (reason && reason.length > 250) {return message.channel.send("I mean I get it, they pissed you off, but do you really need to give me that much info on why you're banning them? I can't keep track of all that!");} - return user.ban({reason: reason, days: typeof days === "number" ? days : 0}) + return message.guild.members.ban(user.id, {reason: reason, days: typeof days === "number" ? days : 0}) .then(async () => { /*let mh = await Mod.findOne({gid: message.guild.id}) || new Mod({gid: message.guild.id}); let mhcases = mh.cases; diff --git a/commands/moderation/checkwarnings.js b/commands/moderation/checkwarnings.js index c607f76..e7d5ab4 100644 --- a/commands/moderation/checkwarnings.js +++ b/commands/moderation/checkwarnings.js @@ -37,7 +37,7 @@ module.exports = { } if (cwc > 0) {ws += '*Plus ' + cwc + ' other warnings that have been cleared.*';} if (cwc === mh.warnings[user.id].length) {return message.reply("That user has no uncleared warnings.");} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("User Warnings") .setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024})) .setDescription(`For ${user.displayName}`) @@ -45,6 +45,6 @@ module.exports = { .setColor("c375f0") .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); } }; \ No newline at end of file diff --git a/commands/moderation/leave.js b/commands/moderation/leave.js index 578478e..d039659 100644 --- a/commands/moderation/leave.js +++ b/commands/moderation/leave.js @@ -37,13 +37,13 @@ module.exports = { tg.save(); tr.bindings.set('leave', args[2].toLowerCase()); tr.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Leave Channel/Message Updated") .setDescription(`This server's leave-notifying settings have been altered by ${message.author.tag}.\n\n**Channel**: <#${ch}>\n**Response Name**: \`${args[2].toLowerCase()}\``) .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ) + ]}) } if (['t', 'test'].includes(args[0].toLowerCase())) { @@ -60,13 +60,13 @@ module.exports = { tr.bindings.delete('leave'); tr.save(); } - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Leave Channel/Message Updated") .setDescription(`This server's leave-notifying settings have been altered by ${message.author.tag}.\n\n**Channel**: None`) .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); } } }; \ No newline at end of file diff --git a/commands/moderation/response.js b/commands/moderation/response.js index f2926f8..947423d 100644 --- a/commands/moderation/response.js +++ b/commands/moderation/response.js @@ -71,14 +71,14 @@ module.exports = { .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp(); if (hasBinding) {infoEmbed.addField("Server Bindings", bm);} - return message.channel.send(infoEmbed); + return message.channel.send({embeds: [infoEmbed]}); } if (['edit', 'e', 'm', 'modify'].includes(args[0].toLowerCase())) { let options = await getResponse(message, args[1]); if (!options) {return;} - } + return message.channel.send("Invalid argument! (Or it's one that isn't supported yet. Sorry.)"); return message.channel.send(`Syntax: \`${prefix}response \``); } diff --git a/commands/moderation/staffrole.js b/commands/moderation/staffrole.js index 25826e4..bb78605 100644 --- a/commands/moderation/staffrole.js +++ b/commands/moderation/staffrole.js @@ -41,7 +41,7 @@ module.exports = { tguild.save(); let upm = await message.reply("sure thing!"); await require('../../util/wait')(1750); - return upm.edit(new Discord.MessageEmbed() + return upm.edit({embeds: [new Discord.MessageEmbed() .setAuthor('Staff role updated!', message.author.avatarURL()) .setDescription(`<@&${tguild.staffrole}> can now edit my settings in this server.`) .addField('Auditing Admin', `<@${message.member.id}>`, true) @@ -49,7 +49,7 @@ module.exports = { .setColor('c375f0') .setFooter('Natsuki', client.user.avatarURL()) .setTimestamp() - ); + ]}); } } }; \ No newline at end of file diff --git a/commands/moderation/warn.js b/commands/moderation/warn.js index f37bdb6..f421d02 100644 --- a/commands/moderation/warn.js +++ b/commands/moderation/warn.js @@ -45,7 +45,7 @@ module.exports = { } if (cwc > 0) {ws += '*Plus ' + cwc + ' other warnings that have been cleared.*';} if (cwc === mh.warnings[user.id].length) {return message.reply("That user has no uncleared warnings.");} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("User Warnings") .setThumbnail(client.users.cache.get(user.id).avatarURL({size: 1024})) .setDescription(`For ${user.displayName}`) @@ -53,7 +53,7 @@ module.exports = { .setColor("c375f0") .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); } else if (['clear', 'e', 'empty'].includes(args[0].toLowerCase())) { diff --git a/commands/moderation/welcome.js b/commands/moderation/welcome.js index fa30f07..09e2537 100644 --- a/commands/moderation/welcome.js +++ b/commands/moderation/welcome.js @@ -37,13 +37,13 @@ module.exports = { tg.save(); tr.bindings.set('welcome', args[2].toLowerCase()); tr.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Welcome Channel/Message Updated") .setDescription(`This server's member-welcoming settings have been altered by ${message.author.tag}.\n\n**Channel**: <#${ch}>\n**Response Name**: \`${args[2].toLowerCase()}\``) .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ) + ]}) } if (['t', 'test'].includes(args[0].toLowerCase())) { @@ -60,13 +60,13 @@ module.exports = { tr.bindings.delete('welcome'); tr.save(); } - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Welcome Channel/Message Updated") .setDescription(`This server's member-welcoming settings have been altered by ${message.author.tag}.\n\n**Channel**: None`) .setColor('c375f0') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); } } }; \ No newline at end of file diff --git a/commands/social/bio.js b/commands/social/bio.js index 340b5e9..8252244 100644 --- a/commands/social/bio.js +++ b/commands/social/bio.js @@ -21,14 +21,14 @@ module.exports = { let person = args[1] ? args[1].match(/^<@(?:!?)(?:\d+)>$/) && message.mentions.users.first() ? message.mentions.users.first().id : message.guild && message.guild.members.cache.has(args[1]) ? args[1] : message.author.id : message.author.id; let pud = await UserData.findOne({uid: person}); if (!pud || !pud.bio || !pud.bio.length) {return message.reply(person === message.author.id ? "You don't have a bio set!" : "That user has no bio for me to show you!");} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`Bio for ${message.guild ? message.guild.members.cache.get(person).displayName : message.author.username}`) .setThumbnail(client.users.cache.get(person).avatarURL({size: 2048})) .setDescription(pud.bio) .setColor(pud.color && pud.color.length ? pud.color : 'c375f0') .setFooter('Natsuki', client.user.avatarURL()) .setTimestamp() - ); + ]}); } if (['s', 'set'].includes(args[0].toLowerCase())) { args.shift(); @@ -43,14 +43,14 @@ module.exports = { if (bio.length > 200) {return message.reply("Please keep your bio under 200 characters!");} tu.bio = bio; tu.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`Bio Set!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(tu.bio) .setColor(tu.color && tu.color.length ? tu.color : 'c375f0') .setFooter('Natsuki', client.user.avatarURL()) .setTimestamp() - ); + ]}); } if (['c', 'clear'].includes(args[0].toLowerCase())) { tu.bio = ''; diff --git a/commands/social/blush.js b/commands/social/blush.js index 9278378..f7ddbb7 100644 --- a/commands/social/blush.js +++ b/commands/social/blush.js @@ -15,11 +15,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'blush'}) ? await Saves.findOne({name: 'blush'}) : new Saves({name: 'blush'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} blushes UwU`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('ad0072') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/bonk.js b/commands/social/bonk.js index a049fae..bc61dbf 100644 --- a/commands/social/bonk.js +++ b/commands/social/bonk.js @@ -19,13 +19,13 @@ module.exports = { let savess = await Saves.findOne({name: 'bonk'}) ? await Saves.findOne({name: 'bonk'}) : new Saves({name: 'bonk'}); let saves = savess.saves; if (!args.length) { - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} needs a good bonk!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Give them one with \`${prefix}bonk @${message.member.displayName}\`!`) .setColor('dda0dd') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "I fucking dare you to hit me." );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -37,13 +37,13 @@ module.exports = { bonk.total++; bonk.markModified(`against.${mention.id}`); bonk.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} bonks ${message.guild.members.cache.get(mention.id).displayName}!...ouch! `, message.author.avatarURL()) .setDescription(`You've bonked them **${bonk.against[mention.id] === 1 ? 'once' : `${bonk.against[mention.id]} times!`}**`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('dda0dd') .setFooter(`${bonk.total} bonk${bonk.total === 1 ? '' : 's'} total`) - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/clearstatus.js b/commands/social/clearstatus.js index e449d41..0d884b9 100644 --- a/commands/social/clearstatus.js +++ b/commands/social/clearstatus.js @@ -21,6 +21,6 @@ module.exports = { tu.statustype = ''; tu.save(); require('../../util/siftstatuses')(client, message.author.id, true); - return message.reply("welcome back! I cleared your status.").then(m => {m.delete({timeout: 5000}).then(() => {if (message.guild && message.guild.me.permissions.has("DELETE_MESSAGES")) {message.delete().catch(() => {});}})}); + return message.reply("welcome back! I cleared your status.").then(m => {setTimeout(() => m.delete(), 5000); if (message.guild && message.guild.me.permissions.has("DELETE_MESSAGES")) {message.delete().catch(() => {});}}); } }; \ No newline at end of file diff --git a/commands/social/creampie.js b/commands/social/creampie.js index cb90e91..04f9c06 100644 --- a/commands/social/creampie.js +++ b/commands/social/creampie.js @@ -18,13 +18,13 @@ module.exports = { let saves = savess.saves; if (!args.length) { let name = message.guild ? message.member.displayName : message.author.username; - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${name} needs a creampie!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Help with their..ahem..problem..with \`${prefix}creampie @${name}\`!`) .setColor('fffdd0') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "Do. Not. Touch. Me." );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -33,11 +33,11 @@ module.exports = { if (message.author.id === mention.id) {return message.reply("You can't give yourself a creampie..weirdo.");} let name = message.guild ? message.member.displayName : message.author.username; let uname = message.guild.members.cache.get(mention.id).displayName; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives a massive creampie to ${message.guild.members.cache.get(mention.id).displayName}..Tasty!`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('fffdd0') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/cry.js b/commands/social/cry.js index 145e7ca..f9276b1 100644 --- a/commands/social/cry.js +++ b/commands/social/cry.js @@ -16,11 +16,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'cry'}) ? await Saves.findOne({name: 'cry'}) : new Saves({name: 'cry'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} is Crying!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('8d42f5') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/dance.js b/commands/social/dance.js index b32d226..35abd6b 100644 --- a/commands/social/dance.js +++ b/commands/social/dance.js @@ -16,11 +16,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'dance'}) ? await Saves.findOne({name: 'dance'}) : new Saves({name: 'dance'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} is dancing like there's no tomorrow!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('3A8ED5') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/dodge.js b/commands/social/dodge.js index a5e7a87..04b571e 100644 --- a/commands/social/dodge.js +++ b/commands/social/dodge.js @@ -16,11 +16,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'dodge'}) ? await Saves.findOne({name: 'dodge'}) : new Saves({name: 'dodge'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} dodged the attack!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('b2ac88') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/feed.js b/commands/social/feed.js index 5e67d3f..5904045 100644 --- a/commands/social/feed.js +++ b/commands/social/feed.js @@ -18,13 +18,13 @@ module.exports = { let saves = savess.saves; if (!args.length) { let name = message.guild ? message.member.displayName : message.author.username; - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${name} is hungry, why not feed them?`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Bless someone with some food with \`${prefix}feed @${name}\`!`) .setColor('bb0a1e') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "Sorry..I'm kinda full right now." );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -33,11 +33,11 @@ module.exports = { if (message.author.id === mention.id) {return message.reply("You can't feed yourself. **Starve.**");} let name = message.guild ? message.member.displayName : message.author.username; let uname = message.guild.members.cache.get(mention.id).displayName; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} feeds ${message.guild.members.cache.get(mention.id).displayName} a delicous treat!`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('fed8b1') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/fuck.js b/commands/social/fuck.js index 89cd07f..c700bb2 100644 --- a/commands/social/fuck.js +++ b/commands/social/fuck.js @@ -19,13 +19,13 @@ module.exports = { let savess = await Saves.findOne({name: 'fuck'}) ? await Saves.findOne({name: 'fuck'}) : new Saves({name: 'fuck'}); let saves = savess.saves; if (!args.length) { - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} is horny!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Show them some love with \`${prefix}fuck @${message.member.displayName}\`!`) .setColor('dda0dd') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "You can't bang me.......only Crescent can." );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -37,13 +37,13 @@ module.exports = { fuck.total++; fuck.markModified(`against.${mention.id}`); fuck.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} bangs ${message.guild.members.cache.get(mention.id).displayName}!...Kinky! `, message.author.avatarURL()) .setDescription(`You've banged them **${fuck.against[mention.id] === 1 ? 'once' : `${fuck.against[mention.id]} times!`}**`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('dda0dd') .setFooter(`${fuck.total} fuck${fuck.total === 1 ? '' : 's'} total`) - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/handhold.js b/commands/social/handhold.js index bc98f72..6ba8671 100644 --- a/commands/social/handhold.js +++ b/commands/social/handhold.js @@ -18,13 +18,13 @@ module.exports = { let saves = savess.saves; if (!args.length) { let name = message.guild ? message.member.displayName : message.author.username; - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${name} is feeling a little lonely. If only someone would hold their hand...`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Let them know you love them with \`${prefix}handhold @${name}\`!`) .setColor('328ba8') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "Yikes... I'm kinda germaphobic you know. Maybe try asking in a server?" );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -33,11 +33,11 @@ module.exports = { if (message.author.id === mention.id) {return message.reply("Holding your own hand... I mean it's possible? Same effect, though? Eh, not really.");} let name = message.guild ? message.member.displayName : message.author.username; let uname = message.guild.members.cache.get(mention.id).displayName; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} holds ${uname.endsWith('s') ? `${uname}'` : `${uname}'s`} hand!`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('d428a0') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/heal.js b/commands/social/heal.js index 1b8a558..e9e8503 100644 --- a/commands/social/heal.js +++ b/commands/social/heal.js @@ -18,13 +18,13 @@ module.exports = { let saves = savess.saves; if (!args.length) { let name = message.guild ? message.member.displayName : message.author.username; - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${name} needs healing!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Lend them some help with \`${prefix}heal @${name}\`!`) .setColor('ffc0cb') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "I am immortal, I don't need healing." );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -33,11 +33,11 @@ module.exports = { if (message.author.id === mention.id) {return message.reply("You can't heal yourself because....I SAID SO");} let name = message.guild ? message.member.displayName : message.author.username; let uname = message.guild.members.cache.get(mention.id).displayName; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} heals ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('ffc0cb') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/hug.js b/commands/social/hug.js index 4a7d3ac..bdad84e 100644 --- a/commands/social/hug.js +++ b/commands/social/hug.js @@ -19,13 +19,13 @@ module.exports = { let savess = await Saves.findOne({name: 'hug'}) ? await Saves.findOne({name: 'hug'}) : new Saves({name: 'hug'}); let saves = savess.saves; if (!args.length) { - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} needs a hug!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Show them some love with \`${prefix}hug @${message.member.displayName}\`!`) .setColor('c375f0') .setFooter('Natsuki', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "Sorry, but I'm a bot, and I can't hug you. Go into a server and ask for some hugs!" );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -37,13 +37,13 @@ module.exports = { hugs.total++; hugs.markModified(`against.${mention.id}`); hugs.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a hug!`, message.author.avatarURL()) .setDescription(`You've hugged them **${hugs.against[mention.id] === 1 ? 'once' : `${hugs.against[mention.id]} times!`}**`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('52c7bb') .setFooter(`${hugs.total} hug${hugs.total === 1 ? '' : 's'} total`) - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/kill.js b/commands/social/kill.js index 263ce7c..cf634a6 100644 --- a/commands/social/kill.js +++ b/commands/social/kill.js @@ -18,13 +18,13 @@ module.exports = { let saves = savess.saves; if (!args.length) { let name = message.guild ? message.member.displayName : message.author.username; - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${name} is feeling homicidal..watch out!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Brutally murder someone with \`${prefix}kill @${name}\`!`) .setColor('bb0a1e') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "You can't kill me..don't even try." );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -33,11 +33,11 @@ module.exports = { if (message.author.id === mention.id) {return message.reply("Uhhh no. Please don't try to hurt yourself..");} let name = message.guild ? message.member.displayName : message.author.username; let uname = message.guild.members.cache.get(mention.id).displayName; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} brutally murders ${message.guild.members.cache.get(mention.id).displayName}..Rest in Peace.`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('bb0a1e') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/kiss.js b/commands/social/kiss.js index b5bb670..00eaab6 100644 --- a/commands/social/kiss.js +++ b/commands/social/kiss.js @@ -19,13 +19,13 @@ module.exports = { let savess = await Saves.findOne({name: 'kiss'}) ? await Saves.findOne({name: 'kiss'}) : new Saves({name: 'kiss'}); let saves = savess.saves; if (!args.length) { - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} wants a kiss!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Give them a little kiss with \`${prefix}kiss @${message.member.displayName}\`!`) .setColor('328ba8') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "Sorry..my lips are for Crescent only!" );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -37,13 +37,13 @@ module.exports = { kiss.total++; kiss.markModified(`against.${mention.id}`); kiss.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a kiss!`, message.author.avatarURL()) .setDescription(`You've kissed them **${kiss.against[mention.id] === 1 ? 'once' : `${kiss.against[mention.id]} times!`}**`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('ac0f0f') .setFooter(`${kiss.total} kisse${kiss.total === 1 ? '' : 's'} total`) - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/laugh.js b/commands/social/laugh.js index 5f71610..73f4818 100644 --- a/commands/social/laugh.js +++ b/commands/social/laugh.js @@ -16,11 +16,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'laugh'}) ? await Saves.findOne({name: 'laugh'}) : new Saves({name: 'laugh'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} is dying of laughter!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('5eedc6') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/pat.js b/commands/social/pat.js index 5699daa..0b017d5 100644 --- a/commands/social/pat.js +++ b/commands/social/pat.js @@ -20,13 +20,13 @@ module.exports = { let savess = await Saves.findOne({name: 'pat'}) ? await Saves.findOne({name: 'pat'}) : new Saves({name: 'pat'}); let saves = savess.saves; if (!args.length) { - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} wants some pats!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Give them some with \`${prefix}pat @${message.member.displayName}\`!`) .setColor('c375f0') .setFooter('Natsuki', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "Sorry, but I'm only able to pat one person, and it's not you ^^" );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -38,13 +38,13 @@ module.exports = { pats.total++; pats.markModified(`against.${mention.id}`); pats.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} pats ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL()) .setDescription(`You've given them **${pats.against[mention.id]}** pat${pats.against[mention.id] === 1 ? '' : 's'}!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('52c7bb') .setFooter(`${pats.total} pat${pats.total === 1 ? '' : 's'} total`) - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/run.js b/commands/social/run.js index 4b98d7c..73ab4a3 100644 --- a/commands/social/run.js +++ b/commands/social/run.js @@ -16,11 +16,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'run'}) ? await Saves.findOne({name: 'run'}) : new Saves({name: 'run'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} ran away!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('add8e6') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/simp.js b/commands/social/simp.js index 94b2a6e..3f4f533 100644 --- a/commands/social/simp.js +++ b/commands/social/simp.js @@ -18,14 +18,14 @@ module.exports = { let saves = savess.saves; if (!args.length) { let name = message.guild ? message.member.displayName : message.author.username; - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${name} is feeling lonely..maybe you should simp for them!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Fall madly in love with someone with \`${prefix}simp @${name}\`!`) .setColor('ffb6c1') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() - : "Only my mommy Crescent can simp for me." + .setTimestamp()]} + : "Nobody simps for me. That's just weird. Be weird to someone else." );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { if (!message.guild) {return message.reply("Only my mommy Crescent can simp for me.");} @@ -33,11 +33,11 @@ module.exports = { if (message.author.id === mention.id) {return message.reply("You can't simp for yourself you lonely fuck.");} let name = message.guild ? message.member.displayName : message.author.username; let uname = message.guild.members.cache.get(mention.id).displayName; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} falls madly in love with ${message.guild.members.cache.get(mention.id).displayName}..what a simp.`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('ffb6c1') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/sip.js b/commands/social/sip.js index ee451b3..52b56a9 100644 --- a/commands/social/sip.js +++ b/commands/social/sip.js @@ -15,11 +15,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'sip'}) ? await Saves.findOne({name: 'sip'}) : new Saves({name: 'sip'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} takes a sip...`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('69310d') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/smile.js b/commands/social/smile.js index d59740c..aea8b25 100644 --- a/commands/social/smile.js +++ b/commands/social/smile.js @@ -16,11 +16,11 @@ module.exports = { async execute(message, msg, args, cmd, prefix, mention, client) { let savess = await Saves.findOne({name: 'smile'}) ? await Saves.findOne({name: 'smile'}) : new Saves({name: 'smile'}); let saves = savess.saves; - if (!args.length) {return message.channel.send(new Discord.MessageEmbed() + if (!args.length) {return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(`${message.guild ? message.member.displayName : message.author.username} has a big smile on their face!`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('00cd00') - );} + ]});} if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} let tu = await UserData.findOne({uid: message.author.id}); diff --git a/commands/social/spank.js b/commands/social/spank.js index d0c2f87..beed4d8 100644 --- a/commands/social/spank.js +++ b/commands/social/spank.js @@ -28,13 +28,13 @@ module.exports = { spanks.total++; spanks.markModified(`against.${mention.id}`); spanks.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} gives ${message.guild.members.cache.get(mention.id).displayName} a spank!`, message.author.avatarURL()) .setDescription(`You've spanked them **${spanks.against[mention.id] === 1 ? 'once' : `${spanks.against[mention.id]} times!`}**`) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('52c7bb') .setFooter(`${spanks.total} spank${spanks.total === 1 ? '' : 's'} total`) - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/social/wink.js b/commands/social/wink.js index 2d56c1f..a6dc7c1 100644 --- a/commands/social/wink.js +++ b/commands/social/wink.js @@ -18,13 +18,13 @@ module.exports = { let saves = savess.saves; if (!args.length) { let name = message.guild ? message.member.displayName : message.author.username; - return message.channel.send(message.guild ? new Discord.MessageEmbed() + return message.channel.send(message.guild ? {embeds: [new Discord.MessageEmbed() .setTitle(`${name} is feeling flirty, maybe you should give them a wink!`) .setThumbnail(message.author.avatarURL({size: 2048})) .setDescription(`Give them a little wink with \`${prefix}wink @${name}\`!`) .setColor('8a2be2') .setFooter('Luno', client.user.avatarURL()) - .setTimestamp() + .setTimestamp()]} : "W-why are you winking at me privately..do it in a server! " );} if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { @@ -33,11 +33,11 @@ module.exports = { if (message.author.id === mention.id) {return message.reply("Wow...you must really have a big ego to wink at yourself...");} let name = message.guild ? message.member.displayName : message.author.username; let uname = message.guild.members.cache.get(mention.id).displayName; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(`${message.guild ? message.member.displayName : message.author.username} winks at ${message.guild.members.cache.get(mention.id).displayName}!`, message.author.avatarURL()) .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) .setColor('8a2be2') - ); + ]}); } if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} diff --git a/commands/utility/coinflip.js b/commands/utility/coinflip.js index bd0efde..03242e8 100644 --- a/commands/utility/coinflip.js +++ b/commands/utility/coinflip.js @@ -51,6 +51,6 @@ module.exports = { if (options.against && options.against.length) {coinEmbed.addField("Against", `Coin flipped against ${options.against}`, true);} if (calls) {coinEmbed.addField("Call", `${message.guild ? message.member.displayName : message.author.username} called **${calls['1']}** ${options.against && options.against.length ? `(leaving ${options.against} with **${calls['2']}**)` : ''} and **${(calls['1'] === 'Heads' && flip === 1) || (calls['2'] === 'Heads' && flip === 2) ? 'was' : "wasn't"}** correct!`);} - return message.channel.send(coinEmbed); + return message.channel.send({embeds: [coinEmbed]}); } }; \ No newline at end of file diff --git a/commands/utility/monitor.js b/commands/utility/monitor.js index 7ae15ff..1d7ee55 100644 --- a/commands/utility/monitor.js +++ b/commands/utility/monitor.js @@ -67,7 +67,7 @@ module.exports = { if (thm) {emb.addField("Total Messages", tm.messages.total, true);} if (tv) {emb.addField("Total Voice Hours", (tm.voice.total / 60).toFixed(1), true);} - return message.channel.send(emb); + return message.channel.send({embeds: [emb]}); } if (['s', 'setup', 'config', 'configure', 'enable', 'e'].includes(args[0].toLowerCase())) { diff --git a/commands/utility/randnum.js b/commands/utility/randnum.js index 8f17250..8a9697e 100644 --- a/commands/utility/randnum.js +++ b/commands/utility/randnum.js @@ -40,12 +40,12 @@ module.exports = { for (let i=0; i 1 ? 's' : ''}`) .setDescription(res) .setColor('c375f0') .setFooter('Natsuki', client.user.avatarURL()) .setTimestamp() - ); + ]}); } }; \ No newline at end of file diff --git a/commands/utility/robemote.js b/commands/utility/robemote.js index 304210b..a6f15ef 100644 --- a/commands/utility/robemote.js +++ b/commands/utility/robemote.js @@ -15,20 +15,20 @@ module.exports = { .setDescription("Takes an emoji and adds it to this server, if you have the permissions.") .addField("Syntax", "`robemote [emoji] [name]`"), async execute(message, msg, args, cmd, prefix, mention, client) { - if (!message.member.permissions.has("MANAGE_EMOJIS")) {return message.channel.send("You must have permissions to manage emoji in this server.");} - if (!message.guild.me.permissions.has("MANAGE_EMOJIS")) {return message.channel.send("I don't have permissions to manage emoji in this server, so I can't add any emotes.");} + if (!message.member.permissions.has("MANAGE_EMOJIS_AND_STICKERS")) {return message.channel.send("You must have permissions to manage emoji in this server.");} + if (!message.guild.me.permissions.has("MANAGE_EMOJIS_AND_STICKERS")) {return message.channel.send("I don't have permissions to manage emoji in this server, so I can't add any emotes.");} if (!args.length) { - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle("Add Emoji") .setDescription("React to this message with the emoji you want to be added to the server.") .setFooter("This will time out in 60 seconds") .setColor('c375f0') - ).then(m => { + ]}).then(m => { const rc = m.createReactionCollector((r, u) => u.id === message.author.id, {time: 60000}); rc.on('collect', r => { rc.stop(); return message.guild.emojis.create(`https://cdn.discordapp.com/emojis/${r.emoji.id}`, r.emoji.name) - .then(e => message.channel.send(new Discord.MessageEmbed() + .then(e => message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.member.displayName, message.author.avatarURL()) .setTitle("Emoji Created!") .setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`) @@ -36,7 +36,7 @@ module.exports = { .setFooter("Natsuki") .setColor('c375f0') .setTimestamp() - ).then(() => require('../../util/ask')(message, "If you'd like to rename the emoji, send the name now. Otherwise, wait 30 seconds and nothing will happen.", 30000, false, false) + ]}).then(() => require('../../util/ask')(message, "If you'd like to rename the emoji, send the name now. Otherwise, wait 30 seconds and nothing will happen.", 30000, false, false) .then(res => { if (res) { e.setName(res) @@ -46,7 +46,7 @@ module.exports = { }) )).catch(() => message.channel.send(" There was an error trying to create that emoji. I might not have permissions to add emoji, or the server may be at its emoji limit.")); }); - rc.on('end', collected => {if (collected.size) {return m.delete().catch(() => {});} else {m.edit(m.embeds[0].setDescription(m.embeds[0].description + '\n\n*Timed out!*')).catch(() => {});}}); + rc.on('end', collected => {if (collected.size) {return m.delete().catch(() => {});} else {m.edit({embeds: [m.embeds[0].setDescription(m.embeds[0].description + '\n\n*Timed out!*')]}).catch(() => {});}}); }); } @@ -60,7 +60,7 @@ module.exports = { ? `https://cdn.discordapp.com/emojis/${args[0]}` : args[0], args[1] || args[0].split(':')[1] - ).then(e => message.channel.send(new Discord.MessageEmbed() + ).then(e => message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.member.displayName, message.author.avatarURL()) .setTitle("Emoji Created!") .setThumbnail(`https://cdn.discordapp.com/emojis/${e.id}${e.animated ? '.gif': ''}`) @@ -68,7 +68,7 @@ module.exports = { .setFooter("Natsuki") .setColor('c375f0') .setTimestamp() - )) + ]})) .catch(() => message.channel.send(" There was an error trying to create that emoji. I might not have permissions to add emoji, the server may be at its emoji limit, you may have given a bad URL, not specified the emoji properly, or the file type in the URL you gave is invalid.")); } }; \ No newline at end of file diff --git a/commands/utility/todo.js b/commands/utility/todo.js index 1cff85b..2797674 100644 --- a/commands/utility/todo.js +++ b/commands/utility/todo.js @@ -47,22 +47,22 @@ module.exports = { await td.save(); let totalItems = 0; Object.keys(td.lists).forEach(l => totalItems += td.lists[l].length); - return message.channel.send(`Your list was successfully created!`, new Discord.MessageEmbed() + return message.channel.send({content: `Your list was successfully created!`, embeds: [new Discord.MessageEmbed() .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setTitle(`List Created: ${ln}`) .setDescription(`You now have **${Object.keys(td.lists).length}** lists (including your personal list) with a total of **${totalItems} items**.`) .addField("Managing", `-To add to your new list, use \`${prefix}todo list ${ln} add\`.\n-To view its items, use \`${prefix}todo list ${ln} view\`.\n-To delete this list, use \`${prefix}todo list delete ${ln}\`.`) .setColor("c375f0") .setFooter("Natsuki") - .setTimestamp() - ); + .setTimestamp()] + }); } else if (['d', 'delete', 'r', 'remove'].includes(args[0].toLowerCase())) { if (!td || td.lists.length === 1) {return message.channel.send("You don't have any lists made, or you only have a quick list.");} let ln; if (!args[1]) { let s = ``; let lists = Object.keys(td.lists); let i; for (i = 0; i < lists.length; i++) {if (lists[i] === 'quick') {continue;} s += `**${i}**. \`${lists[i]}\` - ${td.lists[lists[i]].length} ${td.lists[lists[i]].length === 1 ? 'item' : 'items'}\n`;} - message.channel.send(new Discord.MessageEmbed() + message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setTitle(`Your ToDo lists`) .setDescription(s) @@ -70,9 +70,9 @@ module.exports = { .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ); + ]}); let collected; - try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60000, max: 1});} + try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60000, max: 1});} catch {return message.channel.send("This question has timed out. Please try again!");} ln = collected.first().content.trim(); } else {ln = args[1].trim().toLowerCase();} @@ -90,14 +90,14 @@ module.exports = { let s = ``; let lists = Object.keys(td.lists); let i; for (i = 0; i < lists.length; i++) {if (lists[i] === 'quick') {continue;} s += `**${i}**. \`${lists[i]}\` - ${td.lists[lists[i]].length} ${td.lists[lists[i]].length === 1 ? 'item' : 'items'}\n`;} s += `\nPlus ${td.lists.quick.length} items in your quick list.`; - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setTitle(`Your ToDo lists`) .setDescription(s) .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ); + ]}); } else if (td && Object.keys(td.lists).includes(args[0].trim().toLowerCase())) { list = args[0].trim().toLowerCase(); args.shift(); @@ -115,11 +115,11 @@ module.exports = { td.lists[list].push(item); td.markModified(`lists.${list}`); td.save(); - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor("To-Do Added!", message.author.avatarURL()) .setDescription(`${item}\n\`->\` In ${list === 'quick' ? "your personal quick list" : `list \`${list}\``}`) .setColor('c375f0') - ); + ]}); } else if (['v', 'view'].includes(args[0].toLowerCase())) { @@ -131,14 +131,14 @@ module.exports = { let s = ''; let n = 0; let i; for (i of td.lists[list]) {n++; s += `**${n}.** ${i}\n`;} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setTitle(list === "quick" ? "Personal Quick List" : `List: "${list}"`) .setDescription(s) .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ).catch(() => { + ]}).catch(() => { client.users.fetch(client.developers[0]).then(wubzy => wubzy.send("Hey stupid, someone got the todo length bug. Fix it.")); return message.channel.send("There was an error displaying your list. It might have too many characters. This bug has been reported to the developers and will be fixed soon! Join the support server for updates."); }); @@ -146,14 +146,14 @@ module.exports = { if (isNaN(Number(args[1])) && !['last', 'l'].includes(args[1].toLowerCase().trim())) {return message.channel.send("You didn't give me a number!");} let id = ['last', 'l'].includes(args[1].toLowerCase().trim()) ? td.lists[list].length : Number(args[1]); if (id < 1 || id > td.lists[list].length) {return message.channel.send("Your number was either below 1 or doesn't have a list item to match it.");} - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`) .setDescription(`List item **#${id}**\n\`->\` ${td.lists[list][id-1]}`) .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ); + ]}); } } @@ -166,7 +166,7 @@ module.exports = { if (!args[1]) { let s = ''; let n = 0; let i; for (i of td.lists[list]) {n++; s += `**${n}.** ${i}\n`;} - await message.channel.send(new Discord.MessageEmbed() + await message.channel.send({embeds: [new Discord.MessageEmbed() .setAuthor(message.guild ? message.member.displayName : message.author.username, message.author.avatarURL()) .setTitle(list === "quick" ? "Personal Quick List" : `List "${list}"`) .setDescription(s) @@ -174,8 +174,8 @@ module.exports = { .setColor("c375f0") .setFooter("Natsuki") .setTimestamp() - ); - try {collected = await message.channel.awaitMessages(m => m.author.id === message.author.id, {errors: ['time'], time: 60000, max: 1});} + ]}); + try {collected = await message.channel.awaitMessages({filter: m => m.author.id === message.author.id, errors: ['time'], time: 60000, max: 1});} catch {return message.channel.send("This question has timed out. Please try again!");} collected = collected.first().content.trim(); } else {collected = args[1];} diff --git a/events/channelCreate.js b/events/channelCreate.js index f3e71a7..4d6424c 100644 --- a/events/channelCreate.js +++ b/events/channelCreate.js @@ -4,13 +4,13 @@ module.exports = (client, channel) => { if (channel.guild) { let ts = client.guildconfig.logs.has(channel.guild.id) && client.guildconfig.logs.get(channel.guild.id).has('ch') ? client.guildconfig.logs.get(channel.guild.id).get('ch') : null; if (ts) {if (channel.guild.channels.cache.has(ts) && channel.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) { - channel.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() + channel.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed() .setTitle("New Channel") .setDescription(`<#${channel.id}> || **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`) .setColor('936b30') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); }} } }; \ No newline at end of file diff --git a/events/channelDelete.js b/events/channelDelete.js index 19ccab8..0a8aa2b 100644 --- a/events/channelDelete.js +++ b/events/channelDelete.js @@ -3,12 +3,12 @@ const Discord = require('discord.js'); module.exports = (client, channel) => { let ts = client.guildconfig.logs.has(channel.guild.id) && client.guildconfig.logs.get(channel.guild.id).has('ch') ? client.guildconfig.logs.get(channel.guild.id).get('ch') : null; if (ts) {if (channel.guild.channels.cache.has(ts) && channel.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) { - channel.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() + channel.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed() .setTitle("Channel Deleted") .setDescription(`Name: **#${channel.name}**${channel.parent && channel.parent.name ? `\nCategory: **${channel.parent.name}**` : ''}`) .setColor('936b30') .setFooter("Natsuki", client.user.avatarURL()) .setTimestamp() - ); + ]}); }} }; \ No newline at end of file diff --git a/events/guildCreate.js b/events/guildCreate.js index 586be59..b2ca907 100644 --- a/events/guildCreate.js +++ b/events/guildCreate.js @@ -14,15 +14,15 @@ module.exports = async (client, guild) => { botData.servers_all += 1; botData.save(); - client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send(new Discord.MessageEmbed() - .setAuthor('New Guild Added', client.users.cache.get(guild.owner.id).avatarURL()) + client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send({embeds: [new Discord.MessageEmbed() + .setAuthor('New Guild Added', client.users.cache.get(guild.ownerId).avatarURL()) .setTitle(guild.name) .setThumbnail(guild.iconURL({size: 2048})) - .addField('Owner', client.users.cache.get(guild.owner.id).tag, true) + .addField('Owner', client.users.cache.get(guild.ownerId).tag, true) .addField('Members', guild.members.cache.size, true) .addField('Position', `Server #${client.guilds.cache.size}`, true) .setColor('55ff7f') .setFooter('Natsuki') .setTimestamp() - ); + ]}); }; \ No newline at end of file diff --git a/events/guildDelete.js b/events/guildDelete.js index 584fe96..fa23f35 100644 --- a/events/guildDelete.js +++ b/events/guildDelete.js @@ -13,15 +13,15 @@ module.exports = async (client, guild) => { botData.servers = client.guilds.cache.size; botData.save(); - client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send(new Discord.MessageEmbed() - .setAuthor('Server Lost', client.users.cache.get(guild.owner.id).avatarURL()) + client.guilds.cache.get('762707532417335296').channels.cache.get('766031709866557471').send({embeds: [new Discord.MessageEmbed() + .setAuthor('Server Lost', client.users.cache.get(guild.ownerId).avatarURL()) .setTitle(guild.name) .setThumbnail(guild.iconURL({size: 2048})) - .addField('Owner', client.users.cache.get(guild.owner.id).tag, true) + .addField('Owner', client.users.cache.get(guild.ownerId).tag, true) .addField('Members', guild.members.cache.size, true) .addField('Position', `Server #${client.guilds.cache.size + 1}`, true) .setColor('ff5d6a') .setFooter('Natsuki') .setTimestamp() - ); + ]}); }; \ No newline at end of file diff --git a/events/message.js b/events/messageCreate.js similarity index 92% rename from events/message.js rename to events/messageCreate.js index 2ea41cc..f70e423 100644 --- a/events/message.js +++ b/events/messageCreate.js @@ -8,9 +8,15 @@ const AR = require('../models/ar'); const LXP = require('../models/localxp'); const Monitors = require('../models/monitor'); +const channelTypes = ["GUILD_MESSAGE", "DM", "GUILD_NEWS_THREAD", "GUILD_PRIVATE_THREAD", "GUILD_PUBLIC_THREAD", "GUILD_NEWS", "GROUP_DM", "GUILD_STORE"]; + module.exports = async (client, message) => { if (message.author.bot) {return undefined;} - if (message.channel.type !== 'text' && message.channel.type !== 'dm') {return undefined;} + + if (message.partial) {await message.fetch();} + if (message.channel.partial) {await message.channel.fetch();} + + if (!channelTypes.includes(message.channel.type)) {return undefined;} //if (message.channel.type == "text") {if (settings[message.guild.id]) {prefix = settings[message.guild.id].prefix;};}; @@ -30,10 +36,10 @@ module.exports = async (client, message) => { if (message.content.includes("@everyone")) {return;} if ([`<@${client.user.id}>`, `<@!${client.user.id}>`].includes(msg)) { - return message.channel.send(new Discord.MessageEmbed() + return message.channel.send({embeds: [new Discord.MessageEmbed() .setTitle(["Yep, that's me!", "^^ Hiya!", "Oh, hi there!", "Sure, what's up?", "How can I help!", "Natsuki is busy, but I can take a message for you!", "Teehee that's me!", "You were looking for Natsuki Tivastl, right?", "Sure! What's up?", "Pong!"][Math.floor(Math.random() * 10)]) .setDescription(`My prefix here is \`${prefix}\`. Use \`${prefix}help\` to see what commands you can use.`) - .setColor('c375f0')); + .setColor('c375f0')]}); } if (mention && message.guild) {require('../util/mention')(message, msg, args, cmd, prefix, mention, client);} @@ -43,7 +49,7 @@ module.exports = async (client, message) => { tu.statustype = ''; tu.save(); require('../util/siftstatuses')(client, message.author.id, true); - message.reply('Hey there! You asked me to clear your status when you send a message next, so I went ahead and did that for you.').then(m => {m.delete({timeout: 5000});}); + message.reply('Hey there! You asked me to clear your status when you send a message next, so I went ahead and did that for you.').then(m => {setTimeout(() => {m.delete();}, 5000);}); }}); if (message.guild && client.misc.cache.ar.has(message.guild.id) && client.misc.cache.ar.get(message.guild.id).includes(msg.trim()) && !(client.misc.cache.arIgnore.has(message.guild.id) && client.misc.cache.arIgnore.get(message.guild.id).includes(message.channel.id))) { @@ -96,9 +102,8 @@ module.exports = async (client, message) => { } if (!command) {let trigger; for (trigger of client.responses.triggers) {if (await trigger[1](message, msg, args, cmd, prefix, mention, client)) {await client.responses.commands.get(trigger[0]).execute(message, msg, args, cmd, prefix, mention, client); break;}} return;} - message.channel.startTyping(); - await wait(800); - message.channel.stopTyping(); + message.channel.sendTyping(); + await wait(500); if (command.meta && command.meta.guildOnly && !message.guild) {return message.channel.send("You must be in a server to use this command!");} require('../util/oncommand')(message, msg, args, cmd, prefix, mention, client); if (client.misc.loggers.cmds) {client.misc.loggers.cmds.send(`${chalk.gray("[CMDL]")} >> ${chalk.white("Command")} ${chalk.blue(command.name)} ${message.guild ? `|| ${chalk.blue("Guild ID: ")} ${chalk.blueBright(message.guild.id)}` : ''} || ${chalk.blue("User ID: ")} ${chalk.blueBright(message.author.id)}`);} diff --git a/events/messageDelete.js b/events/messageDelete.js index b9e8b6a..c81956e 100644 --- a/events/messageDelete.js +++ b/events/messageDelete.js @@ -1,7 +1,9 @@ const Discord = require('discord.js'); +const channelTypes = ["GUILD_MESSAGE", "DM", "GUILD_NEWS_THREAD", "GUILD_PRIVATE_THREAD", "GUILD_PUBLIC_THREAD", "GUILD_NEWS", "GROUP_DM", "GUILD_STORE"]; + module.exports = async (client, message) => { - if (message.channel.type !== "text") {return;} + if (!channelTypes.includes(message.channel.type)) {return;} //if (!Object.keys(snipe.delete).includes(message.guild.id)) {snipe.delete[message.guild.id] = {};}; //snipe.delete[message.guild.id][message.channel.id] = message; @@ -22,6 +24,6 @@ module.exports = async (client, message) => { } if (as.length) {mde.addField('Attachments', as);} } - message.guild.channels.cache.get(ts).send(mde).catch(() => {}); + message.guild.channels.cache.get(ts).send({embeds: [mde]}).catch(() => {}); }} } \ No newline at end of file diff --git a/events/messageReactionAdd.js b/events/messageReactionAdd.js index 6555851..84f7b10 100644 --- a/events/messageReactionAdd.js +++ b/events/messageReactionAdd.js @@ -27,10 +27,10 @@ module.exports = async (client, reaction, user) => { if (reaction.message.attachments.size) {starEmbed.setImage(reaction.message.attachments.first().url);} if (Object.keys(sd.stars).includes(reaction.message.id)) { let starMessage = await reaction.message.guild.channels.cache.get(tg.starchannel).messages.fetch(sd.stars[reaction.message.id]); - if (starMessage) {await starMessage.edit(starEmbed);} + if (starMessage) {await starMessage.edit({embeds: [starEmbed]});} } else { if (reaction.count < tg.starreq) {return;} - let starEmbedMessage = await reaction.message.guild.channels.cache.get(tg.starchannel).send(starEmbed); + let starEmbedMessage = await reaction.message.guild.channels.cache.get(tg.starchannel).send({embeds: [starEmbed]}); sd.stars[reaction.message.id] = starEmbedMessage.id; sd.starCount[reaction.message.author.id] = sd.starCount[reaction.message.author.id] ? sd.starCount[reaction.message.author.id] + 1 : 1; sd.serverStarCount += 1; diff --git a/events/messageUpdate.js b/events/messageUpdate.js index 89a942b..213b049 100644 --- a/events/messageUpdate.js +++ b/events/messageUpdate.js @@ -1,7 +1,9 @@ const Discord = require('discord.js'); +const channelTypes = ["GUILD_MESSAGE", "DM", "GUILD_NEWS_THREAD", "GUILD_PRIVATE_THREAD", "GUILD_PUBLIC_THREAD", "GUILD_NEWS", "GROUP_DM", "GUILD_STORE"]; + module.exports = async (client, oldM, newM) => { - if (oldM.channel.type != "text") {return;}; + if (!channelTypes.includes(oldM.channel.type)) {return;}; if (oldM.author.bot) {return;} if (oldM.deleted) {return;} //if (!Object.keys(snipe.edit).includes(oldM.guild.id)) {snipe.edit[oldM.guild.id] = {};}; @@ -17,6 +19,6 @@ module.exports = async (client, oldM, newM) => { .addField("New Message", "`-> `" + newM.content.toString()) .setColor('8034eb').setFooter("Natsuki", client.user.avatarURL()).setTimestamp(); if (newM.attachments.size && ['.png', '.jpg', '.gif'].includes(newM.attachments.first().url.slice(newM.attachments.first().url.length - 4, newM.attachments.first().url.length))) {embed.setImage(newM.attachments.first().url);} - oldM.guild.channels.cache.get(ts).send(embed).catch(() => {}); + oldM.guild.channels.cache.get(ts).send({embeds: [embed]}).catch(() => {}); }} } \ No newline at end of file diff --git a/events/voiceStateUpdate.js b/events/voiceStateUpdate.js index 640d04d..6371124 100644 --- a/events/voiceStateUpdate.js +++ b/events/voiceStateUpdate.js @@ -5,33 +5,33 @@ const Monitor = require('../models/monitor'); module.exports = async (client, oldState, voice) => { let ts = client.guildconfig.logs.has(voice.guild.id) && client.guildconfig.logs.get(voice.guild.id).has('vc') ? client.guildconfig.logs.get(voice.guild.id).get('vc') : null; if (ts) {if (voice.guild.channels.cache.has(ts) && voice.guild.channels.cache.get(ts).permissionsFor(client.user.id).has("SEND_MESSAGES")) { - if (oldState.channelID && voice.channelID) { - voice.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() + if (oldState.channelId && voice.channelId) { + voice.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed() .setTitle(`Member Switched VCs`) .setThumbnail(client.users.cache.get(oldState.member.id).avatarURL({size: 2048, dynamic: true})) .setDescription(`Old Channel: **${oldState.channel.name}**\nNew Channel: **${voice.channel.name}**`) .setColor('e86b8f').setFooter("Natsuki", client.user.avatarURL()).setTimestamp() - ).catch(() => {}); + ]}).catch(() => {}); } else { - voice.guild.channels.cache.get(ts).send(new Discord.MessageEmbed() - .setTitle(`Member ${voice.channelID ? 'Joined' : 'Left'} VC`) + voice.guild.channels.cache.get(ts).send({embeds: [new Discord.MessageEmbed() + .setTitle(`Member ${voice.channelId ? 'Joined' : 'Left'} VC`) .setThumbnail(client.users.cache.get(oldState.member.id).avatarURL({size: 2048, dynamic: true})) - .setDescription(`Channel: **${voice.channelID ? voice.channel.name : oldState.channel.name}**`) + .setDescription(`Channel: **${voice.channelId ? voice.channel.name : oldState.channel.name}**`) .setColor('e86b8f').setFooter("Natsuki", client.user.avatarURL()).setTimestamp() - ).catch(() => {}); + ]}).catch(() => {}); } }} if (client.users.cache.get(voice.member.id).bot) {return;} if (voice.guild && client.misc.cache.monitEnabled.includes(voice.guild.id)) { - if (voice.channelID) { + if (voice.channelId) { client.misc.cache.VCG[voice.member.id] = voice.guild.id; if (!client.misc.cache.inVC.includes(voice.member.id)) {client.misc.cache.inVC.push(voice.member.id);} - if (!client.misc.cache.activeVC.includes(voice.channelID)) {client.misc.cache.activeVC.push(voice.channelID);} + if (!client.misc.cache.activeVC.includes(voice.channelId)) {client.misc.cache.activeVC.push(voice.channelId);} } else { if (!client.misc.cache.inVC.includes(voice.member.id)) {return;} client.misc.cache.inVC.splice(client.misc.cache.inVC.indexOf(voice.member.id), 1); - if (oldState.channel && !oldState.channel.members.size && client.misc.cache.activeVC.includes(oldState.channelID)) {client.misc.cache.activeVC.splice(client.misc.cache.activeVC.indexOf(oldState.channelID), 1);} + if (oldState.channel && !oldState.channel.members.size && client.misc.cache.activeVC.includes(oldState.channelId)) {client.misc.cache.activeVC.splice(client.misc.cache.activeVC.indexOf(oldState.channelId), 1);} if (Object.keys(client.misc.cache.VCG).includes(voice.member.id)) {delete client.misc.cache.VCG[voice.member.id];} } } diff --git a/handle/command.js b/handle/command.js index b2503a8..a6800c8 100644 --- a/handle/command.js +++ b/handle/command.js @@ -8,24 +8,24 @@ module.exports = client => { let dirSet = new Map(); fs.readdirSync('./commands').filter(file => !file.includes('.')).forEach(dir => fs.readdirSync(`./commands/${dir}`).filter(file => file.endsWith('.js')).forEach(x => {commands.push(x); dirSet.set(x, dir)})); - console.log(''); - let cora = ora(`${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright("0")}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`).start(); + //console.log(''); + //let cora = ora(`${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright("0")}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`).start(); let num = 0; commands.sort(); - //console.log(`\n${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`); + console.log(`\n${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`); for (let commandf of commands) { num++; - cora.text = `${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright(`${num}`)}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`; + //cora.text = `${chalk.white("Loading commands into client.")} ${chalk.blue("[")}${chalk.blueBright(`${num}`)}${chalk.blue("/")}${chalk.blueBright(`${commands.length}`)}${chalk.blue("]")}`; if (Object.keys(require.cache).includes(require.resolve(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`))) {delete require.cache[require.resolve(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`)];} let command = require(`../commands/${dirSet.has(commandf) ? `${dirSet.get(commandf)}/`: ''}${commandf}`); client.commands.set(command.name, command); if (command.aliases) {command.aliases.forEach(a => client.aliases.set(a, command.name));} - //console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`); + console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`); } - cora.stop(); cora.clear(); - console.log(`${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`); + //cora.stop(); cora.clear(); + //console.log(`${chalk.gray('[BOOT]')} >> ${chalk.blue('Getting Commands...')}\n`); Array.from(client.commands.values()).forEach(command => { - console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`); + //console.log(`${chalk.gray('[LOAD]')} >> ${chalk.blueBright('Loaded Command')} ${chalk.white(command.name)} ${chalk.blueBright('with')} ${chalk.white(command.aliases && command.aliases.length ? command.aliases.length : 0)} ${chalk.blueBright('aliases')}`); }); console.log(`\n${chalk.gray('[BOOT]')} >> ${chalk.blue('Loaded all Commands')}`); }; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d472ee7..cfead73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,12 +8,12 @@ "name": "natsuki", "version": "1.0.0", "dependencies": { - "canvas": "^2.6.1", + "@discordjs/voice": "^0.6.0", "chalk": "^4.1.0", "cron": "^1.8.2", "dblapi.js": "^2.4.1", "discord.io": "https://github.com/woor/discord.io/tarball/gateway_v6", - "discord.js": "^12.2.0", + "discord.js": "^13.1.0", "lastfm": "^0.9.0", "manyitems": "^1.0.2", "moment": "^2.28.0", @@ -39,10 +39,29 @@ "kuler": "^2.0.0" } }, + "node_modules/@discordjs/builders": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.5.0.tgz", + "integrity": "sha512-HP5y4Rqw68o61Qv4qM5tVmDbWi4mdTFftqIOGRo33SNPpLJ1Ga3KEIR2ibKofkmsoQhEpLmopD1AZDs3cKpHuw==", + "dependencies": { + "@sindresorhus/is": "^4.0.1", + "discord-api-types": "^0.22.0", + "ow": "^0.27.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@discordjs/collection": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", - "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz", + "integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==", + "engines": { + "node": ">=14.0.0" + } }, "node_modules/@discordjs/form-data": { "version": "3.0.1", @@ -57,6 +76,41 @@ "node": ">= 6" } }, + "node_modules/@discordjs/voice": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.6.0.tgz", + "integrity": "sha512-DF2fZAnB8gX3Qz5BEWPOUl565ptpda1uVmXJije4iK5aQrECfkqc6XcI+wzbGaNvzsH1Wb76NPzxngsEw8bblw==", + "dependencies": { + "@types/ws": "^7.4.4", + "discord-api-types": "^0.22.0", + "prism-media": "^1.3.1", + "tiny-typed-emitter": "^2.0.3", + "ws": "^7.4.4" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.4.tgz", + "integrity": "sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA==", + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", + "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@types/bson": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", @@ -79,28 +133,12 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" + "@types/node": "*" } }, "node_modules/ansi-styles": { @@ -114,20 +152,6 @@ "node": ">=8" } }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "node_modules/async": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", @@ -138,11 +162,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -162,15 +181,6 @@ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/bson": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz", @@ -188,15 +198,10 @@ "ieee754": "^1.1.13" } }, - "node_modules/canvas": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.7.0.tgz", - "integrity": "sha512-pzCxtkHb+5su5MQjTtepMDlIOtaXo277x0C0u3nMOxtkhTyQ+h2yNKhlROAaDllWgRyePAUitC08sXw26Eb6aw==", - "dependencies": { - "nan": "^2.14.0", - "node-pre-gyp": "^0.15.0", - "simple-get": "^3.0.3" - }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "engines": { "node": ">=6" } @@ -213,11 +218,6 @@ "node": ">=10" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, "node_modules/cjopus": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/cjopus/-/cjopus-0.0.4.tgz", @@ -250,14 +250,6 @@ "node": ">=0.8" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", @@ -333,16 +325,6 @@ "node": ">= 0.8" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -374,25 +356,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -409,11 +372,6 @@ "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, "node_modules/denque": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", @@ -422,15 +380,12 @@ "node": ">=0.10" } }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, + "node_modules/discord-api-types": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", + "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==", "engines": { - "node": ">=0.10" + "node": ">=12" } }, "node_modules/discord.io": { @@ -452,41 +407,43 @@ } }, "node_modules/discord.js": { - "version": "12.5.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.1.tgz", - "integrity": "sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.1.0.tgz", + "integrity": "sha512-gxO4CXKdHpqA+WKG+f5RNnd3srTDj5uFJHgOathksDE90YNq/Qijkd2WlMgTTMS6AJoEnHxI7G9eDQHCuZ+xDA==", "dependencies": { - "@discordjs/collection": "^0.1.6", + "@discordjs/builders": "^0.5.0", + "@discordjs/collection": "^0.2.1", "@discordjs/form-data": "^3.0.1", - "abort-controller": "^3.0.0", + "@sapphire/async-queue": "^1.1.4", + "@types/ws": "^7.4.7", + "discord-api-types": "^0.22.0", "node-fetch": "^2.6.1", - "prism-media": "^1.2.2", - "setimmediate": "^1.0.5", - "tweetnacl": "^1.0.3", - "ws": "^7.3.1" + "ws": "^7.5.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=16.6.0", + "npm": ">=7.0.0" } }, - "node_modules/discord.js/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/enabled": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/fast-safe-stringify": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", @@ -502,50 +459,6 @@ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -554,70 +467,21 @@ "node": ">=8" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -626,6 +490,14 @@ "node": ">=8" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -660,6 +532,11 @@ "node": "*" } }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, "node_modules/log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -698,19 +575,19 @@ "optional": true }, "node_modules/mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "dependencies": { - "mime-db": "1.46.0" + "mime-db": "1.49.0" }, "engines": { "node": ">= 0.6" @@ -724,58 +601,6 @@ "node": ">=6" } }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -878,35 +703,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "node_modules/needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -915,96 +711,6 @@ "node": "4.x || >=6.0.0" } }, - "node_modules/node-pre-gyp": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz", - "integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==", - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.3", - "needle": "^2.5.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/one-time": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", @@ -1092,63 +798,55 @@ "node": ">=8" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "node_modules/ow": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", + "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "@sindresorhus/is": "^4.0.1", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^1.2.1", + "vali-date": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/prism-media": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.7.tgz", - "integrity": "sha512-thS1z3L6BDmf724sqLC73bHGjSYArFTYHa7cqInyS3EdDNTHKgDCXy7l+IhRvlnX7aFNiUb8jJcC+R8ezxwgMA==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", + "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", + "peerDependencies": { + "@discordjs/opus": "^0.5.0", + "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", + "node-opus": "^0.3.3", + "opusscript": "^0.0.8" + }, + "peerDependenciesMeta": { + "@discordjs/opus": { + "optional": true + }, + "ffmpeg-static": { + "optional": true + }, + "node-opus": { + "optional": true + }, + "opusscript": { + "optional": true + } + } }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -1202,27 +900,11 @@ "node": ">=8" } }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "node_modules/saslprep": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", @@ -1235,11 +917,6 @@ "node": ">=6" } }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -1248,16 +925,6 @@ "semver": "bin/semver" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "node_modules/sift": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", @@ -1268,21 +935,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "node_modules/simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -1326,38 +978,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1379,38 +999,47 @@ "typescript": "^3.9.7" } }, - "node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, "node_modules/triple-beam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, + "node_modules/ts-mixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", + "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, + "node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { "version": "3.9.9", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", @@ -1438,6 +1067,14 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "node_modules/vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -1446,14 +1083,6 @@ "defaults": "^1.0.3" } }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, "node_modules/winston": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", @@ -1498,23 +1127,25 @@ "node": ">= 6" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "engines": { "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } }, "dependencies": { @@ -1528,10 +1159,22 @@ "kuler": "^2.0.0" } }, + "@discordjs/builders": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.5.0.tgz", + "integrity": "sha512-HP5y4Rqw68o61Qv4qM5tVmDbWi4mdTFftqIOGRo33SNPpLJ1Ga3KEIR2ibKofkmsoQhEpLmopD1AZDs3cKpHuw==", + "requires": { + "@sindresorhus/is": "^4.0.1", + "discord-api-types": "^0.22.0", + "ow": "^0.27.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.0" + } + }, "@discordjs/collection": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", - "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz", + "integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==" }, "@discordjs/form-data": { "version": "3.0.1", @@ -1543,6 +1186,28 @@ "mime-types": "^2.1.12" } }, + "@discordjs/voice": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.6.0.tgz", + "integrity": "sha512-DF2fZAnB8gX3Qz5BEWPOUl565ptpda1uVmXJije4iK5aQrECfkqc6XcI+wzbGaNvzsH1Wb76NPzxngsEw8bblw==", + "requires": { + "@types/ws": "^7.4.4", + "discord-api-types": "^0.22.0", + "prism-media": "^1.3.1", + "tiny-typed-emitter": "^2.0.3", + "ws": "^7.4.4" + } + }, + "@sapphire/async-queue": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.4.tgz", + "integrity": "sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA==" + }, + "@sindresorhus/is": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", + "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" + }, "@types/bson": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", @@ -1565,24 +1230,14 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "requires": { - "event-target-shim": "^5.0.0" + "@types/node": "*" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1591,20 +1246,6 @@ "color-convert": "^2.0.1" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "async": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", @@ -1615,11 +1256,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1639,15 +1275,6 @@ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "bson": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz", @@ -1662,15 +1289,10 @@ "ieee754": "^1.1.13" } }, - "canvas": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.7.0.tgz", - "integrity": "sha512-pzCxtkHb+5su5MQjTtepMDlIOtaXo277x0C0u3nMOxtkhTyQ+h2yNKhlROAaDllWgRyePAUitC08sXw26Eb6aw==", - "requires": { - "nan": "^2.14.0", - "node-pre-gyp": "^0.15.0", - "simple-get": "^3.0.3" - } + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "chalk": { "version": "4.1.0", @@ -1681,11 +1303,6 @@ "supports-color": "^7.1.0" } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, "cjopus": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/cjopus/-/cjopus-0.0.4.tgz", @@ -1709,11 +1326,6 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, "color": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", @@ -1782,16 +1394,6 @@ "delayed-stream": "~1.0.0" } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -1825,19 +1427,6 @@ } } }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -1851,20 +1440,15 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, "denque": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "discord-api-types": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", + "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==" }, "discord.io": { "version": "https://github.com/woor/discord.io/tarball/gateway_v6", @@ -1887,25 +1471,26 @@ } }, "discord.js": { - "version": "12.5.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.1.tgz", - "integrity": "sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.1.0.tgz", + "integrity": "sha512-gxO4CXKdHpqA+WKG+f5RNnd3srTDj5uFJHgOathksDE90YNq/Qijkd2WlMgTTMS6AJoEnHxI7G9eDQHCuZ+xDA==", "requires": { - "@discordjs/collection": "^0.1.6", + "@discordjs/builders": "^0.5.0", + "@discordjs/collection": "^0.2.1", "@discordjs/form-data": "^3.0.1", - "abort-controller": "^3.0.0", + "@sapphire/async-queue": "^1.1.4", + "@types/ws": "^7.4.7", + "discord-api-types": "^0.22.0", "node-fetch": "^2.6.1", - "prism-media": "^1.2.2", - "setimmediate": "^1.0.5", - "tweetnacl": "^1.0.3", - "ws": "^7.3.1" - }, - "dependencies": { - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - } + "ws": "^7.5.1" + } + }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "requires": { + "is-obj": "^2.0.0" } }, "enabled": { @@ -1913,11 +1498,6 @@ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, "fast-safe-stringify": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", @@ -1933,115 +1513,36 @@ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, "is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -2070,6 +1571,11 @@ "underscore": "" } }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -2105,16 +1611,16 @@ "optional": true }, "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" }, "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { - "mime-db": "1.46.0" + "mime-db": "1.49.0" } }, "mimic-fn": { @@ -2122,49 +1628,6 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, "moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -2249,114 +1712,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, - "node-pre-gyp": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz", - "integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==", - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.3", - "needle": "^2.5.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, "one-time": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", @@ -2428,51 +1788,30 @@ } } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "ow": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", + "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "@sindresorhus/is": "^4.0.1", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^1.2.1", + "vali-date": "^1.0.0" } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, "prism-media": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.7.tgz", - "integrity": "sha512-thS1z3L6BDmf724sqLC73bHGjSYArFTYHa7cqInyS3EdDNTHKgDCXy7l+IhRvlnX7aFNiUb8jJcC+R8ezxwgMA==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz", + "integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==", + "requires": {} }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -2522,24 +1861,11 @@ "signal-exit": "^3.0.2" } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "saslprep": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", @@ -2549,26 +1875,11 @@ "sparse-bitfield": "^3.0.3" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "sift": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", @@ -2579,21 +1890,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -2636,29 +1932,6 @@ } } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2677,35 +1950,41 @@ "typescript": "^3.9.7" } }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, "text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" }, + "tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, "triple-beam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, + "ts-mixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", + "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" + }, "typescript": { "version": "3.9.9", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", @@ -2726,6 +2005,11 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=" + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -2734,14 +2018,6 @@ "defaults": "^1.0.3" } }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, "winston": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", @@ -2779,20 +2055,11 @@ "triple-beam": "^1.2.0" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "requires": {} } } } diff --git a/package.json b/package.json index 4a6daf2..3eb777a 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,12 @@ "main": "bot.js", "author": "NatsukiDev", "dependencies": { - "canvas": "^2.6.1", + "@discordjs/voice": "^0.6.0", "chalk": "^4.1.0", "cron": "^1.8.2", "dblapi.js": "^2.4.1", "discord.io": "https://github.com/woor/discord.io/tarball/gateway_v6", - "discord.js": "^12.2.0", + "discord.js": "^13.1.0", "lastfm": "^0.9.0", "manyitems": "^1.0.2", "moment": "^2.28.0", @@ -24,5 +24,8 @@ }, "engines": { "node": "12.14.1" + }, + "scripts": { + "start": "run" } } diff --git a/responses/wubzy.js b/responses/wubzy.js index 3794fb7..35ec238 100644 --- a/responses/wubzy.js +++ b/responses/wubzy.js @@ -34,7 +34,7 @@ module.exports = { "<:awoo:750131415693393950> glad you're getting some sleep ^^ ~"]; message.channel.send(`${r[Math.floor(Math.random() * r.length)]} Want me to set your status before you go off?`); let to = false; let sconf; - try {sconf = await message.channel.awaitMessages(m => m.author.id === "330547934951112705", {time: 15000, errors: ['time'], max: 1});} + try {sconf = await message.channel.awaitMessages({filter: m => m.author.id === "330547934951112705", time: 15000, errors: ['time'], max: 1});} catch {message.channel.send("Oh, I guess he already went to bed, huh? I'll just... set his status anyways-"); to = true;} if (sconf) {sconf = sconf.first().content.trim().toLowerCase();} if (to || incl(['ye', 'mhm', 'sure'], sconf)) { @@ -59,7 +59,7 @@ module.exports = { "watch quintessential quintuplets", "have your heart wrenched out by Senko-San again", "finish Bleach", "finish Akame ga Kill", "start Guren Lagann", "finish Darling in the Franxx again", "watch Akashic Records again", "finish Rent-a-Girlfriend", "rebinge Kabaneri and question reality", "rewatch Code Geass", "do a thing called getting the hell off anime and doing something productive with your life!"]; message.channel.send(`${r1[Math.floor(Math.random() * r1.length)]} ${r2[Math.floor(Math.random() * r2.length)]}`); - try {sconf = await message.channel.awaitMessages(m => m.author.id === "330547934951112705", {time: 15000, errors: ['time'], max: 1});} + try {sconf = await message.channel.awaitMessages({filter: m => m.author.id === "330547934951112705", time: 15000, errors: ['time'], max: 1});} catch {message.channel.send("Oh, I guess he liked the idea that much and just left..."); return 2;} sconf = sconf.first().content.trim().toLowerCase(); if (incl(["bet", "i like", "yes", "sure", "fine", "alright", "ok"], sconf)) { @@ -75,7 +75,7 @@ module.exports = { let res = await q(); if (res === 2) {return;} let to = false; let sconf; - try {sconf = await message.channel.awaitMessages(m => m.author.id === "330547934951112705", {time: 15000, errors: ['time'], max: 1});} + try {sconf = await message.channel.awaitMessages({filter: m => m.author.id === "330547934951112705", time: 15000, errors: ['time'], max: 1});} catch {message.channel.send("Guess my recommendations are just that good that he left... Don't mind me while I set his status anyways"); to = true;} if (sconf) {sconf = sconf.first().content.trim().toLowerCase();} if (to || incl(['ye', 'mhm', 'sure'], sconf)) { diff --git a/util/ask.js b/util/ask.js index 7ea91a2..91988d3 100644 --- a/util/ask.js +++ b/util/ask.js @@ -2,7 +2,7 @@ module.exports = async (message, toAsk, time, nofilter, timeoutResponse) => { let msg = await message.channel.send(toAsk); let filter = nofilter ? () => true : m => m.author.id === message.author.id; try { - let collected = await msg.channel.awaitMessages(filter, {max: 1, errors: ['time'], time: time}); + let collected = await msg.channel.awaitMessages({filter: filter, max: 1, errors: ['time'], time: time}); collected = collected.first().content; return collected; } catch { diff --git a/util/pagination.d.ts b/util/pagination.d.ts index dc8d0ec..a659205 100644 --- a/util/pagination.d.ts +++ b/util/pagination.d.ts @@ -1,36 +1,36 @@ -import { TextChannel, Message, MessageEmbed, Client, ReactionCollector } from 'discord.js'; -export declare class Pagination { - channel: TextChannel; - message: Message; - pages: MessageEmbed[]; - originalMessage: Message; - currentPage: number; - client: Client; - loopPages: boolean; - controllers: ControllerData; - timeoutInterval: any; - constructor(channel: TextChannel, pages: MessageEmbed[], originalMessage: Message, client: Client, loopPages?: boolean, message?: Message); - setPage(page: number): Promise; - nextPage(): Promise; - prevPage(): Promise; - addPage(page: MessageEmbed): Pagination; - replacePage(index: number, page: MessageEmbed): Pagination; - setControllers(endTime: number, user?: 'any' | string, extraControls?: ExtraControls): Promise; - updateControllers(): Promise; - endControllers(): Promise; - start(options?: { - endTime?: number; - startPage?: number; - user?: 'any' | string; - }): Promise; - stop(): Promise; -} -interface ExtraControls { -} -interface ControllerData { - endTime: number; - enabled: boolean; - lastInteraction: Date; - collector: ReactionCollector; -} -export {}; +import { TextChannel, Message, MessageEmbed, Client, ReactionCollector } from 'discord.js'; +export declare class Pagination { + channel: TextChannel; + message: Message; + pages: MessageEmbed[]; + originalMessage: Message; + currentPage: number; + client: Client; + loopPages: boolean; + controllers: ControllerData; + timeoutInterval: any; + constructor(channel: TextChannel, pages: MessageEmbed[], originalMessage: Message, client: Client, loopPages?: boolean, message?: Message); + setPage(page: number): Promise; + nextPage(): Promise; + prevPage(): Promise; + addPage(page: MessageEmbed): Pagination; + replacePage(index: number, page: MessageEmbed): Pagination; + setControllers(endTime: number, user?: 'any' | string, extraControls?: ExtraControls): Promise; + updateControllers(): Promise; + endControllers(): Promise; + start(options?: { + endTime?: number; + startPage?: number; + user?: 'any' | string; + }): Promise; + stop(): Promise; +} +interface ExtraControls { +} +interface ControllerData { + endTime: number; + enabled: boolean; + lastInteraction: Date; + collector: ReactionCollector; +} +export {}; diff --git a/util/pagination.js b/util/pagination.js index 9123e5f..32eb20a 100644 --- a/util/pagination.js +++ b/util/pagination.js @@ -1,134 +1,135 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Pagination = void 0; -class Pagination { - constructor(channel, pages, originalMessage, client, loopPages, message) { - this.loopPages = true; - this.controllers = { enabled: false, endTime: null, collector: null, lastInteraction: null }; - this.channel = channel; - this.pages = pages; - this.originalMessage = message; - this.client = client; - this.currentPage = 0; - if (message) { - this.message = message; - } - if (loopPages) { - this.loopPages = loopPages; - } - } - ; - async setPage(page) { - if (this.pages.length < page + 1) { } - if (!this.message) { - let tempm = await this.channel.send("One moment...") - .catch(() => { this.originalMessage.reply("There seemed to be a problem doing that..."); return this; }); - if (tempm instanceof Pagination) { - return this; - } - else { - this.message = tempm; - } - } - await this.message.edit('', this.pages[page] - .setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL()) - .setTimestamp()); - this.currentPage = page; - return this; - } - ; - async nextPage() { - await this.setPage(typeof this.currentPage === "number" - ? this.currentPage + 1 == this.pages.length - ? this.loopPages - ? 0 - : this.currentPage - : this.currentPage + 1 - : 0); - return this; - } - ; - async prevPage() { - await this.setPage(typeof this.currentPage === "number" - ? this.currentPage === 0 - ? this.loopPages - ? this.pages.length - 1 - : 0 - : this.currentPage - 1 - : this.pages.length - 1); - return this; - } - ; - addPage(page) { - this.pages.push(page); - return this; - } - ; - replacePage(index, page) { - if (index < 0) { - throw new RangeError("replacePage() param 'index' must be a value greater than 0"); - } - if (index > this.pages.length - 1) { - throw new RangeError("replacePage() param 'index' must be a value corresponding to an index that already exists in this instance's pages."); - } - this.pages[index] = page; - return this; - } - ; - async setControllers(endTime, user, extraControls) { - if (this.controllers.enabled) { - return; - } - await this.message.react('⬅'); - await this.message.react('➡'); - await this.message.react('⏹'); - let emoji = ['⬅', '➡', '⏹']; - let filter = user && user.toLowerCase().trim() !== 'any' - ? (r, u) => { return u.id === user.trim() && emoji.includes(r.emoji.name); } - : (r) => { return emoji.includes(r.emoji.name); }; - this.controllers.collector = this.message.createReactionCollector(filter, { time: 450000 }); - this.controllers.collector.on('collect', async (r) => { - let functions = { - '⬅': () => { return this.prevPage(); }, - '➡': () => { return this.nextPage(); }, - '⏹': () => { return this.endControllers(); } - }; - this.controllers.lastInteraction = new Date(); - return functions[r.emoji.name](); - }); - this.controllers.enabled = true; - this.controllers.endTime = endTime; - this.controllers.lastInteraction = new Date(); - this.timeoutInterval = setInterval(() => { - if (new Date().getTime() - this.controllers.lastInteraction.getTime() > this.controllers.endTime && this.controllers.enabled) { - return this.endControllers(); - } - }, this.controllers.endTime); - return this; - } - ; - async updateControllers() { return this; } - ; - async endControllers() { - await this.message.reactions.removeAll(); - this.controllers.collector.stop(); - let fe = this.message.embeds[0]; - fe.setDescription(`${fe.description}\n\n*This menu has ended, start a new one to interact with it!*`); - fe.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL()); - await this.message.edit(fe); - clearInterval(this.timeoutInterval); - return this; - } - ; - async start(options) { - await this.setPage(options && options.startPage ? options.startPage : 0); - await this.setControllers(options && options.endTime ? options.endTime : 60, options && options.user ? options.user : 'any'); - return this; - } - ; - async stop() { - return await this.endControllers(); - } - ; -} -exports.Pagination = Pagination; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Pagination = void 0; +class Pagination { + constructor(channel, pages, originalMessage, client, loopPages, message) { + this.loopPages = true; + this.controllers = { enabled: false, endTime: null, collector: null, lastInteraction: null }; + this.channel = channel; + this.pages = pages; + this.originalMessage = message; + this.client = client; + this.currentPage = 0; + if (message) { + this.message = message; + } + if (loopPages) { + this.loopPages = loopPages; + } + } + ; + async setPage(page) { + if (this.pages.length < page + 1) { } + if (!this.message) { + let tempm = await this.channel.send("One moment...") + .catch(() => { this.originalMessage.reply("There seemed to be a problem doing that..."); return this; }); + if (tempm instanceof Pagination) { + return this; + } + else { + this.message = tempm; + } + } + await this.message.edit({ content: '', embeds: [this.pages[page] + .setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL()) + .setTimestamp()] + }); + this.currentPage = page; + return this; + } + ; + async nextPage() { + await this.setPage(typeof this.currentPage === "number" + ? this.currentPage + 1 == this.pages.length + ? this.loopPages + ? 0 + : this.currentPage + : this.currentPage + 1 + : 0); + return this; + } + ; + async prevPage() { + await this.setPage(typeof this.currentPage === "number" + ? this.currentPage === 0 + ? this.loopPages + ? this.pages.length - 1 + : 0 + : this.currentPage - 1 + : this.pages.length - 1); + return this; + } + ; + addPage(page) { + this.pages.push(page); + return this; + } + ; + replacePage(index, page) { + if (index < 0) { + throw new RangeError("replacePage() param 'index' must be a value greater than 0"); + } + if (index > this.pages.length - 1) { + throw new RangeError("replacePage() param 'index' must be a value corresponding to an index that already exists in this instance's pages."); + } + this.pages[index] = page; + return this; + } + ; + async setControllers(endTime, user, extraControls) { + if (this.controllers.enabled) { + return; + } + await this.message.react('⬅'); + await this.message.react('➡'); + await this.message.react('⏹'); + let emoji = ['⬅', '➡', '⏹']; + let filter = user && user.toLowerCase().trim() !== 'any' + ? (r, u) => { return u.id === user.trim() && emoji.includes(r.emoji.name); } + : (r) => { return emoji.includes(r.emoji.name); }; + this.controllers.collector = this.message.createReactionCollector({ filter, time: 450000 }); + this.controllers.collector.on('collect', async (r) => { + let functions = { + '⬅': () => { return this.prevPage(); }, + '➡': () => { return this.nextPage(); }, + '⏹': () => { return this.endControllers(); } + }; + this.controllers.lastInteraction = new Date(); + return functions[r.emoji.name](); + }); + this.controllers.enabled = true; + this.controllers.endTime = endTime; + this.controllers.lastInteraction = new Date(); + this.timeoutInterval = setInterval(() => { + if (new Date().getTime() - this.controllers.lastInteraction.getTime() > this.controllers.endTime && this.controllers.enabled) { + return this.endControllers(); + } + }, this.controllers.endTime); + return this; + } + ; + async updateControllers() { return this; } + ; + async endControllers() { + await this.message.reactions.removeAll(); + this.controllers.collector.stop(); + let fe = this.message.embeds[0]; + fe.setDescription(`${fe.description}\n\n*This menu has ended, start a new one to interact with it!*`); + fe.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL()); + await this.message.edit({ embeds: [fe] }); + clearInterval(this.timeoutInterval); + return this; + } + ; + async start(options) { + await this.setPage(options && options.startPage ? options.startPage : 0); + await this.setControllers(options && options.endTime ? options.endTime : 60, options && options.user ? options.user : 'any'); + return this; + } + ; + async stop() { + return await this.endControllers(); + } + ; +} +exports.Pagination = Pagination; diff --git a/util/response/filterresponse.js b/util/response/filterresponse.js index 3813574..cce7824 100644 --- a/util/response/filterresponse.js +++ b/util/response/filterresponse.js @@ -2,7 +2,7 @@ module.exports = async (member, client, text) => { text = text .replace(/(?:{{member}}|{{m}})/gm, member.displayName) .replace(/(?:{{membercount}}|{{mc}})/gm, `${member.guild.members.cache.size}`) - .replace(/(?:{{owner}}|{{o}})/gm, member.guild.owner.displayName) + .replace(/(?:{{owner}}|{{o}})/gm, member.guild.fetchOwner().then(owner => owner.displayName)) .replace(/(?:{{ping}}|{{mp}}|{{memberping}}|{{p}})/gm, `<@${member.id}>`) .replace(/(?:{{s}}|{{server}}|{{servername}}|{{sn}})/gm, member.guild.name) .replace(/{{n}}/gm, '\n') diff --git a/util/response/sendresponse.js b/util/response/sendresponse.js index 74ec7e1..ac75d38 100644 --- a/util/response/sendresponse.js +++ b/util/response/sendresponse.js @@ -16,7 +16,7 @@ module.exports = async(member, channel, mode, client, options) => { if (options.guildthumb) {responseEmbed.setThumbnail(channel.guild.iconURL({size: 1024}));} } if (channel.permissionsFor(client.user.id).has("SEND_MESSAGES")) {return channel.send( - options.message ? await filterResponse(member, client, options.text) : responseEmbed + options.message ? await filterResponse(member, client, options.text) : {embeds: [responseEmbed]} );} } catch {} }; \ No newline at end of file diff --git a/util/ts/pagination.ts b/util/ts/pagination.ts index d27561a..2132708 100644 --- a/util/ts/pagination.ts +++ b/util/ts/pagination.ts @@ -36,10 +36,10 @@ export class Pagination { else {this.message = tempm;} } - await this.message.edit('', this.pages[page] + await this.message.edit({content: '', embeds: [this.pages[page] .setFooter(`Natsuki | Page ${page + 1} of ${this.pages.length}`, this.client.user.avatarURL()) - .setTimestamp() - ); + .setTimestamp()] + }); this.currentPage = page; return this; @@ -95,7 +95,7 @@ export class Pagination { ? (r: MessageReaction, u) => {return u.id === user.trim() && emoji.includes(r.emoji.name);} : (r: MessageReaction) => {return emoji.includes(r.emoji.name);}; - this.controllers.collector = this.message.createReactionCollector(filter, {time: 450000}); + this.controllers.collector = this.message.createReactionCollector({filter: filter, time: 450000}); this.controllers.collector.on('collect', async (r: MessageReaction) => { let functions = { @@ -127,7 +127,7 @@ export class Pagination { let fe = this.message.embeds[0]; fe.setDescription(`${fe.description}\n\n*This menu has ended, start a new one to interact with it!*`); fe.setFooter(`${fe.footer.text} | Menu ended`, this.client.user.avatarURL()); - await this.message.edit(fe); + await this.message.edit({embeds: [fe]}); clearInterval(this.timeoutInterval);