├── .github
└── FUNDING.yml
├── .replit
├── Procfile
├── README.md
├── SECURITY.md
├── application.yml
├── botconfig.json
├── colours.json
├── commands
├── economy
│ ├── balance.js
│ ├── coinflip.js
│ ├── daily.js
│ ├── deleteuser.js
│ ├── dice.js
│ ├── leaderboard.js
│ ├── slot.js
│ ├── transfer.js
│ └── work.js
├── games
│ ├── 8ball.js
│ ├── flipword.js
│ ├── kill.js
│ ├── love.js
│ ├── reverse.js
│ └── rps.js
├── image
│ ├── alpaca.js
│ ├── cat.js
│ ├── dog.js
│ ├── llama.js
│ ├── meme.js
│ ├── pepe.js
│ └── seal.js
├── miscellaneous
│ ├── avatar.js
│ ├── botinfo.js
│ ├── cnjoke.js
│ ├── contact.js
│ ├── help.js
│ ├── instagram.js
│ ├── joke.js
│ ├── myinfo.js
│ ├── overwatch.js
│ ├── ping.js
│ ├── rate.js
│ ├── report.js
│ ├── roleinfo.js
│ ├── serverinfo.js
│ ├── stats.js
│ ├── uptime.js
│ ├── weather.js
│ └── yomamma.js
├── moderation
│ ├── addrole.js
│ ├── ban.js
│ ├── clear.js
│ ├── kick.js
│ ├── mute.js
│ ├── removerole.js
│ ├── say.js
│ ├── unban.js
│ └── unmute.js
└── owner
│ └── eval.js
├── database.sqlite
├── events
├── client
│ ├── disconnect.js
│ ├── error.js
│ ├── ready.js
│ ├── reconnecting.js
│ └── warn.js
└── guild
│ └── message.js
├── function.js
├── giveaways.json
├── handlers
├── command.js
├── console.js
└── event.js
├── index.js
├── package-lock.json
├── package.json
├── shrinkwrap.yaml
├── start.bat
└── util
└── eventHandler.js
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | patreon: alixbot
4 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
5 |
--------------------------------------------------------------------------------
/.replit:
--------------------------------------------------------------------------------
1 | language = "nodejs"
2 | run = "node index.js"
3 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | worker: node index.js
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # Alix Beta
4 |
5 | [](https://repl.it/github/ayaan1005/Alix-Beta)
6 | [](https://bot.alix.gq)
7 | [](https://top.gg/bot/693846748824862770/vote)
8 | [](https://github.com/discordjs)
9 | [](https://www.patreon.com/alixbot)
10 |
11 | > This bot is used by more than 100k+ Discord users and more than 120+ servers.
12 |
13 | Alix Beta Is A Open Sourced Discord Bot Can Use In Many Was Like To Make Server Full Moderation Filled, And Fun. Coded With JavaScript [Discord.js](https://discord.js.org) And [Quick.db](https://quickdb.js.org/) Made By [AyaanDEV](https://github.com/Ayaan-GuitarHost/)
14 |
Feel free to add a star ⭐ to the repository to promote the project!
15 |
16 | ## Bot Setup
17 |
18 | Check Bot Config File [Here](https://github.com/ayaan1005/Alix-Beta/blob/glitch/botconfig.json)
19 |
20 | Example BotConfig File -
21 | ```
22 | {
23 | "token": "Your Bot Token",
24 | "prefix": "Bot Prefix",
25 | "report_channelid": "Channel ID Where Bug Reports Comes",
26 | "support_server": "Your Bots Support Server",
27 | "main_ownerid": "Your Id",
28 | "InstaToken": "Your Insta Token Here",
29 | "extra_ownerid": [
30 | "Owner 1",
31 | "Owner 2"
32 | ]
33 | }
34 |
35 | ```
36 |
37 | ## Upcoming Updates
38 |
39 | ### BUGS FIX
40 | ### MORE COMMAND ADD
41 | ### DASHBOARD
42 |
43 | ## Links
44 |
45 | * [Commands List](https://allix.glitch.me/commands)
46 | * [F.A.Q](https://discord.gg/qBbgnxs)
47 | * [Discord](https://alix.glitch.me/community)
48 | * [Github](https://github.com/ayaan1005/Alix-Beta)
49 | * [Dashboard](https://alix.glitch.me/dashboard)
50 | * [Embed Gen](https://alix.glitch.me/embed)
51 |
52 | ## License
53 |
54 | Alix Beta is licensed under the GPL 3.0 license. See the file `LICENSE` for more information. If you plan to use any part of this source code in your own bot, I would be grateful if you would include some form of credit somewhere.
55 |
56 | ## Security
57 |
58 | For secutiry purposes check `SECURITY.md`
59 |
60 | ## Top.GG
61 |
62 | Vote Alix And Have 24h Free Credit Of Premium Usage `SOON!`
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | Use this section to tell people about which versions of your project are
6 | currently being supported with security updates.
7 |
8 | | Version | Supported |
9 | | ------- | ------------------ |
10 | | 5.1.x | :white_check_mark: |
11 | | 5.0.x | :x: |
12 | | 4.0.x | :white_check_mark: |
13 | | < 4.0 | :x: |
14 |
15 | ## Reporting a Vulnerability
16 |
17 | Use this section to tell people how to report a vulnerability.
18 |
19 | Tell them where to go, how often they can expect to get an update on a
20 | reported vulnerability, what to expect if the vulnerability is accepted or
21 | declined, etc.
22 |
--------------------------------------------------------------------------------
/application.yml:
--------------------------------------------------------------------------------
1 | server: # REST and WS server
2 | port: 2333
3 | address: 0.0.0.0
4 | lavalink:
5 | server:
6 | password: "groot"
7 | sources:
8 | youtube: true
9 | bandcamp: true
10 | soundcloud: true
11 | twitch: true
12 | vimeo: true
13 | http: true
14 | local: false
15 | bufferDurationMs: 400 # The duration of the NAS buffer. Higher values fare better against longer GC pauses. Minimum of 40ms, lower values may introduce pauses.
16 | frameBufferDurationMs: 1000 # How many milliseconds of audio to keep buffered
17 | opusEncodingQuality: 10 # Opus encoder quality. Valid values range from 0 to 10, where 10 is best quality but is the most expensive on the CPU.
18 | resamplingQuality: LOW # Quality of resampling operations. Valid values are LOW, MEDIUM and HIGH, where HIGH uses the most CPU.
19 | trackStuckThresholdMs: 10000 # The threshold for how long a track can be stuck. A track is stuck if does not return any audio data.
20 | useSeekGhosting: true # Seek ghosting is the effect where whilst a seek is in progress, the audio buffer is read from until empty, or until seek is ready.
21 | youtubePlaylistLoadLimit: 6 # Number of pages at 100 each
22 | playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
23 | youtubeSearchEnabled: true
24 | soundcloudSearchEnabled: true
25 | gc-warnings: true
26 | #ratelimit:
27 | #ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks
28 | #excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink
29 | #strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch
30 | #searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing
31 | #retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times
32 | #youtubeConfig: # Required for avoiding all age restrictions by YouTube, some restricted videos still can be played without.
33 | #email: "" # Email of Google account
34 | #password: "" # Password of Google account
35 | #httpConfig: # Useful for blocking bad-actors from ip-grabbing your music node and attacking it, this way only the http proxy will be attacked
36 | #proxyHost: "localhost" # Hostname of the proxy, (ip or domain)
37 | #proxyPort: 3128 # Proxy port, 3128 is the default for squidProxy
38 | #proxyUser: "" # Optional user for basic authentication fields, leave blank if you don't use basic auth
39 | #proxyPassword: "" # Password for basic authentication
40 |
41 | metrics:
42 | prometheus:
43 | enabled: false
44 | endpoint: /metrics
45 |
46 | sentry:
47 | dsn: ""
48 | environment: ""
49 | # tags:
50 | # some_key: some_value
51 | # another_key: another_value
52 |
53 | logging:
54 | file:
55 | path: ./logs/
56 |
57 | level:
58 | root: INFO
59 | lavalink: INFO
60 |
61 | logback:
62 | rollingpolicy:
63 | max-file-size: 1GB
64 | max-history: 30
65 |
--------------------------------------------------------------------------------
/botconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "token": "Your Bot Token",
3 | "prefix": "Bot Prefix",
4 | "report_channelid": "Channel ID Where Bug Reports Comes",
5 | "support_server": "Your Bots Support Server",
6 | "main_ownerid": "Your Id",
7 | "InstaToken": "Your Insta Token Here",
8 | "extra_ownerid": [
9 | "Owner 1",
10 | "Owner 2"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/colours.json:
--------------------------------------------------------------------------------
1 | {
2 | "red": "#ff0008",
3 | "dark_blue": "#0008ff",
4 | "light_blue": "#14d0ff",
5 | "yellow": "#e2ff00",
6 | "green": "#00ff55",
7 | "pink": "#fa287c",
8 | "cyan": "#00FFFF"
9 | }
--------------------------------------------------------------------------------
/commands/economy/balance.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "balance",
7 | aliases: ["bal"],
8 | usage: "!!balance",
9 | category: "economy",
10 | description: "Checks you blance!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var output = await eco.FetchBalance(message.author.id)
15 | message.channel.send(`Hey **${message.author.tag}**! You own Rs **${output.balance}**.`);
16 | }
17 | }
--------------------------------------------------------------------------------
/commands/economy/coinflip.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "coinflip",
7 | aliases: ["cf"],
8 | usage: "!!coinflip",
9 | category: "economy",
10 | description: "Coinflip depend on your luck play and win balance in economy!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var flip = args[0] //Heads or Tails
15 | var amount = args[1] //Coins to gamble
16 |
17 | if (!flip || !['heads', 'tails'].includes(flip)) return message.reply('Please specify the flip, either heads or tails!')
18 | if (!amount) return message.reply('Specify the amount you want to gamble!')
19 |
20 | var output = await eco.FetchBalance(message.author.id)
21 | if (output.balance < amount) return message.reply('You have fewer coins than the amount you want to gamble!')
22 |
23 | var gamble = await eco.Coinflip(message.author.id, flip, amount).catch(console.error)
24 | message.reply(`You **${gamble.output}**! New balance: Rs **${gamble.newbalance}**`)
25 | }
26 | }
--------------------------------------------------------------------------------
/commands/economy/daily.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "daily",
7 | aliases: ["dailyy"],
8 | usage: "!!daily",
9 | category: "economy",
10 | description: "Checks in daily to claim reward!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var output = await eco.Daily(message.author.id)
15 | //output.updated will tell you if the user already claimed his/her daily yes or no.
16 |
17 | if (output.updated) {
18 |
19 | var profile = await eco.AddToBalance(message.author.id, 150)
20 | message.reply(`You claimed your daily coins successfully! You now own Rs ${profile.newbalance}.`);
21 |
22 | } else {
23 | message.channel.send(`Sorry, you already claimed your daily coins!\nBut no worries, over **${output.timetowait}** you can claim your daily reward again!`)
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/commands/economy/deleteuser.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "delete",
7 | aliases: ["deleteu", "userdelete"],
8 | usage: "!!delete",
9 | category: "economy",
10 | description: "Delets you user from database!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var user = message.mentions.users.first()
15 | if (!user) return message.reply('Please specify a user I have to delete in my database!')
16 |
17 | if (!message.guild.me.hasPermission(`ADMINISTRATION`)) return message.reply('You need to be admin to execute this command!')
18 |
19 | var output = await eco.Delete(user.id)
20 | if (output.deleted == true) return message.reply('Successfully deleted the user out of the database!')
21 |
22 | message.reply('Error: Could not find the user in database.')
23 | }
24 | }
--------------------------------------------------------------------------------
/commands/economy/dice.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "dice",
7 | aliases: ["dice", "luck"],
8 | usage: "!!dice",
9 | category: "economy",
10 | description: "Dice depend on your luck play and win balance in economy!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var roll = args[0] //Should be a number between 1 and 6
15 | var amount = args[1] //Coins to gamble
16 |
17 | if (!roll || ![1, 2, 3, 4, 5, 6].includes(parseInt(roll))) return message.reply('Specify the roll, it should be a number between 1-6')
18 | if (!amount) return message.reply('Specify the amount you want to gamble!')
19 |
20 | var output = eco.FetchBalance(message.author.id)
21 | if (output.balance < amount) return message.reply('You have fewer coins than the amount you want to gamble!')
22 |
23 | var gamble = await eco.Dice(message.author.id, roll, amount).catch(console.error)
24 | message.reply(`The dice rolled **${gamble.dice}**. So you **${gamble.output}**! New balance: Rs **${gamble.newbalance}**`)
25 | }
26 | }
--------------------------------------------------------------------------------
/commands/economy/leaderboard.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "leaderboard",
7 | aliases: ["lb"],
8 | usage: "!!leaderboard",
9 | category: "economy",
10 | description: "Checks your rank in economy!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | if (message.mentions.users.first()) {
15 |
16 | var output = await eco.Leaderboard({
17 | filter: x => x.balance > 50,
18 | search: message.mentions.users.first().id
19 | })
20 | message.channel.send(`The user **${message.mentions.users.first().tag}** is number **${output}** on my leaderboard!`);
21 |
22 | } else {
23 |
24 | eco.Leaderboard({
25 | limit: 3, //Only takes top 3 ( Totally Optional )
26 | filter: x => x.balance > 50 //Only allows people with more than 100 balance ( Totally Optional )
27 | }).then(async users => { //make sure it is async
28 |
29 | if (users[0]) var firstplace = await bot.fetchUser(users[0].userid) //Searches for the user object in discord for first place
30 | if (users[1]) var secondplace = await bot.fetchUser(users[1].userid) //Searches for the user object in discord for second place
31 | if (users[2]) var thirdplace = await bot.fetchUser(users[2].userid) //Searches for the user object in discord for third place
32 |
33 | message.channel.send(`***My leaderboard:***
34 |
35 | *1* - **${firstplace && firstplace.tag || 'Nobody Yet'} : Rs ${users[0] && users[0].balance || '0'}**
36 | *2* - **${secondplace && secondplace.tag || 'Nobody Yet'} : Rs ${users[1] && users[1].balance || '0'}**
37 | *3* - **${thirdplace && thirdplace.tag || 'Nobody Yet'} : Rs ${users[2] && users[2].balance || '0'}**`)
38 |
39 | })
40 |
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/commands/economy/slot.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "slot",
7 | aliases: ["slot"],
8 | usage: "!!slot",
9 | category: "economy",
10 | description: "!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var amount = args[0] //Coins to gamble
15 |
16 | if (!amount) return message.reply('Specify the amount you want to gamble!')
17 |
18 | var output = await eco.FetchBalance(message.author.id)
19 | if (output.balance < amount) return message.reply('You have fewer coins than the amount you want to gamble!')
20 |
21 | var gamble = await eco.Slots(message.author.id, amount, {
22 | width: 3,
23 | height: 1
24 | }).catch(console.error)
25 | message.channel.send(gamble.grid)//Grid checks for a 100% match vertical or horizontal.
26 | message.reply(`You **${gamble.output}**! New balance: Rs **${gamble.newbalance}**`)
27 |
28 | }
29 | }
--------------------------------------------------------------------------------
/commands/economy/transfer.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "transfer",
7 | aliases: ["dell"],
8 | usage: "",
9 | category: "economy",
10 | description: "Transfer money to your friend!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var user = message.mentions.users.first()
15 | var amount = args[1]
16 |
17 | if (!user) return message.reply('Mention the user you want to send money to!')
18 | if (!amount) return message.reply('Specify the amount you want to pay!')
19 |
20 | var output = await eco.FetchBalance(message.author.id)
21 | if (output.balance < amount) return message.reply('You have fewer coins than the amount you want to transfer!')
22 |
23 | var transfer = await eco.Transfer(message.author.id, user.id, amount)
24 | message.reply(`Transfering coins successfully done!\nBalance from **${message.author.tag}**: Rs **${transfer.FromUser}**\nBalance from **${user.tag}**: Rs **${transfer.ToUser}**`);
25 | }
26 | }
--------------------------------------------------------------------------------
/commands/economy/work.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const eco = require("discord-economy");
3 |
4 | module.exports = {
5 | config: {
6 | name: "work",
7 | aliases: ["job"],
8 | usage: "",
9 | category: "economy",
10 | description: "Find your work to earn money in economy!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | var output = await eco.Work(message.author.id)
15 | //50% chance to fail and earn nothing. You earn between 1-100 coins. And you get one out of 20 random jobs.
16 | if (output.earned == 0) return message.reply('Awh, you did not do your job well so you earned nothing!')
17 | message.channel.send(`${message.author.username}
18 | You worked as a \` ${output.job} \` and earned :money_with_wings: **${output.earned}**
19 | You now own :money_with_wings: **${output.balance}**`)
20 |
21 |
22 | var output = await eco.Work(message.author.id, {
23 | failurerate: 10,
24 | money: Math.floor(Math.random() * 500),
25 | jobs: ['cashier', 'shopkeeper']
26 | })
27 | //10% chance to fail and earn nothing. You earn between 1-500 coins. And you get one of those 3 random jobs.
28 | if (output.earned == 0) return message.reply('Awh, you did not do your job well so you earned nothing!')
29 |
30 | message.channel.send(`${message.author.username}
31 | You worked as a \` ${output.job} \` and earned :money_with_wings: **${output.earned}**
32 | You now own :money_with_wings: **${output.balance}**`)
33 | }
34 | }
--------------------------------------------------------------------------------
/commands/games/8ball.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 |
3 | module.exports = {
4 | config: {
5 | name: "8ball",
6 | aliases: ["8ball"],
7 | usage: "!!8ball",
8 | category: "games",
9 | description: "",
10 | accessableby: "Members"
11 | },
12 | run: async (bot, message, args) => {
13 | //!8ball question
14 | if(!args[1]) return message.reply("Plesae enter a full question with 2 or more words!");
15 | let replies = ["Yes", "No", "I don't know", "Ask again later!", "Cyka", "I am not sure!", "Pls No", "You tell me", "Without a doubt", "Cannot predict now", "Without a doubt", ];
16 |
17 | let result = Math.floor((Math.random() * replies.length));
18 | let question = args.join(" ");
19 |
20 | let ballembed = new MessageEmbed()
21 |
22 | .setAuthor(message.author.username)
23 | .setColor("#00ff00")
24 | .addField("Question", question)
25 | .addField("Answer", replies[result]);
26 |
27 | message.channel.send(ballembed)
28 |
29 | message.delete();
30 | }
31 | }
--------------------------------------------------------------------------------
/commands/games/flipword.js:
--------------------------------------------------------------------------------
1 | const { RichEmbed } = require("discord.js")
2 | const mapping = '¡"#$%⅋,)(*+\'-˙/0ƖᄅƐㄣϛ9ㄥ86:;<=>?@∀qƆpƎℲפHIſʞ˥WNOԀQɹS┴∩ΛMX⅄Z[/]^_`ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz{|}~';
3 | // Start with the character '!'
4 | const OFFSET = '!'.charCodeAt(0);
5 |
6 | module.exports = {
7 | config: {
8 | name: "flipword",
9 | aliases: ["upsidedown"],
10 | usage: "",
11 | category: "games",
12 | description: "Flips the word u have given",
13 | accessableby: "Members"
14 | },
15 | run: async (bot, message, args) => {
16 | if (args.length < 1) return message.channel.send("You must provide text to flip!");
17 |
18 | message.channel.send(
19 | args.join(' ').split('')
20 | .map(c => c.charCodeAt(0) - OFFSET)
21 | .map(c => mapping[c] || ' ')
22 | .reverse().join('')
23 | );
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/commands/games/kill.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 |
3 | module.exports = {
4 | config: {
5 | name: "kill",
6 | aliases: ["kill"],
7 | usage: "!!kill",
8 | category: "games",
9 | description: "",
10 | accessableby: "Members"
11 | },
12 | run: async (bot, message, args) => {
13 | let killed = message.mentions.members.first();
14 | if(!killed) {
15 |
16 | let emb = new MessageEmbed()
17 | .setColor("RANDOM")
18 | .setDescription(`${message.author} decied to kill themself 💔 REST IN PEACE`)
19 |
20 | message.channel.send(emb)
21 |
22 | } else {
23 |
24 | let emb = new MessageEmbed()
25 | .setColor("RANDOM")
26 | .setDescription(`${killed} was killed by ${message.author} 💔 REST IN PEACE`)
27 |
28 | message.channel.send(emb)
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/commands/games/love.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js");
2 | const { cyan } = require("../../colours.json");
3 | const { getMember } = require("../../function.js");
4 |
5 | module.exports = {
6 | config: {
7 | name: "love",
8 | aliases: ["affinity"],
9 | usage: "mention | id | username",
10 | category: "games",
11 | description: "Calculates the love affinity you have for another person.",
12 | accessableby: "Members"
13 | },
14 | run: async (bot, message, args) => {
15 | // Get a member from mention, id, or username
16 | let person = getMember(message, args[0]);
17 |
18 | // If no person is found
19 | // It's going to default to the author
20 | // And we don't want to love ourself in this command
21 | // So we filter out our ID from the server members
22 | // And get a random person from that collection
23 | if (!person || message.author.id === person.id) {
24 | person = message.guild.members
25 | .filter(m => m.id !== message.author.id)
26 | .random();
27 | }
28 |
29 | // love is the percentage
30 | // loveIndex is a number from 0 to 10, based on that love variable
31 | const love = Math.random() * 100;
32 | const loveIndex = Math.floor(love / 10);
33 | const loveLevel = "💖".repeat(loveIndex) + "💔".repeat(10 - loveIndex);
34 |
35 | const embed = new MessageEmbed()
36 | .setColor("#ffb6c1")
37 | .addField(`☁ **${person.displayName}** loves **${message.member.displayName}** this much:`,
38 | `💟 ${Math.floor(love)}%\n\n${loveLevel}`);
39 |
40 | message.channel.send(embed);
41 | }
42 | }
--------------------------------------------------------------------------------
/commands/games/reverse.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | config: {
3 | name: "reverse",
4 | aliases: ["rvc"],
5 | usage: "",
6 | category: "games",
7 | description: "Reverse the word you have given!",
8 | accessableby: "Members"
9 | },
10 | run: async (bot, message, args) => {
11 | if (args.length < 1) {
12 | throw 'You must input text to be reversed!';
13 | }
14 | message.reply(args.join(' ').split('').reverse().join(''));
15 | }
16 | }
--------------------------------------------------------------------------------
/commands/games/rps.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js");
2 | const { cyan } = require("../../colours.json");
3 | const { promptMessage } = require("../../function.js");
4 |
5 | const chooseArr = ["🗻", "📰", "✂"];
6 |
7 | module.exports = {
8 | config: {
9 | name: "rps",
10 | aliases: ["rps"],
11 | usage: "!!rps",
12 | category: "games",
13 | description: "Rock Paper Scissors game. React to one of the emojis to play the game.",
14 | accessableby: "Members"
15 | },
16 | run: async (bot, message, args) => {
17 | const embed = new MessageEmbed()
18 | .setColor(cyan)
19 | .setFooter(message.guild.me.displayName, bot.user.displayAvatarURL())
20 | .setDescription("Add a reaction to one of these emojis to play the game!")
21 | .setTimestamp();
22 |
23 | const m = await message.channel.send(embed);
24 | const reacted = await promptMessage(m, message.author, 30, chooseArr);
25 |
26 | const botChoice = chooseArr[Math.floor(Math.random() * chooseArr.length)];
27 |
28 | const result = await getResult(reacted, botChoice);
29 | await m.clearReactions();
30 |
31 | embed
32 | .setDescription("")
33 | .addField(result, `${reacted} vs ${botChoice}`);
34 |
35 | m.edit(embed);
36 |
37 | function getResult(me, botChosen) {
38 | if ((me === "🗻" && botChosen === "✂") ||
39 | (me === "📰" && botChosen === "🗻") ||
40 | (me === "✂" && botChosen === "📰")) {
41 | return "You won!";
42 | } else if (me === botChosen) {
43 | return "It's a tie!";
44 | } else {
45 | return "You lost!";
46 | }
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/commands/image/alpaca.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { cyan } = require("../../colours.json");
3 | const fetch = require('node-fetch');
4 |
5 | module.exports = {
6 | config: {
7 | name: "alpaca",
8 | description: "sends a picture of a alpaca!",
9 | usage: "",
10 | category: "image",
11 | accessableby: "Members",
12 | aliases: ["catto"]
13 | },
14 | run: async (bot, message, args) => {
15 | let msg = await message.channel.send("Generating...")
16 |
17 | fetch("https://apis.duncte123.me/alpaca")
18 | .then(res => res.json()).then(body => {
19 | if(!body) return message.reply(" whoops. I broke, try again!")
20 |
21 | let embed = new MessageEmbed()
22 | .setColor(cyan)
23 | .setAuthor(`${bot.user.username} Alpaca!`, message.guild.iconURL())
24 | .setImage(body.data.file)
25 | .setTimestamp()
26 | .setFooter(bot.user.username.toUpperCase(), bot.user.displayAvatarURL())
27 |
28 | msg.edit(embed)
29 | })
30 | }
31 | }
--------------------------------------------------------------------------------
/commands/image/cat.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { light_blue } = require("../../colours.json");
3 | const fetch = require("node-fetch")
4 |
5 | module.exports = {
6 | config: {
7 | name: "cat",
8 | aliases: ["cats"],
9 | usage: "!!cat",
10 | category: "image",
11 | description: "Shows a cute pictures of cat!",
12 | accessableby: "Members"
13 | },
14 | run: async (bot, message, args) => {
15 | let msg = await message.channel.send("Generating...")
16 |
17 | fetch('http://aws.random.cat/meow')
18 | .then(res => res.json()).then(body => {
19 |
20 |
21 | if(!body) return message.channel.send("I broke! Try again.")
22 |
23 | let cEmbed = new MessageEmbed()
24 | .setColor(light_blue)
25 | .setAuthor(`${bot.user.username.toUpperCase()} Cats!`, message.guild.iconURL())
26 | .setImage(body.file)
27 | .setTimestamp()
28 | .setFooter(bot.user.username.toUpperCase(), bot.user.displayAvatarURL())
29 |
30 | message.channel.send(cEmbed)
31 |
32 | msg.delete();
33 | })
34 | }
35 | }
--------------------------------------------------------------------------------
/commands/image/dog.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { light_blue } = require("../../colours.json");
3 | const fetch = require("node-fetch")
4 |
5 | module.exports = {
6 | config: {
7 | name: "dog",
8 | aliases: ["dogs"],
9 | usage: "!!cat",
10 | category: "image",
11 | description: "Shows a cute pictures of dog!",
12 | accessableby: "Members"
13 | },
14 | run: async (bot, message, args) => {
15 | let msg = await message.channel.send("Generating...")
16 |
17 | fetch('https://dog.ceo/api/breeds/image/random')
18 | .then(res => res.json()).then(body => {
19 |
20 |
21 | if(!body) return message.channel.send("I broke! Try again.")
22 |
23 | let cEmbed = new MessageEmbed()
24 | .setColor(light_blue)
25 | .setAuthor(`${bot.user.username.toUpperCase()} Dogs!`, message.guild.iconURL())
26 | .setImage(body.message)
27 | .setTimestamp()
28 | .setFooter(bot.user.username.toUpperCase(), bot.user.displayAvatarURL())
29 |
30 | message.channel.send(cEmbed)
31 |
32 | msg.delete();
33 | })
34 | }
35 | }
--------------------------------------------------------------------------------
/commands/image/llama.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { cyan } = require("../../colours.json");
3 | const fetch = require('node-fetch');
4 |
5 | module.exports = {
6 | config: {
7 | name: "llama",
8 | description: "Sends a picture of a llama!",
9 | usage: "",
10 | category: "image",
11 | accessableby: "Members",
12 | },
13 | run: async (bot, message, args) => {
14 | let msg = await message.channel.send("Generating...")
15 |
16 | fetch("https://apis.duncte123.me/llama")
17 | .then(res => res.json()).then(body => {
18 | if(!body) return message.reply(" whoops. I broke, try again!")
19 |
20 | let embed = new MessageEmbed()
21 | .setColor(cyan)
22 | .setAuthor(`${bot.user.username} Llama!`, message.guild.iconURL())
23 | .setImage(body.data.file)
24 | .setTimestamp()
25 | .setFooter(bot.user.username.toUpperCase(), bot.user.displayAvatarURL())
26 |
27 | msg.edit(embed)
28 | })
29 | }
30 | }
--------------------------------------------------------------------------------
/commands/image/meme.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { red } = require("../../colours.json");
3 | const fetch = require('node-fetch');
4 |
5 | module.exports = {
6 | config: {
7 | name: "meme",
8 | description: "Sends a meme from a website!",
9 | usage: "",
10 | category: "image",
11 | accessableby: "Members",
12 | },
13 | run: async (bot, message, args) => {
14 | let msg = await message.channel.send("Generating...")
15 |
16 | fetch("https://apis.duncte123.me/meme")
17 | .then(res => res.json()).then(body => {
18 | if(!body || !body.data.image) return message.reply(" whoops. I broke, try again!")
19 |
20 | let embed = new MessageEmbed()
21 | .setColor(red)
22 | .setAuthor(`${bot.user.username} meme!`, message.guild.iconURL())
23 | .setImage(body.data.image)
24 | .setTimestamp()
25 | .setFooter(bot.user.username.toUpperCase(), bot.user.displayAvatarURL())
26 | msg.edit(embed)
27 | })
28 | }
29 | }
--------------------------------------------------------------------------------
/commands/image/pepe.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { cyan } = require("../../colours.json");
3 | const fetch = require('node-fetch');
4 |
5 | module.exports = {
6 | config: {
7 | name: "pepe",
8 | description: "",
9 | usage: "!!pepe",
10 | category: "image",
11 | accessableby: "Members",
12 | },
13 | run: async (bot, message, args) => {
14 | let pepe1 = new MessageEmbed()
15 | .setColor(cyan)
16 | .setImage("https://cdn.discordapp.com/emojis/428556352915505165.png?v=1");
17 |
18 | let pepe2 = new MessageEmbed()
19 | .setColor(cyan)
20 | .setImage("https://cdn.discordapp.com/emojis/428556326482739230.png?v=1");
21 |
22 | let pepe3 = new MessageEmbed()
23 | .setColor(cyan)
24 | .setImage("https://cdn.discordapp.com/emojis/428556486235389973.png?v=1");
25 |
26 | let pepe4 = new MessageEmbed()
27 | .setColor(cyan)
28 | .setImage("https://cdn.discordapp.com/emojis/428556308929576960.png?v=1");
29 |
30 | let pepe5 = new MessageEmbed()
31 | .setColor(cyan)
32 | .setImage("https://cdn.discordapp.com/emojis/428556295218659329.png?v=1");
33 |
34 | let pepe6 = new MessageEmbed()
35 | .setColor(cyan)
36 | .setImage("https://cdn.discordapp.com/emojis/428556467021545473.png?v=1");
37 |
38 | let pepe7 = new MessageEmbed()
39 | .setColor(cyan)
40 | .setImage("https://cdn.discordapp.com/emojis/428556448507625474.png?v=1");
41 |
42 | let pepe8 = new MessageEmbed()
43 | .setColor(cyan)
44 | .setImage("https://cdn.discordapp.com/emojis/428556377754042378.png?v=1");
45 |
46 | let pepe9 = new MessageEmbed()
47 | .setColor(cyan)
48 | .setImage("https://cdn.discordapp.com/emojis/428556281767526405.png?v=1");
49 |
50 | let pepe10 = new MessageEmbed()
51 | .setColor(cyan)
52 | .setImage("https://cdn.discordapp.com/emojis/428556266366042112.png?v=1");
53 |
54 | let pepes = [pepe1, pepe2, pepe3, pepe4, pepe5, pepe6, pepe7, pepe8, pepe9, pepe10]
55 |
56 | let dapepe = Math.floor((Math.random() * pepes.length));
57 |
58 | message.channel.send(pepes[dapepe])
59 | }
60 | }
--------------------------------------------------------------------------------
/commands/image/seal.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { cyan } = require("../../colours.json");
3 | const fetch = require('node-fetch');
4 |
5 | module.exports = {
6 | config: {
7 | name: "seal",
8 | description: "Sends a picture of a seal!",
9 | usage: "",
10 | category: "image",
11 | accessableby: "Members",
12 | },
13 | run: async (bot, message, args) => {
14 | let msg = await message.channel.send("Generating...")
15 |
16 | fetch("https://apis.duncte123.me/seal")
17 | .then(res => res.json()).then(body => {
18 | if(!body) return message.reply(" whoops. I broke, try again!")
19 |
20 | let embed = new MessageEmbed()
21 | .setColor(cyan)
22 | .setAuthor(`${bot.user.username} Seal!`, message.guild.iconURL())
23 | .setImage(body.data.file)
24 | .setTimestamp()
25 | .setFooter(bot.user.username.toUpperCase(), bot.user.displayAvatarURL())
26 |
27 | msg.edit(embed)
28 | })
29 | }
30 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/avatar.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { pink } = require("../../colours.json");
3 | const fetch = require("node-fetch")
4 |
5 | module.exports = {
6 | config: {
7 | name: "avatar",
8 | aliases: ["av"],
9 | usage: "!!av",
10 | category: "miscellaneous",
11 | description: "Shows your avatar!",
12 | accessableby: "Members"
13 | },
14 | run: async (bot, message, args) => {
15 | let user = message.mentions.users.first();
16 | if(!user) user = message.author;
17 | let color = message.member.displayHexColor;
18 | if (color == '#fa287c') color = message.member.hoistRole.hexColor;
19 | const embed = new MessageEmbed()
20 | .setImage(user.displayAvatarURL({ dynamic: true }))
21 | .setColor(pink)
22 | message.channel.send({embed});
23 | }
24 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/botinfo.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { main_ownerid } = require("../../botconfig")
3 |
4 | module.exports = {
5 | config: {
6 | name: "botinfo",
7 | aliases: ["bi"],
8 | usage: "!!botinfo",
9 | category: "miscellaneous",
10 | description: "Shows the bot info!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | let inline = true
15 | let bicon = bot.user.displayAvatarURL();
16 | let usersize = bot.users.cache.size
17 | let chansize = bot.channels.cache.size
18 | let uptimxd = bot.uptime
19 | let servsize = bot.guilds.cache.size
20 | let botembed = new MessageEmbed()
21 | .setColor("#00ff00")
22 | .setThumbnail(bicon)
23 | .addField("Bot Name", `${bot.user.username}`, inline)
24 | .addField("Bot Owner", bot.users.cache.get(main_ownerid).tag, inline )
25 | .addField("Servers", `${servsize}`, inline)
26 | .addField("Channels", `${chansize}`, inline)
27 | .addField("Users", `${usersize}`, inline)
28 | .addField("Bot Library", "Discord.js", inline)
29 | .addField("Created On", bot.user.createdAt)
30 | .setFooter(`Information about: ${bot.user.username}. Developed by: ${bot.users.cache.get(main_ownerid).username}`)
31 | .setTimestamp()
32 |
33 | message.channel.send(botembed);
34 | }
35 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/cnjoke.js:
--------------------------------------------------------------------------------
1 | const { RichEmbed } = require("discord.js")
2 | let giveMeAJoke = require('give-me-a-joke');;
3 |
4 | module.exports = {
5 | config: {
6 | name: "cnjoke",
7 | aliases: ["cnjk"],
8 | usage: "!!cnjoke",
9 | category: "miscellaneous",
10 | description: "Send joke!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | giveMeAJoke.getRandomCNJoke(function(joke){
15 | message.channel.send(joke)
16 | })
17 | }
18 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/contact.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { pink } = require("../../colours.json");
3 | const fetch = require("node-fetch")
4 | const { report_channelid } = require("../../botconfig")
5 |
6 | module.exports = {
7 | config: {
8 | name: "contact",
9 | aliases: ["helpline"],
10 | usage: "!!contact",
11 | category: "miscellaneous",
12 | description: "Please fell free to submit the bug occured in the bot!",
13 | accessableby: "Members"
14 | },
15 | run: async (bot, message, args) => {
16 | if(args[0] == "help"){
17 | let helpembxd = new MessageEmbed()
18 | .setColor(pink)
19 | .addField("Contact Command", "Usage: !Contact ")
20 |
21 | message.channel.send(helpembxd);
22 | return;
23 | }
24 |
25 | let Invite = await message.guild.channels.find((c) => c.type === 'text').createInvite()
26 | let Sender = message.author;
27 | const sayMessage = args.join(" ");
28 | if(!sayMessage) return message.channel.send("Please give us reason for contacting").then(msg => {msg.delete(5000)});
29 |
30 | let contact = new MessageEmbed()
31 | .setColor(pink)
32 | .setThumbnail(Sender.displayAvatarURL())
33 | .setDescription(`Contact message from [${message.guild.name}](${Invite.url})`)
34 | .setTitle("Message from contact command!")
35 | .addField("User", Sender, true)
36 | .addField("User ID: ", Sender.id, true)
37 | .addField("Message: ", sayMessage)
38 | .setTimestamp()
39 |
40 | bot.channels.cache.get(report_channelid).send(contact);
41 |
42 | let embed = new MessageEmbed()
43 | .setColor(pink)
44 | .setTitle("Message Sent!")
45 | .setDescription("Your contact message has been sent!")
46 | .addField("Reqested by ", Sender)
47 | .addField("Message: ", sayMessage)
48 | .setFooter("Thanks you for contacting with Us!")
49 |
50 | message.channel.send(embed).then(msg => {msg.delete(20000)});
51 |
52 | message.delete();
53 | }
54 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/help.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js");
2 | const { prefix, support_server } = require("../../botconfig.json");
3 | const { readdirSync } = require("fs")
4 | const { stripIndents } = require("common-tags")
5 | const { red } = require("../../colours.json")
6 |
7 | module.exports = {
8 | config: {
9 | name: "help",
10 | aliases: ["halp", "commands"],
11 | usage: "(command)",
12 | category: "miscellaneous",
13 | description: "Displays all commands that the bot has.",
14 | accessableby: "Members"
15 | },
16 | run: async (bot, message, args) => {
17 | const embed = new MessageEmbed()
18 | .setColor(red)
19 | .setAuthor(`${message.guild.me.displayName} Help`, message.guild.iconURL())
20 | .setThumbnail(bot.user.displayAvatarURL())
21 | .setImage('https://cdn.discordapp.com/attachments/632098744262721564/633640689955110912/nitro.gif')
22 |
23 | if(!args[0]) {
24 | const categories = readdirSync("./commands/")
25 |
26 | embed.setDescription(`These are the avaliable commands for ${message.guild.me.displayName}\nThe bot prefix is: **${prefix}**`)
27 | embed.setFooter(`Make Sure To Use The Prefix Before The Commands. PREFIX Is ${prefix}. If You Find Any Bug, Feel Free To Report Them Using !!contact `);
28 |
29 | categories.forEach(category => {
30 | const dir = bot.commands.filter(c => c.config.category === category)
31 | const capitalise = category.slice(0, 1).toUpperCase() + category.slice(1)
32 | try {
33 | embed.addField(`❯ ${capitalise} [${dir.size}]:`, dir.map(c => `\`${c.config.name}\``).join(" "));
34 | } catch(e) {
35 | console.log(e)
36 | }
37 | })
38 |
39 | embed.addField("❯ Support Us:", `[Support Server](${support_server}) | [Bot Invite](https://discordapp.com/oauth2/authorize?client_id=${bot.user.id}&scope=bot&permissions=8)`)
40 |
41 | return message.channel.send(embed)
42 | } else {
43 | let command = bot.commands.get(bot.aliases.get(args[0].toLowerCase()) || args[0].toLowerCase())
44 | if(!command) return message.channel.send(embed.setTitle("Invalid Command.").setDescription(`Do \`${prefix}help\` for the list of the commands.`))
45 | command = command.config
46 |
47 | embed.setDescription(stripIndents`The bot's prefix is: \`${prefix}\`\n
48 | **Command:** ${command.name.slice(0, 1).toUpperCase() + command.name.slice(1)}
49 | **Description:** ${command.description || "No Description provided."}
50 | **Usage:** ${command.usage ? `\`${prefix}${command.name} ${command.usage}\`` : "No Usage"}
51 | **Accessible by:** ${command.accessableby || "Members"}
52 | **Aliases:** ${command.aliases ? command.aliases.join(", ") : "None."}`)
53 |
54 | embed.addField("❯ Support Us:", `[Support Server](${support_server}) | [Bot Invite](https://discordapp.com/oauth2/authorize?client_id=${bot.user.id}&scope=bot&permissions=8)`)
55 |
56 | return message.channel.send(embed)
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/instagram.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | const Insta = require('scraper-instagram');
3 | const AlixInstagram = new Insta();
4 | const { InstaToken } = require("../../botconfig")
5 | let yourSessionId = InstaToken;
6 |
7 | module.exports = {
8 | config: {
9 | name: "instagram",
10 | aliases: ["insta"],
11 | category: "general",
12 | accessableby: "ALL"
13 | },
14 | run: async (bot, message, args) => {
15 | //get the name to search for
16 | if (!args[0]) {
17 | return message.channel.send(`**Please provide me a valid Instagram name!**`)
18 | }
19 | try{
20 | AlixInstagram.authBySessionId(yourSessionId)
21 | .then((Insta) => {
22 | AlixInstagram.getProfile(args[0])
23 | .then(alix => {
24 | const embed = new Discord.MessageEmbed()
25 | .setAuthor(`Requested by ${message.author.tag}`, message.author.displayAvatarURL({
26 | dynamic: true
27 | }))
28 | .setColor("RANDOM")
29 | .setTitle(`${alix.name} Instagram Profile`)
30 | .setURL(alix.link)
31 | .setThumbnail(alix.pic)
32 | .setDescription(`
33 | **ID**: ${alix.id}
34 | **Nickname :** ${alix.name}
35 | **Followers :** ${alix.followers} followers
36 | **Following :** ${alix.following} following
37 | **Posts :** ${alix.posts || 0}
38 | **Private :** ${alix.private ? "Yes 🔐" : "No 🔓"}
39 | **Verified :** ${alix.verified ? "Yes " : "No"}
40 | **Biography :** ${alix.bio || "No Bio"}
41 | **Website :** ${alix.website || "No Website"}`)
42 | message.channel.send(embed)
43 | })
44 |
45 | })
46 | } catch (err) {
47 | console.error(err);
48 | }
49 | }
50 | };
51 |
--------------------------------------------------------------------------------
/commands/miscellaneous/joke.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | let giveMeAJoke = require('give-me-a-joke');;
3 |
4 | module.exports = {
5 | config: {
6 | name: "joke",
7 | aliases: ["jk"],
8 | usage: "!!joke",
9 | category: "miscellaneous",
10 | description: "Send joke!",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | giveMeAJoke.getRandomDadJoke(function(joke){
15 | message.channel.send(joke)
16 | })
17 | }
18 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/myinfo.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const botconfig = require("../../botconfig.json");
3 | const colours = require("../../colours.json");
4 |
5 |
6 | module.exports.run = async (bot, message, args) => {
7 | let uEmbed = new Discord.MessageEmbed()
8 | .setColor(colours.dark_blue)
9 | .setTitle("Server Info")
10 | .setThumbnail(message.author.displayAvatarURL({ dynamic: true }))
11 | .setAuthor(`${message.author.username} Info`, message.author.displayAvatarURL())
12 | .addField("**Username:**", `${message.author.username}`, true)
13 | .addField("**Discriminator:**", `${message.author.discriminator}`, true)
14 | .addField("**ID:**", `${message.author.id}`, true)
15 | .addField("**Status:**", `${message.author.presence.status}`, true)
16 | .addField("**Created AT:**", `${message.author.createdAt}`, true)
17 | .setTimestamp()
18 | .setFooter(bot.user.username, bot.user.displayAvatarURL());
19 | message.channel.send({embed: uEmbed});
20 | }
21 |
22 |
23 | module.exports.config = {
24 | name: "myinfo",
25 | aliases: ["myinfo"],
26 | usage: "!!myinfo",
27 | category: "miscellaneous",
28 | description: "Shows about your information!",
29 | accessableby: "Members"
30 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/overwatch.js:
--------------------------------------------------------------------------------
1 |
2 | const { MessageEmbed } = require("discord.js");
3 | const { cyan } = require("../../colours.json");
4 | const { stripIndents } = require("common-tags");
5 | const overwatch = require("overwatch-api");
6 |
7 | module.exports = {
8 | config: {
9 | name: "overwatch",
10 | description: "Displays a user's overwatch stats!",
11 | usage: " ",
12 | category: "miscellaneous",
13 | accessableby: "Members",
14 | aliases: ["ow"]
15 | },
16 | run: async (bot, message, args) => {
17 | if(!args[0]) return message.channel.send("Please supply a username.");
18 | if(!args[1] || (args[1] && !["pc", "xbl", "psn"].includes(args[1]))) return message.channel.send("Please supply a platform to check. `pc`, `xbox` or `psn`");
19 | if(args[0].includes("#")) args[0] = args[0].replace(/#/g, "-");
20 |
21 | overwatch.getProfile(args[1], "global", args[0], (err, json) => {
22 | if (err) return message.channel.send("Unable to find a user with that username.");
23 | const { games, level, portrait, username, playtime: { competitive, quickplay }, private } = json;
24 | const { sportsmanship, shotcaller, teammate } = json.endorsement;
25 | const { won, draw, played, lost, win_rate } = json.games.competitive;
26 |
27 | if(private) return message.channel.send("This users stats are private and cant be seen by anyone.");
28 |
29 | const embed = new MessageEmbed()
30 | .setColor(cyan)
31 | .setAuthor(`Blizzard (Overwatch) | ${username}`, portrait)
32 | .setThumbnail(portrait)
33 | .addField("General:", stripIndents`
34 | **Level:** ${level || 0}
35 | **Sportsmanship:** ${sportsmanship.rate || 0} / 100
36 | **Shotcaller:** ${shotcaller.rate || 0} / 100
37 | **Teammate:** ${teammate.rate || 0} / 100
38 | `)
39 | .addField("Competitive:", stripIndents`
40 | **Played:** ${played || 0}
41 | **Won:** ${won || 0}
42 | **Draw:** ${draw || 0}
43 | **Lost:** ${lost || 0}
44 | **Win Rate:** ${win_rate || 0}
45 | **Playtime:** ${competitive || 0}
46 | `, true)
47 | .addField("QuickPlay:", stripIndents`
48 | **Played:** ${games.quickplay.played || "N/A"}
49 | **Won:** ${games.quickplay.won || 0}
50 | **Playtime:** ${quickplay || 0}
51 | `, true)
52 | .setTimestamp();
53 |
54 | message.channel.send(embed);
55 |
56 | })
57 | }
58 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/ping.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const botconfig = require("../../botconfig.json");
3 | const colours = require("../../colours.json");
4 | const prefix = botconfig.prefix
5 |
6 |
7 | module.exports.run = async (bot, message, args) => {
8 |
9 | message.channel.send("Pinging...").then(m => {
10 | let ping = m.createdTimestamp - message.createdTimestamp
11 | let choices = ["***:ping_pong: Is this really my ping***", "***:ping_pong: Is it okay? I cant look***", "***:ping_pong: I hope it isnt bad***"]
12 | let response = choices[Math.floor(Math.random() * choices.length)]
13 |
14 | m.edit(`${response}:\n**Bot Latency:** \`${ping}\`,\n**API Latency:** \`${Math.round(bot.ping)}\``)
15 | })
16 |
17 | }
18 |
19 |
20 | module.exports.config = {
21 | name: "ping",
22 | description: "PONG! Displays the api & latency",
23 | usage: "!!ping",
24 | category: "miscellaneous",
25 | accessableby: "Members",
26 | aliases: ["latency"]
27 | }
28 |
--------------------------------------------------------------------------------
/commands/miscellaneous/rate.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 |
3 | module.exports = {
4 | config: {
5 | name: "rate",
6 | aliases: ["rate"],
7 | usage: "!!rate",
8 | category: "miscellaneous",
9 | description: "Rate us with no. 1-10.",
10 | accessableby: "Members"
11 | },
12 | run: async (bot, message, args) => {
13 | let ratus = message.mentions.members.first();
14 | if(!ratus) return message.channel.send("Tag someone to rate them!");
15 |
16 | let rates = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
17 |
18 | let result = Math.floor((Math.random() * rates.length));
19 |
20 | if(ratus.user.id === message.author.id) {
21 | return message.channel.send(`**${message.author.username}**, I'd give you ${result}/10<:thonk:427846193503272960>`);
22 | } else return message.channel.send(`I'd give **__${ratus.user.username}__** ${result}/10 <:thonk:427846193503272960>`);
23 | }
24 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/report.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = {
3 | config: {
4 | name: "report",
5 | category: "miscellaneous",
6 | description: "reports a user of the guild",
7 | usage: "!report ",
8 | accessableby: "Members",
9 | },
10 | run: async (bot, message, args) => {
11 |
12 | message.delete()
13 | // mentioned or grabbed user
14 | let target = message.mentions.members.first() || message.guild.members.get(args[0])
15 | if(!target) return message.channel.send("Please provide a valid user").then(m => m.delete(15000))
16 |
17 | // reasoning definition
18 | let reason = args.slice(1).join(" ")
19 | if(!reason) return message.channel.send(`Please provide a reason for reporting **${target.user.tag}**`).then(m => m.delete(15000))
20 |
21 | // grab reports channel
22 | let sChannel = message.guild.channels.find(x => x.name === "report")
23 |
24 | // send to reports channel and add tick or cross
25 |
26 | message.channel.send("Your report has been filed to the staff team. Thank you!").then(m => m.delete(15000))
27 | sChannel.send(`**${message.author.tag}** has reported **${target.user.tag}** for **${reason}**.`).then(async msg => {
28 | await msg.react("✅")
29 | await msg.react("❌")
30 | })
31 |
32 | }
33 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/roleinfo.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 | const { red } = require("../../colours.json");
3 | const fetch = require("node-fetch")
4 |
5 | module.exports = {
6 | config: {
7 | name: "roleinfo",
8 | aliases: ["ri"],
9 | usage: "!!roleinfo",
10 | category: "miscellaneous",
11 | description: "Shows the info of the role!",
12 | accessableby: "Members"
13 | },
14 | run: async (bot, message, args) => {
15 | let inline = true
16 |
17 | let role = message.guild.roles.cache.find(r => r.name == args[1]) || message.guild.roles.cache.find(r => r.id == args[1]) || message.mentions.roles.first()
18 | if(!role) return message.reply("Specify a role!");
19 |
20 | const status = {
21 | false: "No",
22 | true: "Yes"
23 | }
24 |
25 | let roleemebed = new MessageEmbed()
26 | .setColor(role.hexColor)
27 | .addField("ID", role.id, inline )
28 | .addField("Name", role.name, inline)
29 | .addField("Mention", `\`<@${role.id}>\``, inline)
30 | .addField("Hex", role.hexColor, inline)
31 | .addField("Members", role.members.size, inline)
32 | .addField("Position", role.position, inline)
33 | .addField("Hoisted", status[role.hoist], inline)
34 | .addField("Mentionable", status[role.mentionable], inline)
35 | .addField("Managed", status[role.managed], inline)
36 |
37 | message.channel.send(roleemebed);
38 | }
39 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/serverinfo.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const botconfig = require("../../botconfig.json");
3 | const colours = require("../../colours.json");
4 |
5 |
6 | module.exports.run = async (bot, message, args) => {
7 | let sEmbed = new Discord.MessageEmbed()
8 | .setColor(colours.red)
9 | .setTitle("Server Info")
10 | .setThumbnail(message.guild.iconURL())
11 | .setAuthor(`${message.guild.name} Info`, message.guild.iconURL())
12 | .addField("**Guild Name:**", `${message.guild.name}`, true)
13 | .addField("**Guild Owner:**", `${message.guild.owner}`, true)
14 | .addField("**Member Count:**", `${message.guild.memberCount}`, true)
15 | .addField("**Role Count:**", `${message.guild.roles.cache.size}`, true)
16 | .addField("**Channel Count:**", `${message.guild.channels.cache.size}`, true)
17 | .addField("**Voice Channel Count:**", `${message.guild.channels.cache.filter((c) => c.type === "voice").size}`, true)
18 | .addField("**Created At:**", `${message.guild.createdAt()}`, true)
19 | .setTimestamp()
20 | .setFooter(bot.user.username, bot.user.displayAvatarURL());
21 | message.channel.send({embed: sEmbed});
22 | }
23 |
24 |
25 | module.exports.config = {
26 | name: "serverinfo",
27 | aliases: ["serverinfo"],
28 | usage: "!!serverinfo",
29 | category: "miscellaneous",
30 | description: "Shows about the server information!",
31 | accessableby: "Members"
32 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/stats.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const os = require('os')
3 | const cpuStat = require("cpu-stat");
4 | const moment = require("moment")
5 |
6 | module.exports = {
7 | config: {
8 | name: "stats",
9 | aliases: ["stat"],
10 | usage: "",
11 | category: "miscellaneous",
12 | description: "AYAAN GAMING Status!",
13 | accessableby: "Members"
14 | },
15 | run: async (bot, message, args) => {
16 | let { version } = require("discord.js");
17 |
18 | cpuStat.usagePercent(function(err, percent, seconds) {
19 | if (err) {
20 | return console.log(err);
21 | }
22 |
23 | let secs = Math.floor(bot.uptime % 60);
24 | let days = Math.floor((bot.uptime % 31536000) / 86400);
25 | let hours = Math.floor((bot.uptime / 3600) % 24);
26 | let mins = Math.floor((bot.uptime / 60) % 60);
27 |
28 | //let duration = moment.duration(bot.uptime).format(" D [days], H [hrs], m [mins], s [secs]");
29 | let embedStats = new Discord.MessageEmbed()
30 | .setTitle("*** Stats ***")
31 | .setColor("RANDOM")
32 | .addField("• Mem Usage", `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)} / ${(os.totalmem() / 1024 / 1024).toFixed(2)} MB`, true)
33 | .addField("• Uptime ", `${hours}h ${mins}m`, true) //`${duration}`, true)
34 | .addField("• Users", `${bot.users.size.toLocaleString()}`, true)
35 | .addField("• Servers", `${bot.guilds.size.toLocaleString()}`, true)
36 | .addField("• Channels ", `${bot.channels.size.toLocaleString()}`, true)
37 | .addField("• Discord.js", `v${version}`, true)
38 | // .addField("• Node", `${process.version}`, true)
39 | .addField("• CPU", `\`\`\`md\n${os.cpus().map(i => `${i.model}`)[0]}\`\`\``)
40 | .addField("• CPU usage", `\`${percent.toFixed(2)}%\``,true)
41 | .addField("• Arch", `\`${os.arch()}\``,true)
42 | .addField("• Platform", `\`\`${os.platform()}\`\``,true)
43 | .setFooter(bot.user.username + " stats")
44 |
45 | message.channel.send(embedStats)
46 | })
47 | }
48 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/uptime.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const botconfig = require("../../botconfig.json");
3 | const colours = require("../../colours.json");
4 | const prefix = botconfig.prefix
5 |
6 |
7 | module.exports.run = async (bot, message, args) => {
8 |
9 | function duration(ms) {
10 | const sec = Math.floor((ms / 1000) % 60).toString()
11 | const min = Math.floor((ms / (1000 * 60)) % 60).toString()
12 | const hrs = Math.floor((ms / (1000 * 60 * 60)) % 60).toString()
13 | const days = Math.floor((ms / (1000 * 60 * 60 * 24)) % 60).toString()
14 | return `${days.padStart(1, '0')} days, ${hrs.padStart(2, '0')} hours, ${min.padStart(2, '0')} minutes, ${sec.padStart(2, '0')} seconds, `
15 | }
16 |
17 | message.channel.send(`**I have been online for:** \`${duration(bot.uptime)}\``)
18 |
19 | }
20 |
21 |
22 | module.exports.config = {
23 | name: "uptime",
24 | description: "Displays the bots current uptime!",
25 | usage: "!!uptime",
26 | category: "miscellaneous",
27 | accessableby: "Members",
28 | aliases: ["ut"]
29 | }
30 |
--------------------------------------------------------------------------------
/commands/miscellaneous/weather.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js");
2 | const weather = require("weather-js");
3 |
4 | module.exports = {
5 | config: {
6 | name: "weather",
7 | aliases: ["climate"],
8 | usage: "!!weather",
9 | category: "miscellaneous",
10 | description: "Shows the weather status.",
11 | accessableby: "Members"
12 | },
13 | run: async (bot, message, args) => {
14 | weather.find({search: args.join(" "), degreeType: "C"}, function(err, result) {
15 | if(err) message.channel.send(err)
16 |
17 | //If the place entered is invalid
18 | if(result.length === 0) {
19 | message.channel.send("**please enter a valid location**")
20 | return;
21 | }
22 |
23 | //Variables
24 | var current = result[0].current //Variable for the current part of the JSON Output
25 | var location = result[0].location //This is a variable for the location part of the JSON Output
26 |
27 | //Sends weather log in embed
28 | let embed = new MessageEmbed()
29 | .setDescription(`**${current.skytext}**`) //How the sky looks like
30 | .setAuthor(`Weather for ${current.observationpoint}`) //Shows the current location of the weater
31 | .setThumbnail(current.imageUrl) //Sets thumbnail of the embed
32 | .setColor(0x00AE86) //Sets the color of the embed
33 | .addField("Timezone", `UTC${location.timezone}`, true) //Shows the timezone
34 | .addField("Degree Type", location.degreetype, true) //Shows the degrees in Celcius
35 | .addField("Temperature", `${current.temperature}`, true)
36 | .addField("Feels like", `${current.feelslike} Degrees`, true)
37 | .addField("Winds", current.winddisplay, true)
38 | .addField("Humidity", ` ${current.humidity}%`, true)
39 | .addField("Day", `${current.day}`, true)
40 | .addField("Date", `${current.date}`, true)
41 |
42 | //Display when it's called
43 | message.channel.sendEmbed(embed)
44 |
45 | });
46 |
47 | message.delete();
48 | }
49 | }
--------------------------------------------------------------------------------
/commands/miscellaneous/yomamma.js:
--------------------------------------------------------------------------------
1 | const yoMamma = require('yo-mamma').default;
2 |
3 | module.exports = {
4 | config: {
5 | name: "yomamma",
6 | aliases: ["ym"],
7 | usage: "!!yomamma",
8 | category: "miscellaneous",
9 | description: "",
10 | accessableby: "Members"
11 | },
12 | run: async (bot, message, args) => {
13 |
14 | let insult = yoMamma();
15 |
16 | message.channel.send(insult)
17 | }
18 | }
--------------------------------------------------------------------------------
/commands/moderation/addrole.js:
--------------------------------------------------------------------------------
1 | const { RichEmbed } = require("discord.js")
2 | const { redlight } = require("../../colours.json")
3 |
4 | module.exports= {
5 | config: {
6 | name: "addrole",
7 | description: "Adds a role to a member of the guild!",
8 | usage: "!!addrole",
9 | category: "moderation",
10 | accessableby: "Moderators",
11 | aliases: ["ar", "roleadd"]
12 | },
13 | run: async (bot, message, args) => {
14 |
15 | if(!message.member.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) return message.channel.send("You dont have permission to perform this command!")
16 |
17 | let rMember = message.mentions.members.first() || message.guild.members.cache.find(m => m.user.tag === args[0]) || message.guild.members.cache.get(args[0])
18 | if(!rMember) return message.channel.send("Please provide a user to add a role too.")
19 | let role = message.guild.roles.cache.find(r => r.name == args[1]) || message.guild.roles.cache.find(r => r.id == args[1]) || message.mentions.roles.first()
20 | if(!role) return message.channel.send("Please provide a role to add to said user.")
21 | let reason = args.slice(2).join(" ")
22 | if(!reason) return message.channel.send("Please provide a reason")
23 |
24 | if(!message.guild.me.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) return message.channel.send("I don't have permission to perform this command.")
25 |
26 | if(rMember.roles.has(role.id)) {
27 | return message.channel.send(`${rMember.displayName}, already has the role!`)
28 | } else {
29 | await rMember.roles.add(role.id).catch(e => console.log(e.message))
30 | message.channel.send(`The role, ${role.name}, has been added to ${rMember.displayName}.`)
31 | }
32 |
33 | }
34 | }
--------------------------------------------------------------------------------
/commands/moderation/ban.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | module.exports = {
3 | config: {
4 | name: "ban",
5 | aliases: ["banish"],
6 | category: "moderation",
7 | accessableby: "Members"
8 | },
9 | run: async (bot, message, args) => {
10 | let banned = message.mentions.users.first() || bot.users.resolve(args[0]);
11 | let reason = args.slice(1).join(" ");
12 |
13 | // MESSAGES
14 |
15 | if (!banned) {
16 | let baninfoembed = new Discord.MessageEmbed()
17 | .setTitle("Command: ban")
18 | .setDescription(
19 | `**Description:** Ban a member, optional time limit. \n` +
20 | "**Sub Commands:**\n" +
21 | "-ban save | Ban a user and save their messages in chat. \n" +
22 | "**Usage:**\n" +
23 | "-ban [user] (limit) (reason) \n" +
24 | "-ban save [user] (limit) (reason) \n" +
25 | "**Examples:** \n" +
26 | "-ban <@597253939469221891> 48h spam \n" +
27 | "-ban save <@597253939469221891> 48h spam "
28 | )
29 | .setColor("#2C2F33");
30 | message.channel.send(baninfoembed);
31 |
32 | return;
33 | }
34 |
35 | if (message.author === banned) {
36 | let sanctionyourselfembed = new Discord.MessageEmbed()
37 | .setDescription(`You cannot sanction yourself`)
38 | .setColor("#2C2F33");
39 | message.channel.send(sanctionyourselfembed);
40 |
41 | return;
42 | }
43 |
44 | if (!reason) {
45 | let noreasonembed = new Discord.MessageEmbed()
46 | .setDescription(`Enter a reason`)
47 | .setColor("#2C2F33");
48 | message.channel.send(noreasonembed);
49 |
50 | return;
51 | }
52 |
53 | if (!message.member.permissions.has("BAN_MEMBERS")) {
54 | let nopermsembed = new Discord.MessageEmbed()
55 | .setDescription(
56 | "You do not have permission `BAN MEMBERS` contact an administrator"
57 | )
58 | .setColor("#2C2F33");
59 | message.channel.send(nopermsembed);
60 |
61 | return;
62 | }
63 |
64 | if (!message.guild.me.permissions.has("BAN_MEMBERS")) {
65 | let botnopermsembed = new Discord.MessageEmbed()
66 | .setDescription(
67 | "I do not have `BAN MEMBERS` permission, please contact an administrator"
68 | )
69 | .setColor("#2C2F33");
70 | message.channel.send(botnopermsembed);
71 |
72 | return;
73 | }
74 |
75 | message.guild.members.ban(banned, { reason: reason });
76 |
77 | let successfullyembed = new Discord.MessageEmbed()
78 | .setTitle(`${banned.tag} has been successfully banned.`)
79 | .setColor("#2C2F33");
80 |
81 | message.channel.send(successfullyembed);
82 | }
83 | };
84 |
--------------------------------------------------------------------------------
/commands/moderation/clear.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | config: {
3 | name: "purge",
4 | aliases: ["delete", "clear", 'prune'],
5 | category: "moderation",
6 | description: "Deletes messages from a channel",
7 | usage: "delete [amount of messages]",
8 | accessableby: "Administrator"
9 | },
10 | run: async (bot, message, args) => {
11 | if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("You Don't Have Sufficient Permissions!- [MANAGE_MESSAGES]")
12 | if (isNaN(args[0]))
13 | return message.channel.send('**Please Supply A Valid Amount To Delete Messages!**');
14 |
15 | if (args[0] > 100)
16 | return message.channel.send("**Please Supply A Number Less Than 100!**");
17 |
18 | if (args[0] < 1)
19 | return message.channel.send("**Please Supply A Number More Than 1!**");
20 |
21 | message.channel.bulkDelete(args[0])
22 | .then(messages => message.channel.send(`**Succesfully deleted \`${messages.size}/${args[0]}\` messages**`).then(msg => msg.delete({ timeout: 2000 }))).catch(() => null)
23 | }
24 | }
--------------------------------------------------------------------------------
/commands/moderation/kick.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | module.exports = {
3 | config: {
4 | name: "kick",
5 | aliases: ["k"],
6 | category: "moderation",
7 | accessableby: "Members"
8 | },
9 | run: async (bot, message, args) => {
10 | let kicked = message.mentions.users.first() || bot.users.resolve(args[0]);
11 | let reason = args.slice(1).join(" ");
12 |
13 | // MESSAGES
14 |
15 | if (!kicked) {
16 | let kickinfoembed = new Discord.MessageEmbed()
17 | .setTitle("Command: kick")
18 | .setDescription(
19 | `**Description:** Kick a member. \n` +
20 | "**Sub Commands:**\n" +
21 | "\n" +
22 | "**Usage:**\n" +
23 | "-kick [user] (reason) \n" +
24 | "**Examples:** \n" +
25 | "-kick <@597253939469221891> spam"
26 | )
27 | .setColor("#2C2F33");
28 | message.channel.send(kickinfoembed);
29 |
30 | return;
31 | }
32 |
33 | if (message.author === kicked) {
34 | let sanctionyourselfembed = new Discord.MessageEmbed()
35 | .setDescription(`You cannot sanction yourself`)
36 | .setColor("#2C2F33");
37 | message.channel.send(sanctionyourselfembed);
38 |
39 | return;
40 | }
41 |
42 | if (!reason) {
43 | let noreasonembed = new Discord.MessageEmbed()
44 | .setDescription(`Enter a reason`)
45 | .setColor("#2C2F33");
46 | message.channel.send(noreasonembed);
47 |
48 | return;
49 | }
50 |
51 | if (!message.member.permissions.has("KICK_MEMBERS")) {
52 | let nopermsembed = new Discord.MessageEmbed()
53 | .setDescription(
54 | "You do not have permission `KICK MEMBERS` contact an administrator"
55 | )
56 | .setColor("#2C2F33");
57 | message.channel.send(nopermsembed);
58 |
59 | return;
60 | }
61 |
62 | if (!message.guild.me.permissions.has("KICK_MEMBERS")) {
63 | let botnopermsembed = new Discord.MessageEmbed()
64 | .setDescription(
65 | "I do not have `KICK MEMBERS` permission, please contact an administrator"
66 | )
67 | .setColor("#2C2F33");
68 | message.channel.send(botnopermsembed);
69 |
70 | return;
71 | }
72 |
73 | message.guild.member(kicked).kick(reason);
74 |
75 | let successfullyembed = new Discord.MessageEmbed()
76 | .setDescription(`${kicked.tag} has been successfully kicked.`)
77 | .setColor("#2C2F33");
78 |
79 | message.channel.send(successfullyembed);
80 | }
81 | };
82 |
--------------------------------------------------------------------------------
/commands/moderation/mute.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | const botconfig = require("../../botconfig.json");
3 | const ms = require("ms");
4 |
5 |
6 | module.exports.run = async (bot, message, args) => {
7 |
8 | if(!message.member.hasPermission("MANAGE_ROLES") || !message.guild.owner) {
9 | const embed2 = new Discord.MessageEmbed()
10 | .setColor("RED")
11 | .setDescription("You Don't Have Permission To Perform This Command!")
12 | return message.channel.send(embed2)
13 | }
14 |
15 | if(!message.guild.me.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) {
16 | const embed8 = new Discord.MessageEmbed()
17 | .setColor("RED")
18 | .setDescription("I Don't Have Permission To Perform This Command!")
19 | return message.channel.send(embed8)
20 | }
21 |
22 | let mutee = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
23 | if(!mutee) {
24 | const embed7 = new Discord.MessageEmbed()
25 | .setColor("RED")
26 | .setDescription("Please Provide Mention A Member To Mute!")
27 | return message.channel.send(embed7)
28 | }
29 |
30 | let reason = args.slice(1).join(" ");
31 | if(!reason) reason = "No reason given"
32 |
33 | let muterole = message.guild.roles.cache.find(r => r.name === "Muted")
34 | if(!muterole){
35 | try{
36 | muterole = await message.guild.roles.create({
37 | data: {
38 | name: "Muted",
39 | color: "#000000",
40 | permissions:[]
41 | }
42 | })
43 | message.guild.channels.cache.forEach(async (channel, id) => {
44 | await channel.updateOverwrite(muterole, {
45 | SEND_MESSAGES: false,
46 | ADD_REACTIONS: false
47 | });
48 | });
49 | }catch(e){
50 | console.log(e.stack);
51 | }
52 | }
53 |
54 |
55 | mutee.roles.add(muterole.id).then(() => {
56 | message.delete()
57 | const g = new Discord.MessageEmbed()
58 | .setDescription("Your punishment has been updated in "+message.guild.name)
59 | .setTitle(bot.user.username+" Moderation!")
60 | .addField("Action", "Mute", true)
61 | .addField("Action ID", mutee.user.id, true)
62 | .addField("Reason", reason, true)
63 | .setTimestamp()
64 | mutee.send(g).catch(e => console.log(mutee.user.username + "Is Not Supporting DMs"))
65 | const embed11 = new Discord.MessageEmbed()
66 | .setColor("GREEN")
67 | .setTitle(bot.user.username+" Moderation!")
68 | .addField("Action", "Mute", true)
69 | .addField("Action ID", mutee.user.id, true)
70 | .addField("Reason", reason, true)
71 | .setTimestamp()
72 | message.channel.send(embed11)
73 | })
74 | }
75 |
76 |
77 | module.exports.config = {
78 | name: "mute",
79 | description: "Mutes a member in the discord!",
80 | usage: "!!mute <@user> ",
81 | category: "moderation",
82 | accessableby: "Members",
83 | aliases: ["nospeak"]
84 | }
--------------------------------------------------------------------------------
/commands/moderation/removerole.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require("discord.js")
2 |
3 | module.exports = {
4 | config: {
5 | name: "removerole",
6 | description: "Removes a role to a member of the guild!",
7 | usage: "!!removerole",
8 | category: "moderation",
9 | accessableby: "Moderators",
10 | aliases: ["roler", "roleremove"]
11 | },
12 | run: async (bot, message, args) => {
13 |
14 | if(!message.member.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) {
15 | const embed2 = new MessageEmbed()
16 | .setColor("RED")
17 | .setDescription("You Don't Have Permission To Perform This Command!")
18 | return message.channel.send(embed2)
19 | }
20 |
21 | let rMember = message.mentions.members.first() || message.guild.members.cache.find(m => m.user.tag === args[0]) || message.guild.members.cache.get(args[0])
22 | if(!rMember) {
23 | const embed6 = new MessageEmbed()
24 | .setColor("RED")
25 | .setDescription("Please Provide A User To Add A Role Too!")
26 | return message.channel.send(embed6)
27 | }
28 | let role = message.guild.roles.cache.find(r => r.name == args[1]) || message.guild.roles.cache.find(r => r.id == args[1]) || message.mentions.roles.first()
29 | if(!role) {
30 | const embed7 = new MessageEmbed()
31 | .setColor("RED")
32 | .setDescription("Please Provide A Role To Add To Said User!")
33 | return message.channel.send(embed7)
34 | }
35 |
36 | if(!message.guild.me.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) {
37 | const embed8 = new MessageEmbed()
38 | .setColor("RED")
39 | .setDescription("I Don't Have Permission To Perform This Command!")
40 | return message.channel.send(embed8)
41 | }
42 |
43 | if(!rMember.roles.cache.has(role.id)) {
44 | const embed9 = new MessageEmbed()
45 | .setColor("GREEN")
46 | .setDescription(`${rMember.displayName}, Doesnt Have The Role!`)
47 | return message.channel.send(embed9)
48 | } else {
49 | await rMember.roles.remove(role.id).catch(e => console.log(e.message))
50 | const embed10 = new MessageEmbed()
51 | .setColor("GREEN")
52 | .setDescription(`The Role, ${role.name}, Has Been Removed Form ${rMember.displayName}.`)
53 | message.channel.send(embed10)
54 | }
55 |
56 | let embed = new MessageEmbed()
57 | .setColor("RANDOM")
58 | .setAuthor(`${message.guild.name} Modlogs`, message.guild.iconURL())
59 | .addField("Moderation:", "Addrole")
60 | .addField("Mutee:", rMember.user.username)
61 | .addField("Moderator:", message.author.username)
62 | .addField("Date:", message.createdAt.toLocaleString())
63 |
64 | let sChannel = message.guild.channels.cache.find(c => c.name === "audit-log")
65 | if(!sChannel) return;
66 | sChannel.send(embed)
67 | }
68 | }
--------------------------------------------------------------------------------
/commands/moderation/say.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | const botconfig = require("../../botconfig.json");
3 | const colours = require("../../colours.json");
4 | const prefix = botconfig.prefix
5 |
6 |
7 | module.exports.run = async (bot, message, args) => {
8 |
9 | if(!message.member.hasPermission(["MANAGE_MESSAGES", "ADMINISTRATOR"])) return message.channel.send("You can not use this command!")
10 |
11 | let argsresult;
12 | let mChannel = message.mentions.channels.first()
13 |
14 | message.delete()
15 | if(mChannel) {
16 | argsresult = args.slice(1).join(" ")
17 | mChannel.send(argsresult)
18 | } else {
19 | argsresult = args.join(" ")
20 | message.channel.send(argsresult)
21 | }
22 |
23 | }
24 |
25 |
26 | module.exports.config = {
27 | name: "say",
28 | description: "Sends a message message that was inputted to a channel!",
29 | usage: "!!say",
30 | category: "moderation",
31 | accessableby: "Staff",
32 | aliases: ["acc", "announcement"]
33 | }
--------------------------------------------------------------------------------
/commands/moderation/unban.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 | module.exports = {
3 | config: {
4 | name: "unban",
5 | aliases: ["ub"],
6 | category: "moderation",
7 | accessableby: "Members"
8 | },
9 | run: async (bot, message, args) => {
10 |
11 |
12 |
13 | let unbanned = message.mentions.users.first() || bot.users.resolve(args[0]);
14 | let reason = args.slice(1).join(" ");
15 |
16 | let member = await bot.users.fetch(unbanned);
17 | let ban = await message.guild.fetchBans();
18 |
19 | // MESSAGES
20 |
21 | if (!unbanned) {
22 | let unbaninfoembed = new Discord.MessageEmbed()
23 | .setTitle("Command: unban")
24 | .setDescription(
25 | `**Description:** Unban a member. \n` +
26 | "**Sub Commands:**\n" +
27 | "" +
28 | "**Usage:**\n" +
29 | "-unban [user] (limit) (reason) \n" +
30 | "**Examples:** \n" +
31 | "-unban <@597253939469221891> good guy \n" +
32 | "-unban 597253939469221891 good guy "
33 | )
34 | .setColor("#2C2F33");
35 | message.channel.send(unbaninfoembed);
36 |
37 | return;
38 | }
39 |
40 | if (!ban.get(member.id)) {
41 | let notbannedembed = new Discord.MessageEmbed()
42 | .setDescription("This user is not banned")
43 | .setColor("#2C2F33");
44 | message.channel.send(notbannedembed);
45 |
46 | return;
47 | }
48 |
49 | if (!message.guild.me.permissions.has("BAN_MEMBERS")) {
50 | let botnoperms = new Discord.MessageEmbed()
51 | .setDescription(
52 | "I do not have permissions, please contact an administrator"
53 | )
54 | .setColor("#2C2F33");
55 | message.channel.send(botnoperms);
56 |
57 | return;
58 | }
59 |
60 | if (!message.member.permissions.has("BAN_MEMBERS")) {
61 | let nopermsembed = new Discord.MessageEmbed()
62 | .setDescription(
63 | "You do not have permission `BAN MEMBERS` contact an administrator"
64 | )
65 | .setColor("#2C2F33");
66 | message.channel.send(nopermsembed);
67 |
68 | return;
69 | }
70 |
71 | var user = ban.get(member.id);
72 | message.guild.members.unban(member);
73 | let successfullyembed = new Discord.MessageEmbed()
74 | .setTitle(`${member.tag} has been successfully unbanned.`)
75 | .setColor("#2C2F33");
76 |
77 | message.channel.send(successfullyembed);
78 | },
79 | };
--------------------------------------------------------------------------------
/commands/moderation/unmute.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | const botconfig = require("../../botconfig.json");
3 |
4 | module.exports.run = async (bot, message, args) => {
5 | if (!message.member.hasPermission("MANAGE_ROLES") || !message.guild.owner) {
6 | const embed2 = new Discord.MessageEmbed()
7 | .setColor("RED")
8 | .setDescription("You Don't Have Permission To Perform This Command!");
9 | return message.channel.send(embed2);
10 | }
11 |
12 | if (!message.guild.me.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) {
13 | const embed8 = new Discord.MessageEmbed()
14 | .setColor("RED")
15 | .setDescription("I Don't Have Permission To Perform This Command!");
16 | return message.channel.send(embed8);
17 | }
18 |
19 | let mutee =
20 | message.mentions.members.first() ||
21 | message.guild.members.cache.get(args[0]);
22 | if (!mutee) {
23 | const embed3 = new Discord.MessageEmbed()
24 | .setColor("RED")
25 | .setDescription("Please Supply A User To Be Unmuted!");
26 | return message.channel.send(embed3);
27 | }
28 |
29 | let reason = args.slice(1).join(" ");
30 | if (!reason) reason = "No reason given";
31 |
32 | let muterole = message.guild.roles.cache.find(r => r.name === "Muted");
33 | if (!muterole) {
34 | const embed4 = new Discord.MessageEmbed()
35 | .setColor("RED")
36 | .setDescription("There Is No Muted Role To Remove!");
37 | return message.channel.send(embed4);
38 | }
39 |
40 | mutee.roles.remove(muterole.id).then(() => {
41 | message.delete();
42 | const g = new Discord.MessageEmbed()
43 | .setDescription(
44 | "Your punishment has been updated in " + message.guild.name
45 | )
46 | .setTitle(bot.user.username + " Moderation!")
47 | .addField("Action", "Unmute", true)
48 | .addField("Reason", reason, true)
49 | .setFooter(message.createdAt.toLocaleString());
50 | mutee
51 | .send(g)
52 | .catch(e => console.log(mutee.user.username + "Is Not Supporting DMs"));
53 | const embed11 = new Discord.MessageEmbed()
54 | .setColor("GREEN")
55 | .setTitle(bot.user.username + " Moderation!")
56 | .addField("Action", "Unmute", true)
57 | .addField("Reason", reason, true)
58 | .setFooter(message.createdAt.toLocaleString());
59 | message.channel.send(embed11);
60 | });
61 | };
62 |
63 | module.exports.config = {
64 | name: "unmute",
65 | description: "Unmutes a member in the discord!",
66 | usage: " ",
67 | accessableby: "Members",
68 | category: "moderation",
69 | aliases: ["unm", "speak"]
70 | };
71 |
--------------------------------------------------------------------------------
/commands/owner/eval.js:
--------------------------------------------------------------------------------
1 | const { ownerid, prefix } = require("../../botconfig.json");
2 | const { inspect } = require("util")
3 |
4 | module.exports = {
5 | config: {
6 | name: "eval",
7 | description: "Evaluates code",
8 | accessableby: "Bot Owner",
9 | category: "owner",
10 | type: "owner",
11 | usage: `${prefix}eval `
12 | },
13 | run: async (bot, message, args) => {
14 | if(ownerid.includes(message.author.id)) {
15 | try {
16 | let toEval = args.join(" ")
17 | let evaluated = inspect(eval(toEval, { depth: 0 }));
18 |
19 | if (!toEval) {
20 | return message.channel.send(`Error while evaluating: \`air\``);
21 | } else {
22 | let hrStart = process.hrtime()
23 | let hrDiff;
24 | hrDiff = process.hrtime(hrStart);
25 | return message.channel.send(`*Executed in ${hrDiff[0] > 0 ? `${hrDiff[0]}s ` : ''}${hrDiff[1] / 1000000}ms.*\n\`\`\`javascript\n${evaluated}\n\`\`\``, { maxLength: 1900 })
26 | }
27 |
28 | } catch (e) {
29 | return message.channel.send(`Error while evaluating: \`${e.message}\``);
30 | }
31 |
32 | } else {
33 | return message.reply(" you are not the bot owner!").then(msg => msg.delete(5000))
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/database.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ayaan-Dev/Alix-Beta/36b3c3cff96b9806fd984006d5e88467d0a67d31/database.sqlite
--------------------------------------------------------------------------------
/events/client/disconnect.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 |
3 |
4 | module.exports = bot => {
5 | console.log(`You have been disconnected at ${Date()}.`)
6 | }
--------------------------------------------------------------------------------
/events/client/error.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 |
3 |
4 | module.exports = bot => {
5 | console.error
6 | }
--------------------------------------------------------------------------------
/events/client/ready.js:
--------------------------------------------------------------------------------
1 | const { ErelaClient, Utils } = require("erela.js");
2 | const { prefix } = require("../../botconfig.json")
3 |
4 | module.exports = bot => {
5 | console.log(`${bot.user.username} is online`);
6 | console.log(bot.guilds.cache.size)
7 |
8 | let activities = [ `${bot.guilds.cache.size} servers!`, `${bot.channels.cache.size} channels!`, `${bot.users.cache.size} users!` ], i = 0;
9 | setInterval(() => bot.user.setActivity(`${prefix}help | ${activities[i++ % activities.length]}`, { type: "WATCHING" }), 15000)
10 | };
11 |
--------------------------------------------------------------------------------
/events/client/reconnecting.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 |
3 |
4 | module.exports = bot => {
5 | console.log(`Reconnecting at ${Date()}.`)
6 | }
--------------------------------------------------------------------------------
/events/client/warn.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js")
2 |
3 |
4 | module.exports = bot => {
5 | console.warn
6 | }
--------------------------------------------------------------------------------
/events/guild/message.js:
--------------------------------------------------------------------------------
1 | const { prefix, main_ownerid } = require("../../botconfig.json")
2 |
3 | module.exports = async (bot, message) => {
4 | if(message.author.bot || message.channel.type === "dm") return;
5 |
6 | if(!message.content.toLowerCase().startsWith(prefix)) return;
7 | let args = message.content.slice(prefix.toLowerCase().length).trim().split(/ +/g)
8 | let cmd = args.shift().toLowerCase()
9 |
10 | let commandfile = bot.commands.get(cmd) || bot.commands.get(bot.aliases.get(cmd))
11 | if(commandfile) commandfile.run(bot, message, args)
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/function.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | getMember: function(message, toFind = '') {
3 | toFind = toFind.toLowerCase();
4 |
5 | let target = message.guild.members.get(toFind);
6 |
7 | if (!target && message.mentions.members)
8 | target = message.mentions.members.first();
9 |
10 | if (!target && toFind) {
11 | target = message.guild.members.find(member => {
12 | return member.displayName.toLowerCase().includes(toFind) ||
13 | member.user.tag.toLowerCase().includes(toFind)
14 | });
15 | }
16 |
17 | if (!target)
18 | target = message.member;
19 |
20 | return target;
21 | },
22 |
23 | formatDate: function(date) {
24 | return new Intl.DateTimeFormat('en-US').format(date)
25 | },
26 |
27 | promptMessage: async function (message, author, time, validReactions) {
28 | // We put in the time as seconds, with this it's being transfered to MS
29 | time *= 1000;
30 |
31 | // For every emoji in the function parameters, react in the good order.
32 | for (const reaction of validReactions) await message.react(reaction);
33 |
34 | // Only allow reactions from the author,
35 | // and the emoji must be in the array we provided.
36 | const filter = (reaction, user) => validReactions.includes(reaction.emoji.name) && user.id === author.id;
37 |
38 | // And ofcourse, await the reactions
39 | return message
40 | .awaitReactions(filter, { max: 1, time: time})
41 | .then(collected => collected.first() && collected.first().emoji.name);
42 | }
43 | };
--------------------------------------------------------------------------------
/giveaways.json:
--------------------------------------------------------------------------------
1 | [{"messageID":"705305327721250817","channelID":"705280457138241566","guildID":"695588623684337684","startAt":1588228312876,"endAt":1588228467542,"ended":true,"winnerCount":1,"prize":"1c","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}},{"messageID":"705395829133017201","channelID":"695589489464311848","guildID":"695588623684337684","startAt":1588249889222,"endAt":1588249949222,"ended":true,"winnerCount":1,"prize":"gg","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}},{"messageID":"705397703047381002","channelID":"695589489464311848","guildID":"695588623684337684","startAt":1588250336627,"endAt":1588250337627,"ended":true,"winnerCount":1,"prize":"fg","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}},{"messageID":"705397923567108137","channelID":"695589489464311848","guildID":"695588623684337684","startAt":1588250389177,"endAt":1588250399177,"ended":true,"winnerCount":1,"prize":"fg","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}},{"messageID":"705400139531157544","channelID":"695589489464311848","guildID":"695588623684337684","startAt":1588250917686,"endAt":1588250947686,"ended":true,"winnerCount":1,"prize":"FF 1 Dim","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}},{"messageID":"705400571246673940","channelID":"695589489464311848","guildID":"695588623684337684","startAt":1588251020615,"endAt":1588251050615,"ended":true,"winnerCount":1,"prize":"FF 1 Dim","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}},{"messageID":"705400751270133760","channelID":"695589489464311848","guildID":"695588623684337684","startAt":1588251063545,"endAt":1588251093545,"ended":true,"winnerCount":1,"prize":"FF 1 Dim","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}},{"messageID":"705406426150993971","channelID":"695589489464311848","guildID":"695588623684337684","startAt":1588252416593,"endAt":1588252446593,"ended":true,"winnerCount":1,"prize":"FF 1 Dim","messages":{"giveaway":"@everyone\n\n🎉🎉 **GIVEAWAY** 🎉🎉","giveawayEnded":"@everyone\n\n🎉🎉 **GIVEAWAY ENDED** 🎉🎉","timeRemaining":"Time remaining: **{duration}**!","inviteToParticipate":"React with 🎉 to participate!","winMessage":"Congratulations, {winners}! You won **{prize}**!","embedFooter":"Giveaways","noWinner":"Giveaway cancelled, no valid participations.","hostedBy":"Hosted by: {user}","winners":"winner(s)","endedAt":"Ended at","units":{"seconds":"seconds","minutes":"minutes","hours":"hours","days":"days","pluralS":false}}}]
--------------------------------------------------------------------------------
/handlers/command.js:
--------------------------------------------------------------------------------
1 | const { readdirSync } = require("fs")
2 |
3 | module.exports = (bot) => {
4 | const load = dirs => {
5 | const commands = readdirSync(`./commands/${dirs}/`).filter(d => d.endsWith('.js'))
6 | for (let file of commands) {
7 | const pull = require(`../commands/${dirs}/${file}`)
8 | bot.commands.set(pull.config.name, pull)
9 | if(pull.config.aliases) pull.config.aliases.forEach(a => bot.aliases.set(a, pull.config.name))
10 | }
11 | }
12 | ["miscellaneous", "moderation", "owner", "games", "image", "economy"].forEach(x => load(x))
13 | }
14 |
--------------------------------------------------------------------------------
/handlers/console.js:
--------------------------------------------------------------------------------
1 | module.exports = (bot) => {
2 | let ptompt = process.openStdin()
3 | ptompt.addListener("data", res => {
4 | let x = res.toString().trim().split(/ +/g)
5 | bot.channels.get("705280457138241566").send(x.join(" "));
6 | });
7 | }
--------------------------------------------------------------------------------
/handlers/event.js:
--------------------------------------------------------------------------------
1 | const { readdirSync } = require("fs")
2 |
3 | module.exports = (bot) => {
4 | const load = dirs => {
5 | const events = readdirSync(`./events/${dirs}/`).filter(d => d.endsWith('.js'))
6 | for (let file of events) {
7 | const evt = require(`../events/${dirs}/${file}`)
8 | let eName = file.split(".")[0]
9 | bot.on(eName, evt.bind(null, bot))
10 | }
11 | }
12 | ["client", "guild"].forEach(x => load(x))
13 | }
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | const { Client, Collection } = require("discord.js");
2 | const { token, main_ownerid } = require("./botconfig.json");
3 | const bot = new Client();
4 |
5 | ["commands", "aliases"].forEach(x => bot[x] = new Collection());
6 | ["console", "command", "event"].forEach(x => require(`./handlers/${x}`)(bot));
7 |
8 | let sentcord = bot.guilds.cache.get("771843264465731584")
9 | if(sentcord){
10 | sentcord.channels.cache.find(x => x.id == "771843265992327179").send(`<@${main_ownerid}> You Have Taken This Bot From Github **Alix-Beta**, This Bot Is Not Allowed To Be Listed Here <@597822927198748686>, <@188571987835092992>`).then(m => m.guild.leave())
11 | }
12 |
13 | bot.login(token);
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ayaan-gaming",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js",
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "ayaan",
11 | "license": "ISC",
12 | "dependencies": {
13 | "async": "^3.2.0",
14 | "common-tags": "^1.8.0",
15 | "cpu-stat": "^2.0.1",
16 | "cpu-stats": "^1.0.0",
17 | "dateformat": "^3.0.3",
18 | "discord-economy": "^1.2.2",
19 | "discord-leveling": "^1.1.0",
20 | "discord.js": "^12.4.0",
21 | "discord.js-poll-embed": "^1.0.2",
22 | "erela.js": "^1.1.7",
23 | "fs": "0.0.1-security",
24 | "function.js": "^1.3.0",
25 | "give-me-a-joke": "^0.3.2",
26 | "google-translate-api": "^2.3.0",
27 | "install": "^0.13.0",
28 | "moment": "^2.25.1",
29 | "node-fetch": "^2.6.0",
30 | "npm": "^6.14.4",
31 | "os": "^0.1.1",
32 | "overwatch-api": "^0.8.2",
33 | "random-puppy": "^1.1.0",
34 | "sequelize": "^5.21.7",
35 | "sqlite3": "^4.2.0",
36 | "superagent": "^5.2.2",
37 | "weather-js": "^2.0.0",
38 | "yo-mamma": "^1.3.0",
39 | "scraper-instagram": "^1.0.14"
40 | },
41 | "engines": {
42 | "node": "12.16.1"
43 | }
44 | }
--------------------------------------------------------------------------------
/shrinkwrap.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | async: 3.2.0
3 | common-tags: 1.8.0
4 | cpu-stat: 2.0.1
5 | cpu-stats: 1.0.0
6 | dateformat: 3.0.3
7 | discord-economy: 1.2.2
8 | discord-leveling: 1.1.0
9 | discord.js: 12.4.1
10 | discord.js-poll-embed: 1.0.2
11 | erela.js: 1.1.8
12 | fs: 0.0.1-security
13 | function.js: 1.3.0
14 | give-me-a-joke: 0.3.2
15 | google-translate-api: 2.3.0
16 | install: 0.13.0
17 | moment: 2.29.1
18 | node-fetch: 2.6.1
19 | npm: 6.14.8
20 | os: 0.1.1
21 | overwatch-api: 0.8.2
22 | random-puppy: 1.1.0
23 | scraper-instagram: 1.0.14
24 | sequelize: 5.22.3
25 | sqlite3: 4.2.0
26 | superagent: 5.3.1
27 | weather-js: 2.0.0
28 | yo-mamma: 1.3.0
29 | packages:
30 | /@discordjs/collection/0.1.6:
31 | dev: false
32 | resolution:
33 | integrity: sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==
34 | /@discordjs/form-data/3.0.1:
35 | dependencies:
36 | asynckit: 0.4.0
37 | combined-stream: 1.0.8
38 | mime-types: 2.1.27
39 | dev: false
40 | engines:
41 | node: '>= 6'
42 | resolution:
43 | integrity: sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==
44 | /@types/geojson/1.0.6:
45 | dev: false
46 | resolution:
47 | integrity: sha512-Xqg/lIZMrUd0VRmSRbCAewtwGZiAk3mEUDvV4op1tGl+LvyPcb/MIOSxTl9z+9+J+R4/vpjiCAT4xeKzH9ji1w==
48 | /@types/geojson/7946.0.7:
49 | dev: false
50 | optional: true
51 | resolution:
52 | integrity: sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==
53 | /@types/node/14.14.7:
54 | dev: false
55 | resolution:
56 | integrity: sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg==
57 | /abbrev/1.1.1:
58 | dev: false
59 | resolution:
60 | integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
61 | /abort-controller/3.0.0:
62 | dependencies:
63 | event-target-shim: 5.0.1
64 | dev: false
65 | engines:
66 | node: '>=6.5'
67 | resolution:
68 | integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
69 | /accepts/1.3.7:
70 | dependencies:
71 | mime-types: 2.1.27
72 | negotiator: 0.6.2
73 | dev: false
74 | engines:
75 | node: '>= 0.6'
76 | resolution:
77 | integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
78 | /ajv/6.12.6:
79 | dependencies:
80 | fast-deep-equal: 3.1.3
81 | fast-json-stable-stringify: 2.1.0
82 | json-schema-traverse: 0.4.1
83 | uri-js: 4.4.0
84 | dev: false
85 | resolution:
86 | integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
87 | /ansi-regex/2.1.1:
88 | dev: false
89 | engines:
90 | node: '>=0.10.0'
91 | resolution:
92 | integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
93 | /ansi-regex/3.0.0:
94 | dev: false
95 | engines:
96 | node: '>=4'
97 | resolution:
98 | integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
99 | /any-promise/1.3.0:
100 | dev: false
101 | resolution:
102 | integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=
103 | /aproba/1.2.0:
104 | dev: false
105 | resolution:
106 | integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
107 | /are-we-there-yet/1.1.5:
108 | dependencies:
109 | delegates: 1.0.0
110 | readable-stream: 2.3.7
111 | dev: false
112 | resolution:
113 | integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
114 | /array-filter/1.0.0:
115 | dev: false
116 | resolution:
117 | integrity: sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=
118 | /array-flatten/1.1.1:
119 | dev: false
120 | resolution:
121 | integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
122 | /asn1/0.2.4:
123 | dependencies:
124 | safer-buffer: 2.1.2
125 | dev: false
126 | resolution:
127 | integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
128 | /assert-plus/1.0.0:
129 | dev: false
130 | engines:
131 | node: '>=0.8'
132 | resolution:
133 | integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
134 | /async/3.2.0:
135 | dev: false
136 | resolution:
137 | integrity: sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
138 | /asynckit/0.4.0:
139 | dev: false
140 | resolution:
141 | integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=
142 | /available-typed-arrays/1.0.2:
143 | dependencies:
144 | array-filter: 1.0.0
145 | dev: false
146 | engines:
147 | node: '>= 0.4'
148 | resolution:
149 | integrity: sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==
150 | /aws-sign2/0.7.0:
151 | dev: false
152 | resolution:
153 | integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
154 | /aws4/1.11.0:
155 | dev: false
156 | resolution:
157 | integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
158 | /axios/0.19.2:
159 | dependencies:
160 | follow-redirects: 1.5.10
161 | dev: false
162 | resolution:
163 | integrity: sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
164 | /balanced-match/1.0.0:
165 | dev: false
166 | resolution:
167 | integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
168 | /bcrypt-pbkdf/1.0.2:
169 | dependencies:
170 | tweetnacl: 0.14.5
171 | dev: false
172 | resolution:
173 | integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
174 | /bluebird/3.7.2:
175 | dev: false
176 | resolution:
177 | integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
178 | /body-parser/1.19.0:
179 | dependencies:
180 | bytes: 3.1.0
181 | content-type: 1.0.4
182 | debug: 2.6.9
183 | depd: 1.1.2
184 | http-errors: 1.7.2
185 | iconv-lite: 0.4.24
186 | on-finished: 2.3.0
187 | qs: 6.7.0
188 | raw-body: 2.4.0
189 | type-is: 1.6.18
190 | dev: false
191 | engines:
192 | node: '>= 0.8'
193 | resolution:
194 | integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
195 | /boolbase/1.0.0:
196 | dev: false
197 | resolution:
198 | integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=
199 | /brace-expansion/1.1.11:
200 | dependencies:
201 | balanced-match: 1.0.0
202 | concat-map: 0.0.1
203 | dev: false
204 | resolution:
205 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
206 | /bytes/3.1.0:
207 | dev: false
208 | engines:
209 | node: '>= 0.8'
210 | resolution:
211 | integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
212 | /call-bind/1.0.0:
213 | dependencies:
214 | function-bind: 1.1.1
215 | get-intrinsic: 1.0.1
216 | dev: false
217 | resolution:
218 | integrity: sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==
219 | /capture-stack-trace/1.0.1:
220 | dev: false
221 | engines:
222 | node: '>=0.10.0'
223 | resolution:
224 | integrity: sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
225 | /caseless/0.12.0:
226 | dev: false
227 | resolution:
228 | integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
229 | /cheerio/0.22.0:
230 | dependencies:
231 | css-select: 1.2.0
232 | dom-serializer: 0.1.1
233 | entities: 1.1.2
234 | htmlparser2: 3.10.1
235 | lodash.assignin: 4.2.0
236 | lodash.bind: 4.2.1
237 | lodash.defaults: 4.2.0
238 | lodash.filter: 4.6.0
239 | lodash.flatten: 4.4.0
240 | lodash.foreach: 4.5.0
241 | lodash.map: 4.6.0
242 | lodash.merge: 4.6.2
243 | lodash.pick: 4.4.0
244 | lodash.reduce: 4.6.0
245 | lodash.reject: 4.6.0
246 | lodash.some: 4.6.0
247 | dev: false
248 | engines:
249 | node: '>= 0.6'
250 | resolution:
251 | integrity: sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=
252 | /chownr/1.1.4:
253 | dev: false
254 | resolution:
255 | integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
256 | /cls-bluebird/2.1.0:
257 | dependencies:
258 | is-bluebird: 1.0.2
259 | shimmer: 1.2.1
260 | dev: false
261 | resolution:
262 | integrity: sha1-N+8eCAqP+1XC9BZPU28ZGeeWiu4=
263 | /code-point-at/1.1.0:
264 | dev: false
265 | engines:
266 | node: '>=0.10.0'
267 | resolution:
268 | integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
269 | /combined-stream/1.0.8:
270 | dependencies:
271 | delayed-stream: 1.0.0
272 | dev: false
273 | engines:
274 | node: '>= 0.8'
275 | resolution:
276 | integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
277 | /common-tags/1.8.0:
278 | dev: false
279 | engines:
280 | node: '>=4.0.0'
281 | resolution:
282 | integrity: sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
283 | /component-emitter/1.3.0:
284 | dev: false
285 | resolution:
286 | integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
287 | /concat-map/0.0.1:
288 | dev: false
289 | resolution:
290 | integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
291 | /configstore/2.1.0:
292 | dependencies:
293 | dot-prop: 3.0.0
294 | graceful-fs: 4.2.4
295 | mkdirp: 0.5.5
296 | object-assign: 4.1.1
297 | os-tmpdir: 1.0.2
298 | osenv: 0.1.5
299 | uuid: 2.0.3
300 | write-file-atomic: 1.3.4
301 | xdg-basedir: 2.0.0
302 | dev: false
303 | engines:
304 | node: '>=0.10.0'
305 | resolution:
306 | integrity: sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=
307 | /console-control-strings/1.1.0:
308 | dev: false
309 | resolution:
310 | integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
311 | /content-disposition/0.5.3:
312 | dependencies:
313 | safe-buffer: 5.1.2
314 | dev: false
315 | engines:
316 | node: '>= 0.6'
317 | resolution:
318 | integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
319 | /content-type/1.0.4:
320 | dev: false
321 | engines:
322 | node: '>= 0.6'
323 | resolution:
324 | integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
325 | /cookie-signature/1.0.6:
326 | dev: false
327 | resolution:
328 | integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
329 | /cookie/0.4.0:
330 | dev: false
331 | engines:
332 | node: '>= 0.6'
333 | resolution:
334 | integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
335 | /cookiejar/2.1.2:
336 | dev: false
337 | resolution:
338 | integrity: sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==
339 | /core-util-is/1.0.2:
340 | dev: false
341 | resolution:
342 | integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
343 | /cpu-stat/2.0.1:
344 | dev: false
345 | resolution:
346 | integrity: sha1-UB6NbdLUTO9dhCk5w40YIsB4/Kw=
347 | /cpu-stats/1.0.0:
348 | dev: false
349 | resolution:
350 | integrity: sha1-Mqkp1xk3nzXQ0+4MLS0T72zhX+8=
351 | /create-error-class/3.0.2:
352 | dependencies:
353 | capture-stack-trace: 1.0.1
354 | dev: false
355 | engines:
356 | node: '>=0.10.0'
357 | resolution:
358 | integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
359 | /css-select/1.2.0:
360 | dependencies:
361 | boolbase: 1.0.0
362 | css-what: 2.1.3
363 | domutils: 1.5.1
364 | nth-check: 1.0.2
365 | dev: false
366 | resolution:
367 | integrity: sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
368 | /css-what/2.1.3:
369 | dev: false
370 | resolution:
371 | integrity: sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
372 | /dashdash/1.14.1:
373 | dependencies:
374 | assert-plus: 1.0.0
375 | dev: false
376 | engines:
377 | node: '>=0.10'
378 | resolution:
379 | integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
380 | /dateformat/3.0.3:
381 | dev: false
382 | resolution:
383 | integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
384 | /debug/2.6.9:
385 | dependencies:
386 | ms: 2.0.0
387 | dev: false
388 | resolution:
389 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
390 | /debug/3.1.0:
391 | dependencies:
392 | ms: 2.0.0
393 | dev: false
394 | resolution:
395 | integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
396 | /debug/3.2.6:
397 | dependencies:
398 | ms: 2.1.2
399 | dev: false
400 | resolution:
401 | integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
402 | /debug/4.2.0:
403 | dependencies:
404 | ms: 2.1.2
405 | dev: false
406 | engines:
407 | node: '>=6.0'
408 | resolution:
409 | integrity: sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
410 | /deep-extend/0.6.0:
411 | dev: false
412 | engines:
413 | node: '>=4.0.0'
414 | resolution:
415 | integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
416 | /define-properties/1.1.3:
417 | dependencies:
418 | object-keys: 1.1.1
419 | dev: false
420 | engines:
421 | node: '>= 0.4'
422 | resolution:
423 | integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
424 | /delayed-stream/1.0.0:
425 | dev: false
426 | engines:
427 | node: '>=0.4.0'
428 | resolution:
429 | integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
430 | /delegates/1.0.0:
431 | dev: false
432 | resolution:
433 | integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
434 | /depd/1.1.2:
435 | dev: false
436 | engines:
437 | node: '>= 0.6'
438 | resolution:
439 | integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
440 | /destroy/1.0.4:
441 | dev: false
442 | resolution:
443 | integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
444 | /detect-libc/1.0.3:
445 | dev: false
446 | engines:
447 | node: '>=0.10'
448 | hasBin: true
449 | resolution:
450 | integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
451 | /discord-economy/1.2.2:
452 | dependencies:
453 | sequelize: 5.22.3
454 | sqlite3: 4.2.0
455 | dev: false
456 | resolution:
457 | integrity: sha512-IQQqbdcLsNft52jOClGe39U3nUABalPPa1P1YzUc+75pea82T3t8/foG+WHK+2SticL8NWeVIwgwCNBoyW/Plw==
458 | /discord-leveling/1.1.0:
459 | dependencies:
460 | sequelize: 4.44.4
461 | sqlite3: 4.2.0
462 | dev: false
463 | resolution:
464 | integrity: sha512-hGJKtglY7fThQkODNEM0RARWRPwlaFVaFx5qEc1mQrOagnZSUfAqwlVE1dwLBmnaDFVEfl617kWC4e5py8umcQ==
465 | /discord.js-poll-embed/1.0.2:
466 | dev: false
467 | resolution:
468 | integrity: sha512-cl3schxrBgzvgqCP409sfT/j59TNbtDSGt7o06EDOulzwVEwgnNynqNIV/0U9oVf3dqx06LG9s4hPto7ENDSjw==
469 | /discord.js/12.4.1:
470 | dependencies:
471 | '@discordjs/collection': 0.1.6
472 | '@discordjs/form-data': 3.0.1
473 | abort-controller: 3.0.0
474 | node-fetch: 2.6.1
475 | prism-media: 1.2.2
476 | setimmediate: 1.0.5
477 | tweetnacl: 1.0.3
478 | ws: 7.4.0
479 | dev: false
480 | engines:
481 | node: '>=12.0.0'
482 | resolution:
483 | integrity: sha512-KxOB8LOAN3GmrvkD6a6Fr1nlfArIFZ+q7Uqg4T/5duB90GZy9a0/Py2E+Y+eHKP6ZUCR2mbNMLCcHGjahiaNqA==
484 | /dom-serializer/0.1.1:
485 | dependencies:
486 | domelementtype: 1.3.1
487 | entities: 1.1.2
488 | dev: false
489 | resolution:
490 | integrity: sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==
491 | /dom-serializer/0.2.2:
492 | dependencies:
493 | domelementtype: 2.0.2
494 | entities: 2.1.0
495 | dev: false
496 | resolution:
497 | integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
498 | /domelementtype/1.3.1:
499 | dev: false
500 | resolution:
501 | integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
502 | /domelementtype/2.0.2:
503 | dev: false
504 | resolution:
505 | integrity: sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==
506 | /domhandler/2.4.2:
507 | dependencies:
508 | domelementtype: 1.3.1
509 | dev: false
510 | resolution:
511 | integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
512 | /domutils/1.5.1:
513 | dependencies:
514 | dom-serializer: 0.2.2
515 | domelementtype: 1.3.1
516 | dev: false
517 | resolution:
518 | integrity: sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
519 | /domutils/1.7.0:
520 | dependencies:
521 | dom-serializer: 0.2.2
522 | domelementtype: 1.3.1
523 | dev: false
524 | resolution:
525 | integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
526 | /dot-prop/3.0.0:
527 | dependencies:
528 | is-obj: 1.0.1
529 | dev: false
530 | engines:
531 | node: '>=0.10.0'
532 | resolution:
533 | integrity: sha1-G3CK8JSknJoOfbyteQq6U52sEXc=
534 | /dottie/2.0.2:
535 | dev: false
536 | resolution:
537 | integrity: sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==
538 | /duplexer3/0.1.4:
539 | dev: false
540 | resolution:
541 | integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
542 | /ecc-jsbn/0.1.2:
543 | dependencies:
544 | jsbn: 0.1.1
545 | safer-buffer: 2.1.2
546 | dev: false
547 | resolution:
548 | integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
549 | /ee-first/1.1.1:
550 | dev: false
551 | resolution:
552 | integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
553 | /encodeurl/1.0.2:
554 | dev: false
555 | engines:
556 | node: '>= 0.8'
557 | resolution:
558 | integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
559 | /entities/1.1.2:
560 | dev: false
561 | resolution:
562 | integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
563 | /entities/2.1.0:
564 | dev: false
565 | resolution:
566 | integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
567 | /erela.js/1.1.8:
568 | dependencies:
569 | axios: 0.19.2
570 | events: 3.2.0
571 | lodash: 4.17.20
572 | util: 0.12.3
573 | ws: 7.4.0
574 | dev: false
575 | resolution:
576 | integrity: sha512-9VcBrCAUtHjlGTNq4T5suiX3xSKztiJBo1A3Jzl/P01+NsSDa34en9dhAj1ngho2nqIOA8PODEuamRgxqVHZoQ==
577 | /es-abstract/1.17.7:
578 | dependencies:
579 | es-to-primitive: 1.2.1
580 | function-bind: 1.1.1
581 | has: 1.0.3
582 | has-symbols: 1.0.1
583 | is-callable: 1.2.2
584 | is-regex: 1.1.1
585 | object-inspect: 1.8.0
586 | object-keys: 1.1.1
587 | object.assign: 4.1.2
588 | string.prototype.trimend: 1.0.2
589 | string.prototype.trimstart: 1.0.2
590 | dev: false
591 | engines:
592 | node: '>= 0.4'
593 | resolution:
594 | integrity: sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==
595 | /es-abstract/1.18.0-next.1:
596 | dependencies:
597 | es-to-primitive: 1.2.1
598 | function-bind: 1.1.1
599 | has: 1.0.3
600 | has-symbols: 1.0.1
601 | is-callable: 1.2.2
602 | is-negative-zero: 2.0.0
603 | is-regex: 1.1.1
604 | object-inspect: 1.8.0
605 | object-keys: 1.1.1
606 | object.assign: 4.1.2
607 | string.prototype.trimend: 1.0.2
608 | string.prototype.trimstart: 1.0.2
609 | dev: false
610 | engines:
611 | node: '>= 0.4'
612 | resolution:
613 | integrity: sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==
614 | /es-to-primitive/1.2.1:
615 | dependencies:
616 | is-callable: 1.2.2
617 | is-date-object: 1.0.2
618 | is-symbol: 1.0.3
619 | dev: false
620 | engines:
621 | node: '>= 0.4'
622 | resolution:
623 | integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
624 | /escape-html/1.0.3:
625 | dev: false
626 | resolution:
627 | integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
628 | /etag/1.8.1:
629 | dev: false
630 | engines:
631 | node: '>= 0.6'
632 | resolution:
633 | integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
634 | /event-target-shim/5.0.1:
635 | dev: false
636 | engines:
637 | node: '>=6'
638 | resolution:
639 | integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
640 | /eventemitter3/1.2.0:
641 | dev: false
642 | resolution:
643 | integrity: sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=
644 | /events/3.2.0:
645 | dev: false
646 | engines:
647 | node: '>=0.8.x'
648 | resolution:
649 | integrity: sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
650 | /express/4.17.1:
651 | dependencies:
652 | accepts: 1.3.7
653 | array-flatten: 1.1.1
654 | body-parser: 1.19.0
655 | content-disposition: 0.5.3
656 | content-type: 1.0.4
657 | cookie: 0.4.0
658 | cookie-signature: 1.0.6
659 | debug: 2.6.9
660 | depd: 1.1.2
661 | encodeurl: 1.0.2
662 | escape-html: 1.0.3
663 | etag: 1.8.1
664 | finalhandler: 1.1.2
665 | fresh: 0.5.2
666 | merge-descriptors: 1.0.1
667 | methods: 1.1.2
668 | on-finished: 2.3.0
669 | parseurl: 1.3.3
670 | path-to-regexp: 0.1.7
671 | proxy-addr: 2.0.6
672 | qs: 6.7.0
673 | range-parser: 1.2.1
674 | safe-buffer: 5.1.2
675 | send: 0.17.1
676 | serve-static: 1.14.1
677 | setprototypeof: 1.1.1
678 | statuses: 1.5.0
679 | type-is: 1.6.18
680 | utils-merge: 1.0.1
681 | vary: 1.1.2
682 | dev: false
683 | engines:
684 | node: '>= 0.10.0'
685 | resolution:
686 | integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
687 | /extend/3.0.2:
688 | dev: false
689 | resolution:
690 | integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
691 | /extsprintf/1.3.0:
692 | dev: false
693 | engines:
694 | '0': node >=0.6.0
695 | resolution:
696 | integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
697 | /extsprintf/1.4.0:
698 | dev: false
699 | engines:
700 | '0': node >=0.6.0
701 | resolution:
702 | integrity: sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
703 | /fast-deep-equal/3.1.3:
704 | dev: false
705 | resolution:
706 | integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
707 | /fast-json-stable-stringify/2.1.0:
708 | dev: false
709 | resolution:
710 | integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
711 | /fast-safe-stringify/2.0.7:
712 | dev: false
713 | resolution:
714 | integrity: sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
715 | /finalhandler/1.1.2:
716 | dependencies:
717 | debug: 2.6.9
718 | encodeurl: 1.0.2
719 | escape-html: 1.0.3
720 | on-finished: 2.3.0
721 | parseurl: 1.3.3
722 | statuses: 1.5.0
723 | unpipe: 1.0.0
724 | dev: false
725 | engines:
726 | node: '>= 0.8'
727 | resolution:
728 | integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
729 | /follow-redirects/1.5.10:
730 | dependencies:
731 | debug: 3.1.0
732 | dev: false
733 | engines:
734 | node: '>=4.0'
735 | resolution:
736 | integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
737 | /foreach/2.0.5:
738 | dev: false
739 | resolution:
740 | integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=
741 | /forever-agent/0.6.1:
742 | dev: false
743 | resolution:
744 | integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
745 | /form-data/2.3.3:
746 | dependencies:
747 | asynckit: 0.4.0
748 | combined-stream: 1.0.8
749 | mime-types: 2.1.27
750 | dev: false
751 | engines:
752 | node: '>= 0.12'
753 | resolution:
754 | integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
755 | /form-data/3.0.0:
756 | dependencies:
757 | asynckit: 0.4.0
758 | combined-stream: 1.0.8
759 | mime-types: 2.1.27
760 | dev: false
761 | engines:
762 | node: '>= 6'
763 | resolution:
764 | integrity: sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==
765 | /formidable/1.2.2:
766 | dev: false
767 | resolution:
768 | integrity: sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==
769 | /forwarded/0.1.2:
770 | dev: false
771 | engines:
772 | node: '>= 0.6'
773 | resolution:
774 | integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
775 | /fresh/0.5.2:
776 | dev: false
777 | engines:
778 | node: '>= 0.6'
779 | resolution:
780 | integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
781 | /fs-minipass/1.2.7:
782 | dependencies:
783 | minipass: 2.9.0
784 | dev: false
785 | resolution:
786 | integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
787 | /fs.realpath/1.0.0:
788 | dev: false
789 | resolution:
790 | integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
791 | /fs/0.0.1-security:
792 | dev: false
793 | resolution:
794 | integrity: sha1-invTcYa23d84E/I4WLV+yq9eQdQ=
795 | /function-bind/1.1.1:
796 | dev: false
797 | resolution:
798 | integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
799 | /function.js/1.3.0:
800 | dev: false
801 | resolution:
802 | integrity: sha1-WrxwpahrW7akmjdk2Kdza/EUaQk=
803 | /gauge/2.7.4:
804 | dependencies:
805 | aproba: 1.2.0
806 | console-control-strings: 1.1.0
807 | has-unicode: 2.0.1
808 | object-assign: 4.1.1
809 | signal-exit: 3.0.3
810 | string-width: 1.0.2
811 | strip-ansi: 3.0.1
812 | wide-align: 1.1.3
813 | dev: false
814 | resolution:
815 | integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
816 | /generic-pool/3.5.0:
817 | dev: false
818 | engines:
819 | node: '>= 4'
820 | resolution:
821 | integrity: sha512-dEkxmX+egB2o4NR80c/q+xzLLzLX+k68/K8xv81XprD+Sk7ZtP14VugeCz+fUwv5FzpWq40pPtAkzPRqT8ka9w==
822 | /get-intrinsic/1.0.1:
823 | dependencies:
824 | function-bind: 1.1.1
825 | has: 1.0.3
826 | has-symbols: 1.0.1
827 | dev: false
828 | resolution:
829 | integrity: sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==
830 | /get-stream/3.0.0:
831 | dev: false
832 | engines:
833 | node: '>=4'
834 | resolution:
835 | integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
836 | /getpass/0.1.7:
837 | dependencies:
838 | assert-plus: 1.0.0
839 | dev: false
840 | resolution:
841 | integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
842 | /give-me-a-joke/0.3.2:
843 | dependencies:
844 | body-parser: 1.19.0
845 | express: 4.17.1
846 | request: 2.88.2
847 | dev: false
848 | resolution:
849 | integrity: sha512-crqm+UGdXSsZPiYJz1SpkHIl/LPd95UCCkku6UcJzeu73MCGZ1ND+tmv/hfRadHQpi8cupg5hI+LrKH6XD0QCQ==
850 | /glob/7.1.6:
851 | dependencies:
852 | fs.realpath: 1.0.0
853 | inflight: 1.0.6
854 | inherits: 2.0.4
855 | minimatch: 3.0.4
856 | once: 1.4.0
857 | path-is-absolute: 1.0.1
858 | dev: false
859 | resolution:
860 | integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
861 | /google-translate-api/2.3.0:
862 | dependencies:
863 | configstore: 2.1.0
864 | google-translate-token: 1.0.0
865 | got: 6.7.1
866 | safe-eval: 0.3.0
867 | dev: false
868 | resolution:
869 | integrity: sha1-YmcwoSPaDVevNzXdcHzacc7pGcc=
870 | /google-translate-token/1.0.0:
871 | dependencies:
872 | configstore: 2.1.0
873 | got: 6.7.1
874 | dev: false
875 | resolution:
876 | integrity: sha1-vpQ0RXhvAMN2Xewx9JDawhIo0/g=
877 | /got/6.7.1:
878 | dependencies:
879 | create-error-class: 3.0.2
880 | duplexer3: 0.1.4
881 | get-stream: 3.0.0
882 | is-redirect: 1.0.0
883 | is-retry-allowed: 1.2.0
884 | is-stream: 1.1.0
885 | lowercase-keys: 1.0.1
886 | safe-buffer: 5.2.1
887 | timed-out: 4.0.1
888 | unzip-response: 2.0.1
889 | url-parse-lax: 1.0.0
890 | dev: false
891 | engines:
892 | node: '>=4'
893 | resolution:
894 | integrity: sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=
895 | /graceful-fs/4.2.4:
896 | dev: false
897 | resolution:
898 | integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
899 | /har-schema/2.0.0:
900 | dev: false
901 | engines:
902 | node: '>=4'
903 | resolution:
904 | integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
905 | /har-validator/5.1.5:
906 | dependencies:
907 | ajv: 6.12.6
908 | har-schema: 2.0.0
909 | deprecated: this library is no longer supported
910 | dev: false
911 | engines:
912 | node: '>=6'
913 | resolution:
914 | integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
915 | /has-symbols/1.0.1:
916 | dev: false
917 | engines:
918 | node: '>= 0.4'
919 | resolution:
920 | integrity: sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
921 | /has-unicode/2.0.1:
922 | dev: false
923 | resolution:
924 | integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
925 | /has/1.0.3:
926 | dependencies:
927 | function-bind: 1.1.1
928 | dev: false
929 | engines:
930 | node: '>= 0.4.0'
931 | resolution:
932 | integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
933 | /htmlparser2/3.10.1:
934 | dependencies:
935 | domelementtype: 1.3.1
936 | domhandler: 2.4.2
937 | domutils: 1.7.0
938 | entities: 1.1.2
939 | inherits: 2.0.4
940 | readable-stream: 3.6.0
941 | dev: false
942 | resolution:
943 | integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
944 | /http-errors/1.7.2:
945 | dependencies:
946 | depd: 1.1.2
947 | inherits: 2.0.3
948 | setprototypeof: 1.1.1
949 | statuses: 1.5.0
950 | toidentifier: 1.0.0
951 | dev: false
952 | engines:
953 | node: '>= 0.6'
954 | resolution:
955 | integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
956 | /http-errors/1.7.3:
957 | dependencies:
958 | depd: 1.1.2
959 | inherits: 2.0.4
960 | setprototypeof: 1.1.1
961 | statuses: 1.5.0
962 | toidentifier: 1.0.0
963 | dev: false
964 | engines:
965 | node: '>= 0.6'
966 | resolution:
967 | integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
968 | /http-signature/1.2.0:
969 | dependencies:
970 | assert-plus: 1.0.0
971 | jsprim: 1.4.1
972 | sshpk: 1.16.1
973 | dev: false
974 | engines:
975 | node: '>=0.8'
976 | npm: '>=1.3.7'
977 | resolution:
978 | integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
979 | /iconv-lite/0.4.24:
980 | dependencies:
981 | safer-buffer: 2.1.2
982 | dev: false
983 | engines:
984 | node: '>=0.10.0'
985 | resolution:
986 | integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
987 | /ignore-walk/3.0.3:
988 | dependencies:
989 | minimatch: 3.0.4
990 | dev: false
991 | resolution:
992 | integrity: sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
993 | /imurmurhash/0.1.4:
994 | dev: false
995 | engines:
996 | node: '>=0.8.19'
997 | resolution:
998 | integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=
999 | /inflection/1.12.0:
1000 | dev: false
1001 | engines:
1002 | '0': node >= 0.4.0
1003 | resolution:
1004 | integrity: sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=
1005 | /inflight/1.0.6:
1006 | dependencies:
1007 | once: 1.4.0
1008 | wrappy: 1.0.2
1009 | dev: false
1010 | resolution:
1011 | integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1012 | /inherits/2.0.3:
1013 | dev: false
1014 | resolution:
1015 | integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
1016 | /inherits/2.0.4:
1017 | dev: false
1018 | resolution:
1019 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1020 | /ini/1.3.5:
1021 | dev: false
1022 | resolution:
1023 | integrity: sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
1024 | /install/0.13.0:
1025 | dev: false
1026 | engines:
1027 | node: '>= 0.10'
1028 | resolution:
1029 | integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==
1030 | /ipaddr.js/1.9.1:
1031 | dev: false
1032 | engines:
1033 | node: '>= 0.10'
1034 | resolution:
1035 | integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
1036 | /is-arguments/1.0.4:
1037 | dev: false
1038 | engines:
1039 | node: '>= 0.4'
1040 | resolution:
1041 | integrity: sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
1042 | /is-bluebird/1.0.2:
1043 | dev: false
1044 | engines:
1045 | node: '>=0.10.0'
1046 | resolution:
1047 | integrity: sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI=
1048 | /is-callable/1.2.2:
1049 | dev: false
1050 | engines:
1051 | node: '>= 0.4'
1052 | resolution:
1053 | integrity: sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
1054 | /is-date-object/1.0.2:
1055 | dev: false
1056 | engines:
1057 | node: '>= 0.4'
1058 | resolution:
1059 | integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
1060 | /is-fullwidth-code-point/1.0.0:
1061 | dependencies:
1062 | number-is-nan: 1.0.1
1063 | dev: false
1064 | engines:
1065 | node: '>=0.10.0'
1066 | resolution:
1067 | integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
1068 | /is-fullwidth-code-point/2.0.0:
1069 | dev: false
1070 | engines:
1071 | node: '>=4'
1072 | resolution:
1073 | integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
1074 | /is-generator-function/1.0.7:
1075 | dev: false
1076 | engines:
1077 | node: '>= 0.4'
1078 | resolution:
1079 | integrity: sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==
1080 | /is-negative-zero/2.0.0:
1081 | dev: false
1082 | engines:
1083 | node: '>= 0.4'
1084 | resolution:
1085 | integrity: sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
1086 | /is-obj/1.0.1:
1087 | dev: false
1088 | engines:
1089 | node: '>=0.10.0'
1090 | resolution:
1091 | integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
1092 | /is-redirect/1.0.0:
1093 | dev: false
1094 | engines:
1095 | node: '>=0.10.0'
1096 | resolution:
1097 | integrity: sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
1098 | /is-regex/1.1.1:
1099 | dependencies:
1100 | has-symbols: 1.0.1
1101 | dev: false
1102 | engines:
1103 | node: '>= 0.4'
1104 | resolution:
1105 | integrity: sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
1106 | /is-retry-allowed/1.2.0:
1107 | dev: false
1108 | engines:
1109 | node: '>=0.10.0'
1110 | resolution:
1111 | integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
1112 | /is-stream/1.1.0:
1113 | dev: false
1114 | engines:
1115 | node: '>=0.10.0'
1116 | resolution:
1117 | integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
1118 | /is-symbol/1.0.3:
1119 | dependencies:
1120 | has-symbols: 1.0.1
1121 | dev: false
1122 | engines:
1123 | node: '>= 0.4'
1124 | resolution:
1125 | integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
1126 | /is-typed-array/1.1.3:
1127 | dependencies:
1128 | available-typed-arrays: 1.0.2
1129 | es-abstract: 1.17.7
1130 | foreach: 2.0.5
1131 | has-symbols: 1.0.1
1132 | dev: false
1133 | engines:
1134 | node: '>= 0.4'
1135 | resolution:
1136 | integrity: sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==
1137 | /is-typedarray/1.0.0:
1138 | dev: false
1139 | resolution:
1140 | integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
1141 | /isarray/1.0.0:
1142 | dev: false
1143 | resolution:
1144 | integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
1145 | /isstream/0.1.2:
1146 | dev: false
1147 | resolution:
1148 | integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
1149 | /jsbn/0.1.1:
1150 | dev: false
1151 | resolution:
1152 | integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
1153 | /json-schema-traverse/0.4.1:
1154 | dev: false
1155 | resolution:
1156 | integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1157 | /json-schema/0.2.3:
1158 | dev: false
1159 | resolution:
1160 | integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
1161 | /json-stringify-safe/5.0.1:
1162 | dev: false
1163 | resolution:
1164 | integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
1165 | /jsprim/1.4.1:
1166 | dependencies:
1167 | assert-plus: 1.0.0
1168 | extsprintf: 1.3.0
1169 | json-schema: 0.2.3
1170 | verror: 1.10.0
1171 | dev: false
1172 | engines:
1173 | '0': node >=0.6.0
1174 | resolution:
1175 | integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
1176 | /lodash.assignin/4.2.0:
1177 | dev: false
1178 | resolution:
1179 | integrity: sha1-uo31+4QesKPoBEIysOJjqNxqKKI=
1180 | /lodash.bind/4.2.1:
1181 | dev: false
1182 | resolution:
1183 | integrity: sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=
1184 | /lodash.defaults/4.2.0:
1185 | dev: false
1186 | resolution:
1187 | integrity: sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
1188 | /lodash.filter/4.6.0:
1189 | dev: false
1190 | resolution:
1191 | integrity: sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=
1192 | /lodash.flatten/4.4.0:
1193 | dev: false
1194 | resolution:
1195 | integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
1196 | /lodash.foreach/4.5.0:
1197 | dev: false
1198 | resolution:
1199 | integrity: sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
1200 | /lodash.map/4.6.0:
1201 | dev: false
1202 | resolution:
1203 | integrity: sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=
1204 | /lodash.merge/4.6.2:
1205 | dev: false
1206 | resolution:
1207 | integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1208 | /lodash.pick/4.4.0:
1209 | dev: false
1210 | resolution:
1211 | integrity: sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
1212 | /lodash.reduce/4.6.0:
1213 | dev: false
1214 | resolution:
1215 | integrity: sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=
1216 | /lodash.reject/4.6.0:
1217 | dev: false
1218 | resolution:
1219 | integrity: sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=
1220 | /lodash.some/4.6.0:
1221 | dev: false
1222 | resolution:
1223 | integrity: sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=
1224 | /lodash/4.17.20:
1225 | dev: false
1226 | resolution:
1227 | integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
1228 | /lowercase-keys/1.0.1:
1229 | dev: false
1230 | engines:
1231 | node: '>=0.10.0'
1232 | resolution:
1233 | integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
1234 | /media-typer/0.3.0:
1235 | dev: false
1236 | engines:
1237 | node: '>= 0.6'
1238 | resolution:
1239 | integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
1240 | /merge-descriptors/1.0.1:
1241 | dev: false
1242 | resolution:
1243 | integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
1244 | /methods/1.1.2:
1245 | dev: false
1246 | engines:
1247 | node: '>= 0.6'
1248 | resolution:
1249 | integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
1250 | /mime-db/1.44.0:
1251 | dev: false
1252 | engines:
1253 | node: '>= 0.6'
1254 | resolution:
1255 | integrity: sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
1256 | /mime-types/2.1.27:
1257 | dependencies:
1258 | mime-db: 1.44.0
1259 | dev: false
1260 | engines:
1261 | node: '>= 0.6'
1262 | resolution:
1263 | integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
1264 | /mime/1.6.0:
1265 | dev: false
1266 | engines:
1267 | node: '>=4'
1268 | hasBin: true
1269 | resolution:
1270 | integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
1271 | /mime/2.4.6:
1272 | dev: false
1273 | engines:
1274 | node: '>=4.0.0'
1275 | hasBin: true
1276 | resolution:
1277 | integrity: sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
1278 | /minimatch/3.0.4:
1279 | dependencies:
1280 | brace-expansion: 1.1.11
1281 | dev: false
1282 | resolution:
1283 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1284 | /minimist/1.2.5:
1285 | dev: false
1286 | resolution:
1287 | integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1288 | /minipass/2.9.0:
1289 | dependencies:
1290 | safe-buffer: 5.2.1
1291 | yallist: 3.1.1
1292 | dev: false
1293 | resolution:
1294 | integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
1295 | /minizlib/1.3.3:
1296 | dependencies:
1297 | minipass: 2.9.0
1298 | dev: false
1299 | resolution:
1300 | integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
1301 | /mkdirp/0.5.5:
1302 | dependencies:
1303 | minimist: 1.2.5
1304 | dev: false
1305 | hasBin: true
1306 | resolution:
1307 | integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
1308 | /moment-timezone/0.5.31:
1309 | dependencies:
1310 | moment: 2.29.1
1311 | dev: false
1312 | resolution:
1313 | integrity: sha512-+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==
1314 | /moment/2.29.1:
1315 | dev: false
1316 | resolution:
1317 | integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
1318 | /ms/2.0.0:
1319 | dev: false
1320 | resolution:
1321 | integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
1322 | /ms/2.1.1:
1323 | dev: false
1324 | resolution:
1325 | integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
1326 | /ms/2.1.2:
1327 | dev: false
1328 | resolution:
1329 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1330 | /nan/2.14.2:
1331 | dev: false
1332 | resolution:
1333 | integrity: sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
1334 | /needle/2.5.2:
1335 | dependencies:
1336 | debug: 3.2.6
1337 | iconv-lite: 0.4.24
1338 | sax: 1.2.4
1339 | dev: false
1340 | engines:
1341 | node: '>= 4.4.x'
1342 | hasBin: true
1343 | resolution:
1344 | integrity: sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==
1345 | /negotiator/0.6.2:
1346 | dev: false
1347 | engines:
1348 | node: '>= 0.6'
1349 | resolution:
1350 | integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
1351 | /node-fetch/2.6.1:
1352 | dev: false
1353 | engines:
1354 | node: 4.x || >=6.0.0
1355 | resolution:
1356 | integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
1357 | /node-pre-gyp/0.11.0:
1358 | dependencies:
1359 | detect-libc: 1.0.3
1360 | mkdirp: 0.5.5
1361 | needle: 2.5.2
1362 | nopt: 4.0.3
1363 | npm-packlist: 1.4.8
1364 | npmlog: 4.1.2
1365 | rc: 1.2.8
1366 | rimraf: 2.7.1
1367 | semver: 5.7.1
1368 | tar: 4.4.13
1369 | dev: false
1370 | hasBin: true
1371 | resolution:
1372 | integrity: sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==
1373 | /nopt/4.0.3:
1374 | dependencies:
1375 | abbrev: 1.1.1
1376 | osenv: 0.1.5
1377 | dev: false
1378 | hasBin: true
1379 | resolution:
1380 | integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
1381 | /npm-bundled/1.1.1:
1382 | dependencies:
1383 | npm-normalize-package-bin: 1.0.1
1384 | dev: false
1385 | resolution:
1386 | integrity: sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
1387 | /npm-normalize-package-bin/1.0.1:
1388 | dev: false
1389 | resolution:
1390 | integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
1391 | /npm-packlist/1.4.8:
1392 | dependencies:
1393 | ignore-walk: 3.0.3
1394 | npm-bundled: 1.1.1
1395 | npm-normalize-package-bin: 1.0.1
1396 | dev: false
1397 | resolution:
1398 | integrity: sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
1399 | /npm/6.14.8:
1400 | bundledDependencies:
1401 | - abbrev
1402 | - ansicolors
1403 | - ansistyles
1404 | - aproba
1405 | - archy
1406 | - bin-links
1407 | - bluebird
1408 | - byte-size
1409 | - cacache
1410 | - call-limit
1411 | - chownr
1412 | - ci-info
1413 | - cli-columns
1414 | - cli-table3
1415 | - cmd-shim
1416 | - columnify
1417 | - config-chain
1418 | - debuglog
1419 | - detect-indent
1420 | - detect-newline
1421 | - dezalgo
1422 | - editor
1423 | - figgy-pudding
1424 | - find-npm-prefix
1425 | - fs-vacuum
1426 | - fs-write-stream-atomic
1427 | - gentle-fs
1428 | - glob
1429 | - graceful-fs
1430 | - has-unicode
1431 | - hosted-git-info
1432 | - iferr
1433 | - imurmurhash
1434 | - infer-owner
1435 | - inflight
1436 | - inherits
1437 | - ini
1438 | - init-package-json
1439 | - is-cidr
1440 | - json-parse-better-errors
1441 | - JSONStream
1442 | - lazy-property
1443 | - libcipm
1444 | - libnpm
1445 | - libnpmaccess
1446 | - libnpmhook
1447 | - libnpmorg
1448 | - libnpmsearch
1449 | - libnpmteam
1450 | - libnpx
1451 | - lock-verify
1452 | - lockfile
1453 | - lodash._baseindexof
1454 | - lodash._baseuniq
1455 | - lodash._bindcallback
1456 | - lodash._cacheindexof
1457 | - lodash._createcache
1458 | - lodash._getnative
1459 | - lodash.clonedeep
1460 | - lodash.restparam
1461 | - lodash.union
1462 | - lodash.uniq
1463 | - lodash.without
1464 | - lru-cache
1465 | - meant
1466 | - mississippi
1467 | - mkdirp
1468 | - move-concurrently
1469 | - node-gyp
1470 | - nopt
1471 | - normalize-package-data
1472 | - npm-audit-report
1473 | - npm-cache-filename
1474 | - npm-install-checks
1475 | - npm-lifecycle
1476 | - npm-package-arg
1477 | - npm-packlist
1478 | - npm-pick-manifest
1479 | - npm-profile
1480 | - npm-registry-fetch
1481 | - npm-user-validate
1482 | - npmlog
1483 | - once
1484 | - opener
1485 | - osenv
1486 | - pacote
1487 | - path-is-inside
1488 | - promise-inflight
1489 | - qrcode-terminal
1490 | - query-string
1491 | - qw
1492 | - read-cmd-shim
1493 | - read-installed
1494 | - read-package-json
1495 | - read-package-tree
1496 | - read
1497 | - readable-stream
1498 | - readdir-scoped-modules
1499 | - request
1500 | - retry
1501 | - rimraf
1502 | - safe-buffer
1503 | - semver
1504 | - sha
1505 | - slide
1506 | - sorted-object
1507 | - sorted-union-stream
1508 | - ssri
1509 | - stringify-package
1510 | - tar
1511 | - text-table
1512 | - tiny-relative-date
1513 | - uid-number
1514 | - umask
1515 | - unique-filename
1516 | - unpipe
1517 | - update-notifier
1518 | - uuid
1519 | - validate-npm-package-license
1520 | - validate-npm-package-name
1521 | - which
1522 | - worker-farm
1523 | - write-file-atomic
1524 | dev: false
1525 | engines:
1526 | node: 6 >=6.2.0 || 8 || >=9.3.0
1527 | hasBin: true
1528 | resolution:
1529 | integrity: sha512-HBZVBMYs5blsj94GTeQZel7s9odVuuSUHy1+AlZh7rPVux1os2ashvEGLy/STNK7vUjbrCg5Kq9/GXisJgdf6A==
1530 | /npmlog/4.1.2:
1531 | dependencies:
1532 | are-we-there-yet: 1.1.5
1533 | console-control-strings: 1.1.0
1534 | gauge: 2.7.4
1535 | set-blocking: 2.0.0
1536 | dev: false
1537 | resolution:
1538 | integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
1539 | /nth-check/1.0.2:
1540 | dependencies:
1541 | boolbase: 1.0.0
1542 | dev: false
1543 | resolution:
1544 | integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
1545 | /number-is-nan/1.0.1:
1546 | dev: false
1547 | engines:
1548 | node: '>=0.10.0'
1549 | resolution:
1550 | integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
1551 | /oauth-sign/0.9.0:
1552 | dev: false
1553 | resolution:
1554 | integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
1555 | /object-assign/4.1.1:
1556 | dev: false
1557 | engines:
1558 | node: '>=0.10.0'
1559 | resolution:
1560 | integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1561 | /object-inspect/1.8.0:
1562 | dev: false
1563 | resolution:
1564 | integrity: sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
1565 | /object-keys/1.1.1:
1566 | dev: false
1567 | engines:
1568 | node: '>= 0.4'
1569 | resolution:
1570 | integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1571 | /object.assign/4.1.2:
1572 | dependencies:
1573 | call-bind: 1.0.0
1574 | define-properties: 1.1.3
1575 | has-symbols: 1.0.1
1576 | object-keys: 1.1.1
1577 | dev: false
1578 | engines:
1579 | node: '>= 0.4'
1580 | resolution:
1581 | integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1582 | /on-finished/2.3.0:
1583 | dependencies:
1584 | ee-first: 1.1.1
1585 | dev: false
1586 | engines:
1587 | node: '>= 0.8'
1588 | resolution:
1589 | integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
1590 | /once/1.4.0:
1591 | dependencies:
1592 | wrappy: 1.0.2
1593 | dev: false
1594 | resolution:
1595 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1596 | /os-homedir/1.0.2:
1597 | dev: false
1598 | engines:
1599 | node: '>=0.10.0'
1600 | resolution:
1601 | integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
1602 | /os-tmpdir/1.0.2:
1603 | dev: false
1604 | engines:
1605 | node: '>=0.10.0'
1606 | resolution:
1607 | integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
1608 | /os/0.1.1:
1609 | dev: false
1610 | resolution:
1611 | integrity: sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M=
1612 | /osenv/0.1.5:
1613 | dependencies:
1614 | os-homedir: 1.0.2
1615 | os-tmpdir: 1.0.2
1616 | dev: false
1617 | resolution:
1618 | integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
1619 | /overwatch-api/0.8.2:
1620 | dependencies:
1621 | cheerio: 0.22.0
1622 | request: 2.88.2
1623 | request-promise: /request-promise/4.2.6/request@2.88.2
1624 | svg-builder: 1.0.0
1625 | dev: false
1626 | engines:
1627 | node: '>=6.11.1'
1628 | resolution:
1629 | integrity: sha512-DbY7uw8yxk9O8zXI1ngSHV59rfZlk58RuiueLy9O/CPxfihNQNWgHbVEQdRso3XOz+aECgs4As/L6lahn1H9UA==
1630 | /parseurl/1.3.3:
1631 | dev: false
1632 | engines:
1633 | node: '>= 0.8'
1634 | resolution:
1635 | integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
1636 | /path-is-absolute/1.0.1:
1637 | dev: false
1638 | engines:
1639 | node: '>=0.10.0'
1640 | resolution:
1641 | integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1642 | /path-to-regexp/0.1.7:
1643 | dev: false
1644 | resolution:
1645 | integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
1646 | /performance-now/2.1.0:
1647 | dev: false
1648 | resolution:
1649 | integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
1650 | /prepend-http/1.0.4:
1651 | dev: false
1652 | engines:
1653 | node: '>=0.10.0'
1654 | resolution:
1655 | integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
1656 | /prism-media/1.2.2:
1657 | dev: false
1658 | peerDependencies:
1659 | '@discordjs/opus': ^0.1.0
1660 | ffmpeg-static: ^2.4.0 || ^3.0.0
1661 | node-opus: ^0.3.1
1662 | opusscript: ^0.0.6
1663 | resolution:
1664 | integrity: sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw==
1665 | /process-nextick-args/2.0.1:
1666 | dev: false
1667 | resolution:
1668 | integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1669 | /proxy-addr/2.0.6:
1670 | dependencies:
1671 | forwarded: 0.1.2
1672 | ipaddr.js: 1.9.1
1673 | dev: false
1674 | engines:
1675 | node: '>= 0.10'
1676 | resolution:
1677 | integrity: sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
1678 | /psl/1.8.0:
1679 | dev: false
1680 | resolution:
1681 | integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
1682 | /punycode/2.1.1:
1683 | dev: false
1684 | engines:
1685 | node: '>=6'
1686 | resolution:
1687 | integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1688 | /qs/6.5.2:
1689 | dev: false
1690 | engines:
1691 | node: '>=0.6'
1692 | resolution:
1693 | integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
1694 | /qs/6.7.0:
1695 | dev: false
1696 | engines:
1697 | node: '>=0.6'
1698 | resolution:
1699 | integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
1700 | /qs/6.9.4:
1701 | dev: false
1702 | engines:
1703 | node: '>=0.6'
1704 | resolution:
1705 | integrity: sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==
1706 | /random-puppy/1.1.0:
1707 | dependencies:
1708 | eventemitter3: 1.2.0
1709 | got: 6.7.1
1710 | unique-random-array: 1.0.1
1711 | dev: false
1712 | engines:
1713 | node: '>=4.0.0'
1714 | resolution:
1715 | integrity: sha1-GtqjTA83bVArWdb9gifqYaRUmTs=
1716 | /range-parser/1.2.1:
1717 | dev: false
1718 | engines:
1719 | node: '>= 0.6'
1720 | resolution:
1721 | integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
1722 | /raw-body/2.4.0:
1723 | dependencies:
1724 | bytes: 3.1.0
1725 | http-errors: 1.7.2
1726 | iconv-lite: 0.4.24
1727 | unpipe: 1.0.0
1728 | dev: false
1729 | engines:
1730 | node: '>= 0.8'
1731 | resolution:
1732 | integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
1733 | /rc/1.2.8:
1734 | dependencies:
1735 | deep-extend: 0.6.0
1736 | ini: 1.3.5
1737 | minimist: 1.2.5
1738 | strip-json-comments: 2.0.1
1739 | dev: false
1740 | hasBin: true
1741 | resolution:
1742 | integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
1743 | /readable-stream/2.3.7:
1744 | dependencies:
1745 | core-util-is: 1.0.2
1746 | inherits: 2.0.4
1747 | isarray: 1.0.0
1748 | process-nextick-args: 2.0.1
1749 | safe-buffer: 5.1.2
1750 | string_decoder: 1.1.1
1751 | util-deprecate: 1.0.2
1752 | dev: false
1753 | resolution:
1754 | integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
1755 | /readable-stream/3.6.0:
1756 | dependencies:
1757 | inherits: 2.0.4
1758 | string_decoder: 1.3.0
1759 | util-deprecate: 1.0.2
1760 | dev: false
1761 | engines:
1762 | node: '>= 6'
1763 | resolution:
1764 | integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
1765 | /request-promise-core/1.1.4/request@2.88.2:
1766 | dependencies:
1767 | lodash: 4.17.20
1768 | request: 2.88.2
1769 | dev: false
1770 | engines:
1771 | node: '>=0.10.0'
1772 | id: registry.npmjs.org/request-promise-core/1.1.4
1773 | peerDependencies:
1774 | request: ^2.34
1775 | resolution:
1776 | integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
1777 | /request-promise/4.2.6/request@2.88.2:
1778 | dependencies:
1779 | bluebird: 3.7.2
1780 | request: 2.88.2
1781 | request-promise-core: /request-promise-core/1.1.4/request@2.88.2
1782 | stealthy-require: 1.1.1
1783 | tough-cookie: 2.5.0
1784 | deprecated: 'request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142'
1785 | dev: false
1786 | engines:
1787 | node: '>=0.10.0'
1788 | id: registry.npmjs.org/request-promise/4.2.6
1789 | peerDependencies:
1790 | request: ^2.34
1791 | resolution:
1792 | integrity: sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==
1793 | /request/2.88.2:
1794 | dependencies:
1795 | aws-sign2: 0.7.0
1796 | aws4: 1.11.0
1797 | caseless: 0.12.0
1798 | combined-stream: 1.0.8
1799 | extend: 3.0.2
1800 | forever-agent: 0.6.1
1801 | form-data: 2.3.3
1802 | har-validator: 5.1.5
1803 | http-signature: 1.2.0
1804 | is-typedarray: 1.0.0
1805 | isstream: 0.1.2
1806 | json-stringify-safe: 5.0.1
1807 | mime-types: 2.1.27
1808 | oauth-sign: 0.9.0
1809 | performance-now: 2.1.0
1810 | qs: 6.5.2
1811 | safe-buffer: 5.2.1
1812 | tough-cookie: 2.5.0
1813 | tunnel-agent: 0.6.0
1814 | uuid: 3.4.0
1815 | deprecated: 'request has been deprecated, see https://github.com/request/request/issues/3142'
1816 | dev: false
1817 | engines:
1818 | node: '>= 6'
1819 | resolution:
1820 | integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
1821 | /requestretry/4.1.2/request@2.88.2:
1822 | dependencies:
1823 | extend: 3.0.2
1824 | lodash: 4.17.20
1825 | request: 2.88.2
1826 | when: 3.7.8
1827 | dev: false
1828 | id: registry.npmjs.org/requestretry/4.1.2
1829 | peerDependencies:
1830 | request: 2.*.*
1831 | resolution:
1832 | integrity: sha512-N1WAp+8eOy8NfsVBChcSxNCKvPY1azOpliQ4Sby4WDe0HFEhdKywlNZeROMBQ+BI3Jpc0eNOT1KVFGREawtahA==
1833 | /retry-as-promised/2.3.2:
1834 | dependencies:
1835 | bluebird: 3.7.2
1836 | debug: 2.6.9
1837 | dev: false
1838 | resolution:
1839 | integrity: sha1-zZdO5P2bX+A8vzGHHuSCIcB3N7c=
1840 | /retry-as-promised/3.2.0:
1841 | dependencies:
1842 | any-promise: 1.3.0
1843 | dev: false
1844 | resolution:
1845 | integrity: sha512-CybGs60B7oYU/qSQ6kuaFmRd9sTZ6oXSc0toqePvV74Ac6/IFZSI1ReFQmtCN+uvW1Mtqdwpvt/LGOiCBAY2Mg==
1846 | /rimraf/2.7.1:
1847 | dependencies:
1848 | glob: 7.1.6
1849 | dev: false
1850 | hasBin: true
1851 | resolution:
1852 | integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
1853 | /safe-buffer/5.1.2:
1854 | dev: false
1855 | resolution:
1856 | integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1857 | /safe-buffer/5.2.1:
1858 | dev: false
1859 | resolution:
1860 | integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1861 | /safe-eval/0.3.0:
1862 | dev: false
1863 | resolution:
1864 | integrity: sha1-Bs4RHuvZwYWrr/AI7A/P/Fxb4Aw=
1865 | /safer-buffer/2.1.2:
1866 | dev: false
1867 | resolution:
1868 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1869 | /sax/1.2.4:
1870 | dev: false
1871 | resolution:
1872 | integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
1873 | /scraper-instagram/1.0.14:
1874 | dependencies:
1875 | request: 2.88.2
1876 | requestretry: /requestretry/4.1.2/request@2.88.2
1877 | dev: false
1878 | resolution:
1879 | integrity: sha512-bJLuT3qFC3ymalrIeiKtEKZYFKqvuhhOKl1W50ySWlNvgwYFRNzKRLXs4pyGOybeOCxsm0zwa1+mVzUvN8j+fQ==
1880 | /semver/5.7.1:
1881 | dev: false
1882 | hasBin: true
1883 | resolution:
1884 | integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1885 | /semver/6.3.0:
1886 | dev: false
1887 | hasBin: true
1888 | resolution:
1889 | integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1890 | /semver/7.3.2:
1891 | dev: false
1892 | engines:
1893 | node: '>=10'
1894 | hasBin: true
1895 | resolution:
1896 | integrity: sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
1897 | /send/0.17.1:
1898 | dependencies:
1899 | debug: 2.6.9
1900 | depd: 1.1.2
1901 | destroy: 1.0.4
1902 | encodeurl: 1.0.2
1903 | escape-html: 1.0.3
1904 | etag: 1.8.1
1905 | fresh: 0.5.2
1906 | http-errors: 1.7.3
1907 | mime: 1.6.0
1908 | ms: 2.1.1
1909 | on-finished: 2.3.0
1910 | range-parser: 1.2.1
1911 | statuses: 1.5.0
1912 | dev: false
1913 | engines:
1914 | node: '>= 0.8.0'
1915 | resolution:
1916 | integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
1917 | /sequelize-pool/2.3.0:
1918 | dev: false
1919 | engines:
1920 | node: '>= 6.0.0'
1921 | resolution:
1922 | integrity: sha512-Ibz08vnXvkZ8LJTiUOxRcj1Ckdn7qafNZ2t59jYHMX1VIebTAOYefWdRYFt6z6+hy52WGthAHAoLc9hvk3onqA==
1923 | /sequelize/4.44.4:
1924 | dependencies:
1925 | bluebird: 3.7.2
1926 | cls-bluebird: 2.1.0
1927 | debug: 3.2.6
1928 | depd: 1.1.2
1929 | dottie: 2.0.2
1930 | generic-pool: 3.5.0
1931 | inflection: 1.12.0
1932 | lodash: 4.17.20
1933 | moment: 2.29.1
1934 | moment-timezone: 0.5.31
1935 | retry-as-promised: 2.3.2
1936 | semver: 5.7.1
1937 | terraformer-wkt-parser: 1.2.1
1938 | toposort-class: 1.0.1
1939 | uuid: 3.4.0
1940 | validator: 10.11.0
1941 | wkx: 0.4.8
1942 | deprecated: This version will no longer receive security fixes per our security policy. Please update to sequelize@5 or above.
1943 | dev: false
1944 | engines:
1945 | node: '>=4.0.0'
1946 | resolution:
1947 | integrity: sha512-nkHmYkbwQK7uwpgW9VBalCBnQqQ8mslTdgcBthtJLORuPvAYRPlfkXZMVUU9TLLJt9CX+/y0MYg0DpcP6ywsEQ==
1948 | /sequelize/5.22.3:
1949 | dependencies:
1950 | bluebird: 3.7.2
1951 | cls-bluebird: 2.1.0
1952 | debug: 4.2.0
1953 | dottie: 2.0.2
1954 | inflection: 1.12.0
1955 | lodash: 4.17.20
1956 | moment: 2.29.1
1957 | moment-timezone: 0.5.31
1958 | retry-as-promised: 3.2.0
1959 | semver: 6.3.0
1960 | sequelize-pool: 2.3.0
1961 | toposort-class: 1.0.1
1962 | uuid: 3.4.0
1963 | validator: 10.11.0
1964 | wkx: 0.4.8
1965 | dev: false
1966 | engines:
1967 | node: '>=6.0.0'
1968 | resolution:
1969 | integrity: sha512-+nxf4TzdrB+PRmoWhR05TP9ukLAurK7qtKcIFv5Vhxm5Z9v+d2PcTT6Ea3YAoIQVkZ47QlT9XWAIUevMT/3l8Q==
1970 | /serve-static/1.14.1:
1971 | dependencies:
1972 | encodeurl: 1.0.2
1973 | escape-html: 1.0.3
1974 | parseurl: 1.3.3
1975 | send: 0.17.1
1976 | dev: false
1977 | engines:
1978 | node: '>= 0.8.0'
1979 | resolution:
1980 | integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
1981 | /set-blocking/2.0.0:
1982 | dev: false
1983 | resolution:
1984 | integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
1985 | /setimmediate/1.0.5:
1986 | dev: false
1987 | resolution:
1988 | integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
1989 | /setprototypeof/1.1.1:
1990 | dev: false
1991 | resolution:
1992 | integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
1993 | /shimmer/1.2.1:
1994 | dev: false
1995 | resolution:
1996 | integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
1997 | /signal-exit/3.0.3:
1998 | dev: false
1999 | resolution:
2000 | integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
2001 | /slide/1.1.6:
2002 | dev: false
2003 | resolution:
2004 | integrity: sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
2005 | /sqlite3/4.2.0:
2006 | dependencies:
2007 | nan: 2.14.2
2008 | node-pre-gyp: 0.11.0
2009 | dev: false
2010 | requiresBuild: true
2011 | resolution:
2012 | integrity: sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==
2013 | /sshpk/1.16.1:
2014 | dependencies:
2015 | asn1: 0.2.4
2016 | assert-plus: 1.0.0
2017 | bcrypt-pbkdf: 1.0.2
2018 | dashdash: 1.14.1
2019 | ecc-jsbn: 0.1.2
2020 | getpass: 0.1.7
2021 | jsbn: 0.1.1
2022 | safer-buffer: 2.1.2
2023 | tweetnacl: 0.14.5
2024 | dev: false
2025 | engines:
2026 | node: '>=0.10.0'
2027 | hasBin: true
2028 | resolution:
2029 | integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
2030 | /statuses/1.5.0:
2031 | dev: false
2032 | engines:
2033 | node: '>= 0.6'
2034 | resolution:
2035 | integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
2036 | /stealthy-require/1.1.1:
2037 | dev: false
2038 | engines:
2039 | node: '>=0.10.0'
2040 | resolution:
2041 | integrity: sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
2042 | /string-width/1.0.2:
2043 | dependencies:
2044 | code-point-at: 1.1.0
2045 | is-fullwidth-code-point: 1.0.0
2046 | strip-ansi: 3.0.1
2047 | dev: false
2048 | engines:
2049 | node: '>=0.10.0'
2050 | resolution:
2051 | integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
2052 | /string-width/2.1.1:
2053 | dependencies:
2054 | is-fullwidth-code-point: 2.0.0
2055 | strip-ansi: 4.0.0
2056 | dev: false
2057 | engines:
2058 | node: '>=4'
2059 | resolution:
2060 | integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
2061 | /string.prototype.trimend/1.0.2:
2062 | dependencies:
2063 | define-properties: 1.1.3
2064 | es-abstract: 1.18.0-next.1
2065 | dev: false
2066 | resolution:
2067 | integrity: sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==
2068 | /string.prototype.trimstart/1.0.2:
2069 | dependencies:
2070 | define-properties: 1.1.3
2071 | es-abstract: 1.18.0-next.1
2072 | dev: false
2073 | resolution:
2074 | integrity: sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==
2075 | /string_decoder/1.1.1:
2076 | dependencies:
2077 | safe-buffer: 5.1.2
2078 | dev: false
2079 | resolution:
2080 | integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
2081 | /string_decoder/1.3.0:
2082 | dependencies:
2083 | safe-buffer: 5.2.1
2084 | dev: false
2085 | resolution:
2086 | integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
2087 | /strip-ansi/3.0.1:
2088 | dependencies:
2089 | ansi-regex: 2.1.1
2090 | dev: false
2091 | engines:
2092 | node: '>=0.10.0'
2093 | resolution:
2094 | integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
2095 | /strip-ansi/4.0.0:
2096 | dependencies:
2097 | ansi-regex: 3.0.0
2098 | dev: false
2099 | engines:
2100 | node: '>=4'
2101 | resolution:
2102 | integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=
2103 | /strip-json-comments/2.0.1:
2104 | dev: false
2105 | engines:
2106 | node: '>=0.10.0'
2107 | resolution:
2108 | integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=
2109 | /superagent/5.3.1:
2110 | dependencies:
2111 | component-emitter: 1.3.0
2112 | cookiejar: 2.1.2
2113 | debug: 4.2.0
2114 | fast-safe-stringify: 2.0.7
2115 | form-data: 3.0.0
2116 | formidable: 1.2.2
2117 | methods: 1.1.2
2118 | mime: 2.4.6
2119 | qs: 6.9.4
2120 | readable-stream: 3.6.0
2121 | semver: 7.3.2
2122 | dev: false
2123 | engines:
2124 | node: '>= 7.0.0'
2125 | resolution:
2126 | integrity: sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==
2127 | /svg-builder/1.0.0:
2128 | dev: false
2129 | resolution:
2130 | integrity: sha512-Alb20G9MRQLXnc8YhVfimUJdHqQB2KK1/J/0pAlAoRdtD+V8ryoZCNtkDBAGxQuNyd+lX9qb0RKpZ3kso45K+w==
2131 | /tar/4.4.13:
2132 | dependencies:
2133 | chownr: 1.1.4
2134 | fs-minipass: 1.2.7
2135 | minipass: 2.9.0
2136 | minizlib: 1.3.3
2137 | mkdirp: 0.5.5
2138 | safe-buffer: 5.2.1
2139 | yallist: 3.1.1
2140 | dev: false
2141 | engines:
2142 | node: '>=4.5'
2143 | resolution:
2144 | integrity: sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
2145 | /terraformer-wkt-parser/1.2.1:
2146 | dependencies:
2147 | '@types/geojson': 1.0.6
2148 | terraformer: 1.0.12
2149 | dev: false
2150 | engines:
2151 | node: '>=4.2.6'
2152 | resolution:
2153 | integrity: sha512-+CJyNLWb3lJ9RsZMTM66BY0MT3yIo4l4l22Jd9CrZuwzk54fsu4Sc7zejuS9fCITTuTQy3p06d4MZMVI7v5wSg==
2154 | /terraformer/1.0.12:
2155 | dev: false
2156 | engines:
2157 | node: '>=4.2.6'
2158 | optionalDependencies:
2159 | '@types/geojson': 7946.0.7
2160 | resolution:
2161 | integrity: sha512-MokUp0+MFal4CmJDVL6VAO1bKegeXcBM2RnPVfqcFIp2IIv8EbPAjG0j/vEy/vuKB8NVMMSF2vfpVS/QLe4DBg==
2162 | /timed-out/4.0.1:
2163 | dev: false
2164 | engines:
2165 | node: '>=0.10.0'
2166 | resolution:
2167 | integrity: sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
2168 | /toidentifier/1.0.0:
2169 | dev: false
2170 | engines:
2171 | node: '>=0.6'
2172 | resolution:
2173 | integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
2174 | /toposort-class/1.0.1:
2175 | dev: false
2176 | resolution:
2177 | integrity: sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=
2178 | /tough-cookie/2.5.0:
2179 | dependencies:
2180 | psl: 1.8.0
2181 | punycode: 2.1.1
2182 | dev: false
2183 | engines:
2184 | node: '>=0.8'
2185 | resolution:
2186 | integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
2187 | /tunnel-agent/0.6.0:
2188 | dependencies:
2189 | safe-buffer: 5.2.1
2190 | dev: false
2191 | resolution:
2192 | integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
2193 | /tweetnacl/0.14.5:
2194 | dev: false
2195 | resolution:
2196 | integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
2197 | /tweetnacl/1.0.3:
2198 | dev: false
2199 | resolution:
2200 | integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
2201 | /type-is/1.6.18:
2202 | dependencies:
2203 | media-typer: 0.3.0
2204 | mime-types: 2.1.27
2205 | dev: false
2206 | engines:
2207 | node: '>= 0.6'
2208 | resolution:
2209 | integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
2210 | /unique-random-array/1.0.1:
2211 | dependencies:
2212 | unique-random: 1.0.0
2213 | dev: false
2214 | engines:
2215 | node: '>=0.10.0'
2216 | resolution:
2217 | integrity: sha512-z9J/SV8CUIhIRROcHe9YUoAT6XthUJt0oUyLGgobiXJprDP9O9dsErNevvSaAv5BkhwFEVPn6nIEOKeNE6Ck1Q==
2218 | /unique-random/1.0.0:
2219 | dev: false
2220 | engines:
2221 | node: '>=0.10.0'
2222 | resolution:
2223 | integrity: sha1-zj4iTIJCzTOg53sNcYDXfmti0MQ=
2224 | /unpipe/1.0.0:
2225 | dev: false
2226 | engines:
2227 | node: '>= 0.8'
2228 | resolution:
2229 | integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
2230 | /unzip-response/2.0.1:
2231 | dev: false
2232 | engines:
2233 | node: '>=4'
2234 | resolution:
2235 | integrity: sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
2236 | /uri-js/4.4.0:
2237 | dependencies:
2238 | punycode: 2.1.1
2239 | dev: false
2240 | resolution:
2241 | integrity: sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
2242 | /url-parse-lax/1.0.0:
2243 | dependencies:
2244 | prepend-http: 1.0.4
2245 | dev: false
2246 | engines:
2247 | node: '>=0.10.0'
2248 | resolution:
2249 | integrity: sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
2250 | /util-deprecate/1.0.2:
2251 | dev: false
2252 | resolution:
2253 | integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
2254 | /util/0.12.3:
2255 | dependencies:
2256 | inherits: 2.0.4
2257 | is-arguments: 1.0.4
2258 | is-generator-function: 1.0.7
2259 | is-typed-array: 1.1.3
2260 | safe-buffer: 5.2.1
2261 | which-typed-array: 1.1.2
2262 | dev: false
2263 | resolution:
2264 | integrity: sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==
2265 | /utils-merge/1.0.1:
2266 | dev: false
2267 | engines:
2268 | node: '>= 0.4.0'
2269 | resolution:
2270 | integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
2271 | /uuid/2.0.3:
2272 | dev: false
2273 | resolution:
2274 | integrity: sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=
2275 | /uuid/3.4.0:
2276 | dev: false
2277 | hasBin: true
2278 | resolution:
2279 | integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
2280 | /validator/10.11.0:
2281 | dev: false
2282 | engines:
2283 | node: '>= 0.10'
2284 | resolution:
2285 | integrity: sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==
2286 | /vary/1.1.2:
2287 | dev: false
2288 | engines:
2289 | node: '>= 0.8'
2290 | resolution:
2291 | integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
2292 | /verror/1.10.0:
2293 | dependencies:
2294 | assert-plus: 1.0.0
2295 | core-util-is: 1.0.2
2296 | extsprintf: 1.4.0
2297 | dev: false
2298 | engines:
2299 | '0': node >=0.6.0
2300 | resolution:
2301 | integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
2302 | /weather-js/2.0.0:
2303 | dependencies:
2304 | request: 2.88.2
2305 | xml2js: 0.4.23
2306 | dev: false
2307 | resolution:
2308 | integrity: sha1-DZvNsFpPhNBrm585kAKKYB6kofw=
2309 | /when/3.7.8:
2310 | dev: false
2311 | resolution:
2312 | integrity: sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=
2313 | /which-typed-array/1.1.2:
2314 | dependencies:
2315 | available-typed-arrays: 1.0.2
2316 | es-abstract: 1.17.7
2317 | foreach: 2.0.5
2318 | function-bind: 1.1.1
2319 | has-symbols: 1.0.1
2320 | is-typed-array: 1.1.3
2321 | dev: false
2322 | engines:
2323 | node: '>= 0.4'
2324 | resolution:
2325 | integrity: sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==
2326 | /wide-align/1.1.3:
2327 | dependencies:
2328 | string-width: 2.1.1
2329 | dev: false
2330 | resolution:
2331 | integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
2332 | /wkx/0.4.8:
2333 | dependencies:
2334 | '@types/node': 14.14.7
2335 | dev: false
2336 | resolution:
2337 | integrity: sha512-ikPXMM9IR/gy/LwiOSqWlSL3X/J5uk9EO2hHNRXS41eTLXaUFEVw9fn/593jW/tE5tedNg8YjT5HkCa4FqQZyQ==
2338 | /wrappy/1.0.2:
2339 | dev: false
2340 | resolution:
2341 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
2342 | /write-file-atomic/1.3.4:
2343 | dependencies:
2344 | graceful-fs: 4.2.4
2345 | imurmurhash: 0.1.4
2346 | slide: 1.1.6
2347 | dev: false
2348 | resolution:
2349 | integrity: sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=
2350 | /ws/7.4.0:
2351 | dev: false
2352 | engines:
2353 | node: '>=8.3.0'
2354 | peerDependencies:
2355 | bufferutil: ^4.0.1
2356 | utf-8-validate: ^5.0.2
2357 | resolution:
2358 | integrity: sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==
2359 | /xdg-basedir/2.0.0:
2360 | dependencies:
2361 | os-homedir: 1.0.2
2362 | dev: false
2363 | engines:
2364 | node: '>=0.10.0'
2365 | resolution:
2366 | integrity: sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=
2367 | /xml2js/0.4.23:
2368 | dependencies:
2369 | sax: 1.2.4
2370 | xmlbuilder: 11.0.1
2371 | dev: false
2372 | engines:
2373 | node: '>=4.0.0'
2374 | resolution:
2375 | integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
2376 | /xmlbuilder/11.0.1:
2377 | dev: false
2378 | engines:
2379 | node: '>=4.0'
2380 | resolution:
2381 | integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
2382 | /yallist/3.1.1:
2383 | dev: false
2384 | resolution:
2385 | integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
2386 | /yo-mamma/1.3.0:
2387 | dev: false
2388 | resolution:
2389 | integrity: sha512-MSqfT/YvzccapmCETpRO51Z8hSPWPi9MtFhYvIn4eeea/WhV2l8IJYp2wfJDwAMA8h62Eg3Hkc30WnhW5OKLEA==
2390 | registry: 'https://registry.npmjs.org/'
2391 | shrinkwrapMinorVersion: 9
2392 | shrinkwrapVersion: 3
2393 | specifiers:
2394 | async: ^3.2.0
2395 | common-tags: ^1.8.0
2396 | cpu-stat: ^2.0.1
2397 | cpu-stats: ^1.0.0
2398 | dateformat: ^3.0.3
2399 | discord-economy: ^1.2.2
2400 | discord-leveling: ^1.1.0
2401 | discord.js: ^12.4.0
2402 | discord.js-poll-embed: ^1.0.2
2403 | erela.js: ^1.1.7
2404 | fs: 0.0.1-security
2405 | function.js: ^1.3.0
2406 | give-me-a-joke: ^0.3.2
2407 | google-translate-api: ^2.3.0
2408 | install: ^0.13.0
2409 | moment: ^2.25.1
2410 | node-fetch: ^2.6.0
2411 | npm: ^6.14.4
2412 | os: ^0.1.1
2413 | overwatch-api: ^0.8.2
2414 | random-puppy: ^1.1.0
2415 | scraper-instagram: ^1.0.14
2416 | sequelize: ^5.21.7
2417 | sqlite3: ^4.2.0
2418 | superagent: ^5.2.2
2419 | weather-js: ^2.0.0
2420 | yo-mamma: ^1.3.0
2421 |
--------------------------------------------------------------------------------
/start.bat:
--------------------------------------------------------------------------------
1 | nodemon index.js
2 | PAUSE
--------------------------------------------------------------------------------
/util/eventHandler.js:
--------------------------------------------------------------------------------
1 | const reqEvent = (event) => require(`../events/${event}`)
2 |
3 | module.exports = bot => {
4 | bot.on("ready", function() {reqEvent("ready") (bot)});
5 | bot.on("reconnecting", () => reqEvent("reconnecting") (bot))
6 | bot.on("disconnect", () => reqEvent("disconnect") (bot))
7 | bot.on("warn", reqEvent("warn"))
8 | bot.on("error", reqEvent("error"))
9 | }
--------------------------------------------------------------------------------