diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8365624..0000000 --- a/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test diff --git a/.glitch-assets b/.glitch-assets new file mode 100644 index 0000000..954626f --- /dev/null +++ b/.glitch-assets @@ -0,0 +1,6 @@ +{"name":"drag-in-files.svg","date":"2016-10-22T16:17:49.954Z","url":"https://cdn.hyperdev.com/drag-in-files.svg","type":"image/svg","size":7646,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/drag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(102, 153, 205)","uuid":"adSBq97hhhpFNUna"} +{"name":"click-me.svg","date":"2016-10-23T16:17:49.954Z","url":"https://cdn.hyperdev.com/click-me.svg","type":"image/svg","size":7116,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/click-me.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(243, 185, 186)","uuid":"adSBq97hhhpFNUnb"} +{"name":"paste-me.svg","date":"2016-10-24T16:17:49.954Z","url":"https://cdn.hyperdev.com/paste-me.svg","type":"image/svg","size":7242,"imageWidth":276,"imageHeight":276,"thumbnail":"https://cdn.hyperdev.com/paste-me.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(42, 179, 185)","uuid":"adSBq97hhhpFNUnc"} +{"uuid":"adSBq97hhhpFNUna","deleted":true} +{"uuid":"adSBq97hhhpFNUnb","deleted":true} +{"uuid":"adSBq97hhhpFNUnc","deleted":true} diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 8ced7b1..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.1.0 - -- Initial Release diff --git a/README.md b/README.md deleted file mode 100644 index 6a3fb72..0000000 --- a/README.md +++ /dev/null @@ -1,69 +0,0 @@ -glitch -==== - -Just another glitch command line tool - -## Synopsis - -``` -$ glitch sed -f a -t b -e 15 -o glitched.jpg /path/to/yourfile.jpg -$ glitch repeat -e 15 -b 200 -n 10 -o glitched.jpg /path/to/yourfile.jpg -``` - -## Installation - -``` -$ go get github.com/makimoto/glitch -``` - -## Usage - -``` -NAME: - glitch - Just another glitch command line tool - -USAGE: - glitch [global options] command [command options] [arguments...] - -VERSION: - 0.1.0 - -COMMANDS: - sed sed glitch a.k.a. replacement glitch - repeat repeat glitch - help, h Shows a list of commands or help for one command - -GLOBAL OPTIONS: - --version, -v print the version - --help, -h show help -``` - -## Samples - -### sed glitch - -``` -glitch sed -f a -t b -o sed.jpg original.jpg -``` - -![](./samples/sed.jpg) - -### repeat glitch - -``` -glitch repeat -n 5 -b 400 original.jpg -``` - -![](./samples/repeat.jpg) - -### the original image - -![](./samples/original.jpg) - -## Author - -[Shimpei Makimoto](http://shimpei.makimoto.org) - -## License - -[MIT](http://makimoto.mit-license.org/) diff --git a/ayarlar.json b/ayarlar.json new file mode 100644 index 0000000..f9ac9e6 --- /dev/null +++ b/ayarlar.json @@ -0,0 +1,4 @@ +{ + "prefix": "d!", + "sahip": ["466212593867030528","730096504647188531"] +} \ No newline at end of file diff --git a/bot.js b/bot.js new file mode 100644 index 0000000..f660784 --- /dev/null +++ b/bot.js @@ -0,0 +1,192 @@ +const Discord = require("discord.js"); +const client = new Discord.Client(); +const ayarlar = require("./ayarlar.json"); +const chalk = require("chalk"); +const fs = require("fs"); +const moment = require("moment"); +const Jimp = require("jimp"); +const db = require("quick.db"); +var prefix = ayarlar.prefix; + +//////////////prefix////////////// + var prefix = ayarlar.prefix; + + client.on('message', message => { + if (message.content === `<@${client.user.id}>`) { + message.reply(`Prefix'im: **d!**!`) + } + }); + +//////////////prefix////////////// + +client.on("ready", () => { + console.log(`Bot suan bu isimle aktif: ${client.user.tag}!`); +}); + +const log = message => { + console.log(`[${moment().format("YYYY-MM-DD HH:mm:ss")}] ${message}`); +}; + +///////////// KOMUTLAR BAŞ + +//---------------------Sa-As---------------------------------\\ + +client.on('message', async (msg, member, guild) => { + let i = await db.fetch(`saas_${msg.guild.id}`) + if(i === 'açık') { + if (msg.content.toLowerCase() === 'sa') { + msg.reply('Aleyküm Selam Hoşgeldin!'); + } + } + }); +client.on('message', async (msg, member, guild) => { + let i = await db.fetch(`saas_${msg.guild.id}`) + if(i === 'açık') { + if (msg.content.toLowerCase() === 'selam') { + msg.reply('Aleyküm Selam Hoşgeldin!'); + } + } + }); + +//---------------------Sa-As---------------------------------\\ + +//---------------------Otorol---------------------------------\\ +client.on('guildMemberAdd', async (member, guild, message) => { + let hgbbkanal = await db.fetch(`hgbbkanal_${member.guild.id}`) + + if (!hgbbkanal) return + + var embed = new Discord.MessageEmbed() + .setDescription(`<@!${member.user.id}> sunucumuza katıldı :hugging:`) + .setColor('RANDOM') + member.guild.channels.get(hgbbkanal).send(embed) +}) + +client.on('guildMemberRemove', async (member, guild, message) => { + let hgbbkanal = await db.fetch(`hgbbkanal_${member.guild.id}`) + + if (!hgbbkanal) return + + var embed = new Discord.MessageEmbed() + .setDescription(`<@!${member.user.id}> sunucumuzdan ayrıldı :frowning:`) + .setColor('RANDOM') + member.guild.channels.get(hgbbkanal).send(embed) +}) +//---------------------Otorol-Bitiş--------------------------------\\ + + //----------------------Sahibim-------------------------------------------------// + //kod PoyrazFTW tarafından yazılmıştır + client.on("message", async message => { + const ms = require('parse-ms') + let dogrulama = await db.fetch(`sahiponay_${message.author.id}_${message.guild.id}`); + let gun = 1800000; + if (dogrulama !== null && gun - (Date.now() - dogrulama) > 0) { + + } else { + if(message.author.id === ayarlar.sahip){ + db.set(`sahiponay_${message.author.id}_${message.guild.id}`, Date.now()) + message.channel.send("Ooo Sahibimde Burdaymış <@730096504647188531> Hoşgeldin Usta 😋").then(msg => msg.delete (15000)) + } + } + + }); + //--------------------------Sahibim Bitiş----------------------------------------// + +////////////// KOMUTLAR SON +////////////// ALTI ELLEME +require("./util/eventLoader")(client);//bot sende kafana göre istediğini yap - Ömer Faruk AYVAZ + +client.login(process.env.token); + +client.commands = new Discord.Collection(); +client.aliases = new Discord.Collection(); +fs.readdir("./komutlar/", (err, files) => { + if (err) console.error(err); + log(`${files.length} komut yüklenecek.`); + files.forEach(f => { + let props = require(`./komutlar/${f}`); + log(`Yüklenen komut: ${props.help.name}`); + client.commands.set(props.help.name, props); + props.conf.aliases.forEach(alias => { + client.aliases.set(alias, props.help.name); + }); + }); +}); + +client.reload = command => { + return new Promise((resolve, reject) => { + try { + delete require.cache[require.resolve(`./komutlar/${command}`)]; + let cmd = require(`./komutlar/${command}`); + client.commands.delete(command); + client.aliases.forEach((cmd, alias) => { + if (cmd === command) client.aliases.delete(alias); + }); + client.commands.set(command, cmd); + cmd.conf.aliases.forEach(alias => { + client.aliases.set(alias, cmd.help.name); + }); + resolve(); + } catch (e) { + reject(e); + } + }); +}; + +client.load = command => { + return new Promise((resolve, reject) => { + try { + let cmd = require(`./komutlar/${command}`); + client.commands.set(command, cmd); + cmd.conf.aliases.forEach(alias => { + client.aliases.set(alias, cmd.help.name); + }); + resolve(); + } catch (e) { + reject(e); + } + }); +}; + +client.unload = command => { + return new Promise((resolve, reject) => { + try { + delete require.cache[require.resolve(`./komutlar/${command}`)]; + let cmd = require(`./komutlar/${command}`); + client.commands.delete(command); + client.aliases.forEach((cmd, alias) => { + if (cmd === command) client.aliases.delete(alias); + }); + resolve(); + } catch (e) { + reject(e); + } + }); +}; + +client.elevation = message => { + if (!message.guild) { + return; + } + let permlvl = 0; + if (message.member.hasPermission("BAN_MEMBERS")) permlvl = 2; + if (message.member.hasPermission("ADMINISTRATOR")) permlvl = 3; + if (ayarlar.sahip.includes(message.author.id)) permlvl = 4; + return permlvl; +}; + +var regToken = /[\w\d]{24}\.[\w\d]{6}\.[\w\d-_]{27}/g; +// client.on('debug', e => { +// console.log(chalk.bgBlue.green(e.replace(regToken, 'that was redacted'))); +// }); + +client.on("warn", e => { + console.log(chalk.bgYellow(e.replace(regToken, "that was redacted"))); +}); + +client.on("error", e => { + console.log(chalk.bgRed(e.replace(regToken, "that was redacted"))); +}); + +client.login(process.env.token); //.env Token Olduğu Yer Ellleme + diff --git a/commands.go b/commands.go deleted file mode 100644 index ead571d..0000000 --- a/commands.go +++ /dev/null @@ -1,171 +0,0 @@ -package main - -import ( - "bytes" - "fmt" - "github.com/codegangsta/cli" - "io/ioutil" - "log" - "math/rand" - "os" - "strconv" - "time" -) - -var Commands = []cli.Command{ - commandSed, - commandRepeat, -} - -var commandSed = cli.Command{ - Name: "sed", - Usage: "sed glitch a.k.a. replacement glitch", - Description: ` -`, - Action: doSed, - Flags: []cli.Flag{ - cli.StringFlag{Name: "o, output", Value: "output.jpg", Usage: "Output file"}, - cli.StringFlag{Name: "f, from", Value: "", Usage: "character or string to be replaced from (default: random)"}, - cli.StringFlag{Name: "t, to", Value: "", Usage: "character or string to be replaced with (default: random)"}, - cli.IntFlag{Name: "e, header-size-rate", Value: 5, Usage: "Percentage of header bytes (10: automatic)"}, - }, -} - -var commandRepeat = cli.Command{ - Name: "repeat", - Usage: "repeat glitch", - Description: ` -`, - Action: doRepeat, - Flags: []cli.Flag{ - cli.StringFlag{Name: "o, output", Value: "output.jpg", Usage: "Output file"}, - cli.IntFlag{Name: "n, number", Value: 3, Usage: "Number of byte repeats"}, - cli.IntFlag{Name: "e, header-size-rate", Value: 5, Usage: "Percentage of header bytes"}, - cli.IntFlag{Name: "b, block-size", Value: 200, Usage: "Size of block bytes"}, - }, -} - -func debug(v ...interface{}) { - if os.Getenv("DEBUG") != "" { - log.Println(v...) - } -} - -func assert(err error) { - if err != nil { - log.Fatal(err) - } -} - -func doSed(c *cli.Context) { - fi, err := os.Open(c.Args()[0]) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - defer func() { - if err := fi.Close(); err != nil { - panic(err) - } - }() - - inputBytes, err := ioutil.ReadAll(fi) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - headerSizeRate := c.Int("e") - fromStr := c.String("f") - toStr := c.String("t") - - rand.Seed(time.Now().Unix()) - - if len(fromStr) == 0 { - fromStr = string(rand.Int31n(255)) - } - - if len(toStr) == 0 { - toStr = string(rand.Int31n(255)) - } - - if headerSizeRate < 0 || 100 < headerSizeRate { - fmt.Fprintln(os.Stderr, "Fatal: Invalid arguments: -e must be between 0 and 100, but "+strconv.Itoa(headerSizeRate)) - os.Exit(1) - } - - headerSize := len(inputBytes) / 100 * headerSizeRate - - outputBytes := []byte{} - outputBytes = append(outputBytes, inputBytes[0:headerSize]...) - outputBytes = append(outputBytes, bytes.Replace(inputBytes[headerSize:], []byte(fromStr), []byte(toStr), -1)...) - writeToFile(c.String("o"), outputBytes) -} - -func doRepeat(c *cli.Context) { - fi, err := os.Open(c.Args()[0]) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - defer func() { - if err := fi.Close(); err != nil { - panic(err) - } - }() - - inputBytes, err := ioutil.ReadAll(fi) - if err != nil { - log.Fatal(err) - os.Exit(1) - } - - number := c.Int("n") - headerSizeRate := c.Int("e") - blockSize := c.Int("b") - - if headerSizeRate < 0 || 100 < headerSizeRate { - fmt.Fprintln(os.Stderr, "Fatal: Invalid arguments: -e must be between 0 and 100, but "+strconv.Itoa(headerSizeRate)) - os.Exit(1) - } - - if blockSize <= 0 { - fmt.Fprintln(os.Stderr, "Fatal: Invalid arguments: -b must larger than 0, but "+strconv.Itoa(blockSize)) - os.Exit(1) - } - - headerSize := len(inputBytes) / 100 * headerSizeRate - if c.Int("b") > 0 { - blockSize = c.Int("b") - } - var targetBytes []byte - if len(inputBytes) < headerSize+blockSize { - targetBytes = inputBytes[headerSize:] - } else { - targetBytes = inputBytes[headerSize : headerSize+blockSize] - } - - outputBytes := []byte{} - outputBytes = append(outputBytes, inputBytes[0:headerSize]...) - outputBytes = append(outputBytes, bytes.Repeat(targetBytes, number)...) - outputBytes = append(outputBytes, inputBytes[headerSize+blockSize:]...) - writeToFile(c.String("o"), outputBytes) -} - -func writeToFile(filename string, outputBytes []byte) { - fo, err := os.Create(filename) - - if err != nil { - panic(err) - } - - defer func() { - if err := fo.Close(); err != nil { - panic(err) - } - }() - - fo.Write(outputBytes) -} diff --git a/datebase.json b/datebase.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/datebase.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/events/message.js b/events/message.js new file mode 100644 index 0000000..dfff945 --- /dev/null +++ b/events/message.js @@ -0,0 +1,85 @@ +const Discord = require("discord.js"); +const ayarlar = require('../ayarlar.json'); +let talkedRecently = new Set(); + +module.exports = message => { + if (talkedRecently.has(message.author.id)) { + return; + } + talkedRecently.add(message.author.id); + setTimeout(() => { + talkedRecently.delete(message.author.id); + }, 2500); + let client = message.client; + if (message.author.bot) return; + if (!message.content.startsWith(ayarlar.prefix)) return; + let command = message.content.split(' ')[0].slice(ayarlar.prefix.length); + let params = message.content.split(' ').slice(1); + let perms = client.elevation(message); + let cmd; + if (client.commands.has(command)) { + cmd = client.commands.get(command); + } else if (client.aliases.has(command)) { + cmd = client.commands.get(client.aliases.get(command)); + } + if (cmd) { + if (cmd.conf.enabled === false) {//Bakım Açmak İçin true Kapatmak İçin false + if (!ayarlar.sahip.includes(message.author.id) && !ayarlar.sahip.includes(message.author.id)) { + const embed = new Discord.MessageEmbed() + .setDescription(`:x: **${cmd.help.name}** isimli komut şuanda geçici olarak kullanıma kapalıdır!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + + if (cmd.conf.permLevel === 1) { + if (!message.member.hasPermission("MANAGE_MESSAGES")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Mesajları Yönet** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 2) { + if (!message.member.hasPermission("KICK_MEMBERS")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Üyeleri At** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 3) { + if (!message.member.hasPermission("BAN_MEMBERS")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Üyeleri Yasakla** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 4) { + if (!message.member.hasPermission("ADMINISTRATOR")) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu kullanabilmek için **Yönetici** iznine sahip olmalısın!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (cmd.conf.permLevel === 5) { + if (!ayarlar.sahip.includes(message.author.id)) { + const embed = new Discord.RichEmbed() + .setDescription(`Bu komutu sadece **sahibim** kullanabilir!`) + .setColor("RED") + message.channel.send({embed}) + return + } + } + if (perms < cmd.conf.permLevel) return; + cmd.run(client, message, params, perms); + } + +}; diff --git a/events/prefix.js b/events/prefix.js new file mode 100644 index 0000000..d76958a --- /dev/null +++ b/events/prefix.js @@ -0,0 +1,48 @@ +const Discord = require("discord.js"); +const ayarlar = require('../ayarlar.json'); +const db = require('nrc.db') + + +module.exports.run = async (client, message, args) => { + + let sıfırla = args[0] + let p = db.fetch(`prefix_${message.guild.id}`) + + if (sıfırla == "sıfırla") { + if (!p) return message.channel.send('Prefix ayarlamamışsınız!') + db.delete(`prefix_${message.guild.id}`) + message.channel.send('Tebrikler Prefix Başarıyla Eski Haline Döndü Artık Prefix **/**`') + return; + } + + let prefix = args.slice(0).join(" "); + if (!prefix) { + const embed = new Discord.MessageEmbed() + .setColor("RED") + .setDescription(`Lütfen bir prefix belirtiniz!`) + .setFooter(client.user.username, client.user.avatarURL); + + message.channel.send(embed); + return; + } + const embed = new Discord.MessageEmbed() + .setColor("RANDOM") + .setDescription(`Prefix; \`${prefix}\` olarak ayarlandı!`) + .setFooter(client.user.username, client.user.avatarURL); + + message.channel.send(embed); + db.set(`prefix_${message.guild.id}`, prefix) +}; + +module.exports.conf = { + enabled: true, + guildOnly: true, + aliases: ['prefix'], + permLevel: 3 +}; + +module.exports.help = { + name: "prefix", + description: "prefix", + usage: "prefix" +}; \ No newline at end of file diff --git a/events/ready.js b/events/ready.js new file mode 100644 index 0000000..f2b4301 --- /dev/null +++ b/events/ready.js @@ -0,0 +1,27 @@ +//READY CODE +const Moment = require('moment') +const Discord = require('discord.js') +let prefix = 'bot prefix' +module.exports = client => { + + const aktiviteListesi = [ + `BAKIMDA!`, + + ] + + client.user.setStatus('online') + //dnd + //idle + //online + //offline + setInterval(() => { + const Aktivite = Math.floor(Math.random() * (aktiviteListesi.length - 1)) + client.user.setActivity(aktiviteListesi[Aktivite], { type: 'PLAYING'}); + }, 5000) +} + + +// WATCHING : izliyor +// LISTENING : dinliyor +// PLAYING : oynuyor +// available : YAYINDA \ No newline at end of file diff --git a/json.sqlite b/json.sqlite new file mode 100644 index 0000000..81453cc Binary files /dev/null and b/json.sqlite differ diff --git a/komutlar/avatar.js b/komutlar/avatar.js new file mode 100644 index 0000000..882d739 --- /dev/null +++ b/komutlar/avatar.js @@ -0,0 +1,56 @@ +const Discord = require('discord.js'); + +exports.run = async (client, message, args)=> { +//let us = message.guild.members.cache.find(u => args.slice(0).join(' ').includes(u.username)) +let muser = message.mentions.users.first(); +let userid; +if(isNaN(args[0])){ + if(!muser){ + userid = message.author.id; + }else{ + userid = muser.id; + } +}else{ + userid = args[0]; +} +try{ +let user = await client.users.fetch(userid); +let avatar = user.displayAvatarURL({dynamic: true, size: 1024}) +if(avatar.endsWith(".gif?size=1024")) { + +let embed = new Discord.MessageEmbed() +.setAuthor(user.tag + '', user.displayAvatarURL()) +.setDescription(`**[[PNG]](${user.displayAvatarURL({ format: 'png', size: 1024 })})** | **[[JPEG]](${user.displayAvatarURL({ format: 'jpeg', size: 1024 })})** | **[[GIF]](${user.displayAvatarURL({ format: 'gif', size: 1024 })})** | **[[WEBP]](${user.displayAvatarURL({ format: 'webp', size: 1024 })})**`) +.setImage(user.displayAvatarURL({dynamic: true, size: 1024})) +.setColor("RANDOM") +message.channel.send(embed) + +} else { + + let embed = new Discord.MessageEmbed() +.setAuthor(user.tag + '', user.displayAvatarURL()) +.setDescription(`**[[PNG]](${user.displayAvatarURL({ format: 'png', size: 1024 })})** | **[[JPEG]](${user.displayAvatarURL({ format: 'jpeg', size: 1024 })})** | **~~[GIF]~~** | **[[WEBP]](${user.displayAvatarURL({ format: 'webp', size: 1024 })})**`) +.setImage(user.displayAvatarURL({dynamic: true, size: 1024})) +.setColor("RANDOM") +message.channel.send(embed) + +} +}catch{ + message.channel.send(new Discord.MessageEmbed().setColor("RANDOM").setDescription("Kullanıcıyı Bulamadım!")); + return; +} + +} + + exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['avatarım'], + permLevel: 0 +}; + +exports.help = { + name: 'avatar', + description: '', + usage: 'avatar [@kullanıcı]' +}; diff --git a/komutlar/ban.js b/komutlar/ban.js new file mode 100644 index 0000000..b250f8d --- /dev/null +++ b/komutlar/ban.js @@ -0,0 +1,41 @@ +const Discord = require('discord.js'); +const ayarlar = require('../ayarlar.json') + +exports.run = async (client, message, args) => { +let guild = message.guild.id; +var prefix = ayarlar.prefix; + + if (!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send(`Bu komutu kullanabilmek için **Üyeleri Yasakla** iznine sahip olmalısın!`); + + let user = message.mentions.users.first() || message.client.users.cache.get(args[0]) || message.client.users.cache.find(m => m.username === args.slice(0).join(" ")) || message.author; + let reason = args.slice(1).join(' '); + + if (!user) return message.channel.send(`Sunucudan yasaklamak istediğiniz kullanıcıyı etiketlemelisiniz; \`${prefix}ban \` `); + if (user.id === message.author.id) return message.channel.send('Kendini yasaklayamazsın.'); + if (user.position > message.member.roles.highest.position) return message.channel.send(`Bu kullanıcının senin rollerinden/rolünden daha yüksek rolleri/rolü var.`); + if (!reason) reason = 'Belirtilmemiş.' + if (!user) return message.channel.send(`Etiketlediğin kullanıcıyı sunucuda bulamadım.`) + let member = message.guild.member(user) + if (!member) return message.channel.send(`Etiketlediğin kullanıcıyı sunucuda bulamadım.`) + + if (!message.guild.member(user).bannable) return message.channel.send(`Bu kişiyi sunucudan yasaklayamıyorum çünkü \`benden daha yüksek bir role sahip\` ya da \`bana gerekli yetkileri vermedin\`.`); + + if (!message.guild.member(user).bannable) return message.channel.send('Sunucudaki yetkilileri yasaklayamam!'); + + message.guild.members.ban(user.id) + message.channel.send(`<@${user.id}> **Adlı kullanıcı yasaklandı!** **Sebep: \`${reason}\`**`) + +}; + +exports.conf = { + aliases: ['yasakla'], + permLevel: 2, + kategori: 'Moderasyon' +}; + +exports.help = { + name: 'ban', + description: 'Belirttiğiniz kişiyi sunucudan yasaklar.', + usage: 'ban <@kullanıcı> ', + +}; \ No newline at end of file diff --git a/komutlar/banlist.js b/komutlar/banlist.js new file mode 100644 index 0000000..0c5f0f6 --- /dev/null +++ b/komutlar/banlist.js @@ -0,0 +1,48 @@ +const Discord = require("discord.js"); +const talkedRecently = new Set(); + +exports.run = async(client, message, args) => { + + +const bans = new Map(); + message.guild.fetchBans().then(g => { + bans[g.id] = g; + let banlist = (`${bans[g.id].map(ge => `\n (${ge.user.tag}) (${ge.user.id})`).join('\n')}`) + try { + let noembed = new Discord.MessageEmbed() + .setColor('#0070FF') + .setDescription(`Bu Sunucuda Yasaklı Kullanıcı Bulunmuyor.`) + .setAuthor(message.guild.name, message.guild.iconURL() ? message.guild.iconURL() : "https://images-ext-2.discord.net/external/hHow2gpD0uyL8WnA8ynAHuPbzm_lE1lNAaxkLqDT0Fs/https/images-ext-1.discord.net/external/rBk_abKMsqAKoATjXbtyqKJt2bTXI_shMEemVpbNtFw/http/www.kalahandi.info/wp-content/uploads/2016/05/sorry-image-not-available.png") + .setFooter('Bu komutu kullanan kullanıcı ' + message.author.tag, message.author.avatarURL()) + if(banlist.length === 0) return message.channel.send(noembed) + const embed = new Discord.MessageEmbed() + .setDescription(banlist) + .setAuthor(message.guild.name, message.guild.iconURL() ? message.guild.iconURL() : "https://images-ext-2.discord.net/external/hHow2gpD0uyL8WnA8ynAHuPbzm_lE1lNAaxkLqDT0Fs/https/images-ext-1.discord.net/external/rBk_abKMsqAKoATjXbtyqKJt2bTXI_shMEemVpbNtFw/http/www.kalahandi.info/wp-content/uploads/2016/05/sorry-image-not-available.png") + .setFooter('Bu komutu kullanan kullanıcı ' + message.author.tag, message.author.avatarURL()) + .setColor('#0070FF') + message.channel.send(embed) + } catch (err) { + const embed = new Discord.MessageEmbed() + .addField(`Sunucuda Bulunan Yasaklılar`, '<:no:663378512417128449> Üzgünüm ama sunucunuzda fazla sayıda yasaklı kullanıcı bulunuyor Bu Yüzden gösteremiyorum. Discord buna izin vermiyor.') + .setColor('RED') + .setFooter('Bu komutu kullanan kullanıcı ' + message.author.tag, message.author.avatarURL()) + .setTimestamp() + message.channel.send(embed) + } + + }); + } + +exports.conf = { + enabled: true, + guildOnly: true, + aliases: ['yasak-listesi',"banlist"], + permLevel: 1 +}; + +exports.help = { + name: 'banlist', + description: 'Sunucudaki Yasaklı Kullanıcıları Gösterir.', + usage: 'banlist', + +}; diff --git a/komutlar/davet.js b/komutlar/davet.js new file mode 100644 index 0000000..d780ea1 --- /dev/null +++ b/komutlar/davet.js @@ -0,0 +1,25 @@ +const Discord = require('discord.js'); +const client = new Discord.Client(); +const ayarlar = require('../ayarlar.json'); + +exports.run = (client, message) => { + const ömüş = new Discord.MessageEmbed() + .setTitle("Dromic Bot | Davet Linkleri ") + .setColor("RANDOM") + .addField("**Botun Sahibi**", "<@!849729498889977917>") + .addField("** Destek Sunucusu**", " [Sunucumuza Katıl](https://discord.gg/MxNEuRXmru)", ) + .addField("** Davet Linki**", " [Botu Davet Et](https://discord.com/oauth2/authorize?client_id=761579293104406558&scope=bot&permissions=805314622)", ) + .setFooter(`${message.author.tag} Tarafından İstendi.`, message.author.avatarURL()) + message.channel.send(ömüş); +}; + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [], + permLevel: 0, +}; + +exports.help = { + name: 'davet', +}; \ No newline at end of file diff --git a/komutlar/istatistik.js b/komutlar/istatistik.js new file mode 100644 index 0000000..95cc053 --- /dev/null +++ b/komutlar/istatistik.js @@ -0,0 +1,49 @@ +const Discord = require('discord.js'); +const client = new Discord.Client(); +const moment = require("moment"); +require("moment-duration-format"); +const ayarlar = require('../ayarlar.json'); + + +exports.run = (client, message) => { + const DBL = require('dblapi.js') + const dbl = new DBL('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc2MTU3OTI5MzEwNDQwNjU1OCIsImJvdCI6dHJ1ZSwiaWF0IjoxNjE0MzY2MTk2fQ.mI085-_oKn3VChPMZMmqzngeRzAishsmP8hZIdz44-g', client) + + dbl.hasVoted(message.author.id).then(voted => { + if(voted) { + +//KODLAR + + const istatistikozel = new Discord.MessageEmbed() + .setColor(0x36393F) + .setAuthor(`${client.user.username} Bot`, client.user.avatarURL()) +.setDescription(`**Dromic Bot** | İstatistik Komutu`) + .addField(`Bot Sahibi`, `<@466212593867030528>`, ) + .addField("Sunucu Sayısı ", `${client.guilds.cache.size.toLocaleString()}`, true) + .addField("Toplam Kullanıcı Sayısı ", `${client.guilds.cache.reduce((a, b) => a + b.memberCount, 0).toLocaleString()}`, true) + .addField("Ping" , `${client.ws.ping}`, true) + .addField("Discord.js Sürümü ", `${Discord.version}`, true) + .addField(`Destek Sunucum`, `[Tıkla](https://discord.gg/7aZz9rAGYj)`, true) + .addField(`Botu Davet Et`, `[Tıkla](https://discord.com/oauth2/authorize?client_id=761579293104406558&scope=bot&permissions=805314622)`, true) + .setFooter(`${message.author.tag} Tarafından İstendi.`, message.author.avatarURL) + message.channel.send(istatistikozel) +} else { + message.channel.send(`Bu komutu kullanabilmek için botumuza oy vermelisin!https://lk.tc/rWLkW`) + } +}) + }; + + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['istatistik', 'i', 'istatistikler', 'botbilgi', 'bilgi', 'hakkında', 'bot hakkında', 'bothakkında'], + kategori: "Bot", + permLevel: 0 +}; + +exports.help = { + name: 'bilgi', + description: 'Bot ile ilgili bilgi verir.', + usage: 'bilgi' +}; \ No newline at end of file diff --git a/komutlar/kick.js b/komutlar/kick.js new file mode 100644 index 0000000..af9c285 --- /dev/null +++ b/komutlar/kick.js @@ -0,0 +1,61 @@ +const Discord = require("discord.js"); +const db = require("quick.db"); +module.exports.run = async (bot, message, args) => { + let prefix = (await db.fetch(`prefix_${message.guild.id}`)) || "?"; + if (!message.member.hasPermission("KICK_MEMBERS")) { + const embed = new Discord.MessageEmbed() + .setDescription("```Ne yazık ki bu komutu kullanmaya yetkin yok.```") + .setColor("BLACK"); + + message.channel.send(embed); + return; + } + + let u = message.mentions.users.first(); + if (!u) { + return message.channel.send( + new Discord.MessageEmbed() + .setDescription("Lütfen atılacak kişiyi etiketleyiniz!") + .setColor("BLACK") + .setFooter(bot.user.username, bot.user.avatarURL()) + ); + } + + const embed = new Discord.MessageEmbed() + .setColor("BLACK") + .setDescription(`${u} Adlı şahsın sunucudan atılmasını onaylıyor musunuz?`) + .setFooter(bot.user.username, bot.user.avatarURL()); + message.channel.send(embed).then(async function(sentEmbed) { + const emojiArray = ["✅"]; + const filter = (reaction, user) => + emojiArray.includes(reaction.emoji.name) && user.id === message.author.id; + await sentEmbed.react(emojiArray[0]).catch(function() {}); + var reactions = sentEmbed.createReactionCollector(filter, { + time: 30000 + }); + reactions.on("end", () => sentEmbed.edit("İşlem iptal oldu!")); + reactions.on("collect", async function(reaction) { + if (reaction.emoji.name === "✅") { + message.channel.send( + `İşlem onaylandı! ${u} adlı şahıs sunucudan atıldı!` + ); + + message.guild.member(u).kick(); + } + }); + }); +}; + +module.exports.conf = { + aliases: [], + permLevel: 2, + enabled: true, + guildOnly: true, + kategori: "moderasyon" +}; + +module.exports.help = { + name: "kick", + description: "kick", + usage: "kick" +}; diff --git a/komutlar/otorol.js b/komutlar/otorol.js new file mode 100644 index 0000000..964c7ba --- /dev/null +++ b/komutlar/otorol.js @@ -0,0 +1,36 @@ +const Discord = require('discord.js'); +const db = require('quick.db') + +exports.run = async (client, message, args) => { + + if (!message.member.hasPermission("ADMINISTRATOR")) return message.reply(`:warning: Bunu yapabilmek için gerekli yetkiye sahip değilsiniz!`) + + let hgbbkanal = db.fetch(`hgbbkanal_${message.guild.id}`) + + if (!hgbbkanal) { + let kanal = message.mentions.channels.first(); + if (!kanal) return message.reply(`:question: Mesajların yollanacağı kanalı belirtmediniz`) + + db.set(`hgbbkanal_${message.guild.id}`, kanal.id) + message.channel.send(`:white_check_mark: HGBB kanalı başarılı bir şekilde ${kanal} olarak ayarlandı.`) + + } else { + if (hgbbkanal) { + + return message.channel.send(`:warning: Bu sunucuda daha önceden ayarlanmış kanal mevcut. Sıfırlamak için: hgbbkanal-sıfırla`) + + } + } +} +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['hgbbkanal-ayarla'], + permLevel: 0 +} + +exports.help = { + name: 'hgbbkanalayarla', + description: 'HGBB kanalını ayarlarsınız.', + usage: 'hgbbkanalayarla #kanal' +} \ No newline at end of file diff --git a/komutlar/otorolkapat.js b/komutlar/otorolkapat.js new file mode 100644 index 0000000..72aae27 --- /dev/null +++ b/komutlar/otorolkapat.js @@ -0,0 +1,32 @@ +const Discord = require('discord.js'); +const db = require('quick.db') + +exports.run = async (client, message, args) => { + + if (!message.member.hasPermission("ADMINISTRATOR")) return message.reply(`:warning: Bunu yapabilmek için gerekli yetkiye sahip değilsiniz!`) + + let hgbbkanal = db.fetch(`hgbbkanal_${message.guild.id}`) + + if (hgbbkanal) { + db.delete(`hgbbkanal_${message.guild.id}`) + message.channel.send(`:white_check_mark: HGBB kanalı başarılı bir şekilde sıfırlandı.`) + } else { + if (!hgbbkanal) { + + return message.channel.send(`:warning: Bu sunucuda daha önceden ayarlanmış kanal mevcut değil. Ayarlamak için: hgbbkanal-ayarla`) + + } + } +} +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['hgbbkanal-sıfırla'], + permLevel: 0 +} + +exports.help = { + name: 'hgbbkanalsıfırla', + description: 'HGBB kanalını sıfırlarsınız.', + usage: 'hgbbkanalsıfırla #kanal' +} \ No newline at end of file diff --git a/komutlar/oylama.js b/komutlar/oylama.js new file mode 100644 index 0000000..d885453 --- /dev/null +++ b/komutlar/oylama.js @@ -0,0 +1,49 @@ +const Discord = require('discord.js'); + + exports.run = (client, message, args) => { + message.delete(); + + let question = args.join(' '); + + let user = message.author.username + + if (!question) return message.channel.send( + + new Discord.MessageEmbed() + + .addField(`:x: **Yazı Yazman Gerek** :x:`)).then(m => m.delete(5000)); + + console.log("oylama komutu " + message.author.username + '#' + message.author.discriminator + " tarafından kullanıldı.") + message.channel.send( + + new Discord.MessageEmbed() + + .setColor("BLACK") + .setThumbnail(client.user.avatarURL()) + .setTimestamp() + .setFooter('Oylama Sistemi', client.user.avatarURL()) + + .addField(`**Oylama**`, `**${question}**`)).then(function(message) { + + message.react('✅'); + + message.react('❌'); + + }); + + }; + + exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['oylama'], + + permLevel: 1 +}; + +exports.help = { + name: 'oylama', + description: 'Oylama yapmanızı sağlar.', + usage: 'oylama ' +}; + diff --git a/komutlar/pcbak.js b/komutlar/pcbak.js new file mode 100644 index 0000000..96d02c4 --- /dev/null +++ b/komutlar/pcbak.js @@ -0,0 +1,23 @@ +const Discord = require ("discord.js") + +exports.run = async (client, message, args) => { + + var durumlar = [new Discord.MessageEmbed().setColor("RANDOM").setDescription("**Olamaz! Şarjın Yok :/**"), new Discord.MessageEmbed().setColor("RANDOM").setDescription("**Bilgisayara Bakıyorsun...**").setImage("https://i.giphy.com/media/l3vR85PnGsBwu1PFK/giphy.gif"), new Discord.MessageEmbed().setColor("RANDOM").setDescription("**Olamaz! Ekran Kartın Patladı :/**")] + var durum = durumlar[Math.floor(Math.random() * durumlar.length)]; + message.channel.send(durum) + } + + + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ["bigisayarabak", "oyun-oyna", "oyunoyna", "bilgisayar"], + permLevel: 0 +} + +exports.help = { + name: "bilgisayara-bak", + description: "Bilgisayara Bakarsınız..", + usage: "bilgisayara-bak" +} \ No newline at end of file diff --git a/komutlar/ping.js b/komutlar/ping.js new file mode 100644 index 0000000..bbc0f7f --- /dev/null +++ b/komutlar/ping.js @@ -0,0 +1,23 @@ +const Discord = require('discord.js'); +exports.run = async(client, message) => { + + + +let embed = new Discord.MessageEmbed() +.setColor("PINK") +.addField(":bar_chart: **__Gecikme Sürem__**", `**${client.ws.ping}** ms Olarak Hesaplandı.`,true) +message.channel.send(embed) +} + + +exports.conf = { +enabled: true, +guildOnly: true, +aliases: ['p', 'ms'], +permLevel: 0 +}; + +exports.help = { +name: 'ping', +description: 'Botun pingini gösterir', +usage: 'ping' }; diff --git a/komutlar/piyango.js b/komutlar/piyango.js new file mode 100644 index 0000000..a734b62 --- /dev/null +++ b/komutlar/piyango.js @@ -0,0 +1,29 @@ +const Discord = require ("discord.js") +const client = new Discord.Client(); + + +exports.run = (client, message) => { + + message.channel.send("Bakalım Büyük Ödülü Kazanabilecek Misin...").then(message => { + var sonuçlar = ["Tebrikler, Piyangodan 100.000.000€ Kazandınız!", "Maalesef 1 Kuruş Kazandınız, Umarız Bir Daha Ki Sefere Piyango Çıkar..."] + var sonuç = sonuçlar[Math.floor(Math.random() * sonuçlar.length)]; + message.edit(`${sonuç}`); + + + + + }); +} + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [""], + permLevel: 0 +}; + +exports.help = { + name: "piyango", + description: "piyango işte ne sandın", + usage: "piyango" +}; \ No newline at end of file diff --git a/komutlar/rastgele-renk.js b/komutlar/rastgele-renk.js new file mode 100644 index 0000000..05d92ba --- /dev/null +++ b/komutlar/rastgele-renk.js @@ -0,0 +1,23 @@ +const Discord = require('discord.js'); +const client = new Discord.Client(); + +exports.run = (client, message) => { + message.channel.send('Dragon | :loading: Renk Yükleniyor.').then(message => { + var espriler = ['Kırmızı','Mavi','Beyaz.','Siyah.','Lacivert.','Sarı.','Mor.','Pembe.','Yeşil.','Camgöbeği.','Turuncu.','Eflatun.','Bordo.','Kahverengi.','Deniz mavisi.','Gri.']; + var espri = espriler[Math.floor(Math.random() * espriler.length)]; + message.edit(`${espri}`); + }); + } + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['rastgele-renk', 'renk-seç', 'seç-renk', 'seçbi-renk'], + permLevel: 0 +}; + +exports.help = { + name: 'şanslırengim', + description: 'Espri yapar.', + usage: 'rastgele-renk' +}; \ No newline at end of file diff --git a/komutlar/rolbilgi.js b/komutlar/rolbilgi.js new file mode 100644 index 0000000..02e8532 --- /dev/null +++ b/komutlar/rolbilgi.js @@ -0,0 +1,39 @@ +const { MessageEmbed } = require("discord.js"); + +module.exports.run = async (bot, message, args) => { + if (!args[0]) return message.channel.send("**Lütfen Bir Rol Girin!**") + let rol = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]) || message.guild.roles.cache.find(r => r.name.toLowerCase() === args.join(' ').toLocaleLowerCase()); + if (!rol) return message.channel.send("**Lütfen Geçerli Bir Rol Girin!**"); + + const bahset = { + false: "Hayır", + true: "Evet" + } + + let enes = new MessageEmbed() + .setColor("#00ff00") + .setAuthor("Rol Bilgi") + .setThumbnail(message.guild.iconURL()) + .addField("**Rol ID**", `\`${rol.id}\``, true) + .addField("**Rol İsmi**", rol.name, true) + .addField("**Renk Kodu**", rol.hexColor) + .addField("**Sahip Üyeler**", rol.members.size) + .addField("**Poziyon**", rol.position) + .addField("**Bahsedilebilir**", bahset[rol.mentionable]) + .setFooter(message.member.displayName, message.author.displayAvatarURL()) + .setTimestamp() + + message.channel.send(enes); + } + exports.conf = { + enabled: true, + guildOnly: false, + aliases: ['rolbilgi'], + permLevel: 0 +}; + +exports.help = { + name: 'Rolbilgi', + description: 'Rol Hakkında Bilgi Verir.', + usage: 'rolbilgi' +}; \ No newline at end of file diff --git a/komutlar/sa-as.js b/komutlar/sa-as.js new file mode 100644 index 0000000..6353c0e --- /dev/null +++ b/komutlar/sa-as.js @@ -0,0 +1,38 @@ +const db = require('quick.db') +const Discord = require('discord.js') + +exports.run = async (bot, message, args) => { + + + + if (!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send(':no_entry: Bu komudu kullanabilmek için `Sunucuyu Yönet` yetkisine sahip olmalısın!') + if (!args[0]) return message.channel.send(':no_entry: Sa-as yazısını açmak için; `d!sa-as aç veya kapat`') + + if (args[0] == 'aç') { + + db.set(`saas_${message.guild.id}`, 'açık') + message.channel.send(`Başarıyla botun \`Aleyküm selam\` Yazmasını Açtınız. Artık bot \`Sa\` Yazıldığında Aleyküm Selam Yazıcak.`) + + } + + if (args[0] == 'kapat') { + db.set(`saas_${message.guild.id}`, 'kapali') + message.channel.send(` Başarıyla \`Aleyküm selam\` Yazmasını Kapattınız, Artık Bot \`Sa\` Yazıldığında Cevap Vermeyecek.`) + + } +} + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [], + permLevel: 0 + +}; + +exports.help = { + name: 'sa-as', + description: 'Selamün aleyküm, Aleyküm selam', + usage: 'a.sa-as' + +}; \ No newline at end of file diff --git a/komutlar/sil.js b/komutlar/sil.js new file mode 100644 index 0000000..9ea9e79 --- /dev/null +++ b/komutlar/sil.js @@ -0,0 +1,21 @@ +const Discord = require('discord.js'); +exports.run = function(client, message, args) { +if(!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Bu Komutu Kullanmak İçin İzniniz Yok!"); +if(!args[0]) return message.channel.send(`**Lütfen Silinicek Mesaj Miktarını (1-100) Yazın!**`); +message.channel.bulkDelete(args[0]).then(() => { + message.channel.send(` ${args[0]} Adet Mesajı Sildim. `).then(msg => msg.delete(10000)); +}) +} + +exports.conf = { + enabled: true, + guildOnly: true, + aliases: ['sil','temizle','süpür'], + permLevel: 1, +}; + +exports.help = { + name:'temizle', + description: 'Belirlenen miktarda mesajı siler.', + usage: 'temizle ' +}; \ No newline at end of file diff --git a/komutlar/sunucu-kur.js b/komutlar/sunucu-kur.js new file mode 100644 index 0000000..f5d6371 --- /dev/null +++ b/komutlar/sunucu-kur.js @@ -0,0 +1,91 @@ + const Discord = require('discord.js'); + + +exports.run = (client, message, params) => { + if(message.author.id === message.guild.owner.id) { + + message.channel.send(new Discord.MessageEmbed().setColor('#000000').setTitle('Sunucu Kuruyorsunuz!').setDescription('Gerekli Kanallar Kurulsunmu?. **Dikkat Sunucuyu Kurduğunuzda Eski Kanallar Silinmez Elinizle Tek Tek Silmeniz Gerekir**').setFooter('Bu eylemi onaylıyorsan "evet" yazman yeterlidir.Bu eylem 30 saniye içinde sona erecek')) +.then(() => { +message.channel.awaitMessages(response => response.content === 'evet', { +max: 1, +time: 30000, +errors: ['time'], +}) +.then((collected) => { + + message.guild.channels.create(`🔒┇Dromic-Bot`, {type : "voice"}) + + message.guild.channels.create(`💫 | Sunucu Hakkında`, { type: 'category'}); + message.guild.channels.create(`📚┇kurallar`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "💫 | Sunucu Hakkında"))) + message.guild.channels.create(`🔒┇rol-kazanma`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "💫 | Sunucu Hakkında"))) + message.guild.channels.create(`📊┇gelen-giden`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "💫 | Sunucu Hakkında"))) + + message.guild.channels.create(`🔔 | Duyuru`, { type: 'category'}); + message.guild.channels.create(`📢┇duyuru`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔔 | Duyuru"))) + message.guild.channels.create(`📣┇video-duyuru`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔔 | Duyuru"))) + message.guild.channels.create(`🚀┇boost-basanlar`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔔 | Duyuru"))) + + message.guild.channels.create(`🌍┇Genel Alan`, { type: 'category'}); + message.guild.channels.create(`💬┇sohbet`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + message.guild.channels.create(`🚨┇bot-komut`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + message.guild.channels.create(`📷┇foto-chat`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + message.guild.channels.create(`🐦┇kuş-dili`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🌍┇Genel Alan"))) + + message.guild.channels.create(`🔊SES KANALLARI`, { type: 'category'}); + message.guild.channels.create(` 🎥┇Video Odası `, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 👑┇Yönetim Özel`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 🔉 ┇Sesli Sohbet 1`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 🔉 ┇Sesli Sohbet 2`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + message.guild.channels.create(` 🔉 ┇Sesli Sohbet 3`, {type : "voice"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "🔊SES KANALLARI"))) + + message.guild.channels.create(`Eğlence Kanalları`, { type: 'category'}); +message.guild.channels.create(`🔤┇kelime-türetmece`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`🔢┇sayı-sayma`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`🍬┇doğruluk-mu-cesaretlik-mi`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`🍎┇tuttu-tutmadı`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`✍┇özlü-bir-söz-yaz`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.guild.channels.create(`😵┇adam-asmaca`, {type : "text"}) + .then(channel => channel.setParent(message.guild.channels.cache.find(channel => channel.name === "Eğlence Kanalları"))) + message.channel.send("Gerekli kanallar kuruluyor.") + }); +}); + + } else { + message.channel.send(':x: **Üzgünüm ama bu komutu sadece sunucu sahibi kullanabilir!**'); + } +}; + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: ["sunucu-kur","sunucukur"], + permLevel: 3, + kategori: "mod" +}; + + +exports.help = { + name: 'sunucukur', + description: 'Sunucuyu kurar.', + usage: 'sunucukur' +}; \ No newline at end of file diff --git "a/komutlar/yard\304\261m.js" "b/komutlar/yard\304\261m.js" new file mode 100644 index 0000000..949afa4 --- /dev/null +++ "b/komutlar/yard\304\261m.js" @@ -0,0 +1,61 @@ +const Discord = require("discord.js"); +exports.run = async (client, message, args) => { + +var page = 0; + +let arr = []; +let emojiarr = message.guild.emojis.cache.array(); +for(let i =0; Number(i + "0") < (Math.round(emojiarr.length/10)*10 +1); ++i) { +var on = emojiarr.slice(Number(i + "0"), Number(i + "0")+10) +arr.push(on.toString()) +} + +let embd = new Discord.MessageEmbed() +message.channel.send(embd.setDescription(arr[0]).setDescription('Dromic Bot\nSayfalı yardım menüsüne hoş geldiniz. Sayfaları değiştirerek kodları görebilirsiniz.')).then(async msg => { + await msg.react("⬅️"); + await msg.react("➡️"); + + let filter = (reaction, user) => user.id !== message.client.user.id && user.id === message.author.id; + + var collector = msg.createReactionCollector(filter, { + time: 120000 + }); + + collector.on("collect", async (reaction, user) => { + switch (reaction.emoji.name) { + case "⬅️": + reaction.users.remove(user).catch(console.error); + if (page == 0) return; + --page + + embd.setColor("RANDOM"); + embd.setFooter(`Sayfa ${page+1} / ${arr.length+1}`); + embd.setDescription("**d!yetkili**\n**d!genel**") + msg.edit(embd) + break; + case "➡️": + if (page == arr.length) return; + ++page + reaction.users.remove(user).catch(console.error); + embd.setColor("RANDOM"); + embd.setFooter(`Sayfa ${page+1} / ${arr.length+1}`); + embd.setDescription("**d!ayarlamalı**\n**d!eğlence**") + msg.edit(embd) + break; + + } + }); + }) +} + exports.conf = { + enabled: true, + guildOnly: true, + aliases: ["help", "yardim "], + permLevel: 0 + }; + + exports.help = { + name: "yardım", + description: "Sayfalı Yardım Menüsü -ArdaDemr", + usage: "Sayfalı Yardım Menüsü" + }; \ No newline at end of file diff --git a/komutlar/yaz.js b/komutlar/yaz.js new file mode 100644 index 0000000..425632f --- /dev/null +++ b/komutlar/yaz.js @@ -0,0 +1,21 @@ +const Discord = require('discord.js'); + +exports.run = (client, message, args) => { + let mesaj = args.slice(0).join(' '); +if (mesaj.length < 1) return message.reply('Yazmam için herhangi bir şey yazmalısın.'); + message.delete(); + message.channel.send(mesaj); +}; + +exports.conf = { + enabled: true, + guildOnly: false, + aliases: [], + permLevel: 0 +}; + +exports.help = { + name: 'gizli', + description: 'İstediğiniz şeyi bota yazdırır.', + usage: 'yaz [yazdırmak istediğiniz şey]' +}; \ No newline at end of file diff --git a/komutlar/zarat.js b/komutlar/zarat.js new file mode 100644 index 0000000..13972b0 --- /dev/null +++ b/komutlar/zarat.js @@ -0,0 +1,26 @@ +const Discord = require('discord.js') + +exports.run = function(bot, message) { + message.channel.send(new Discord.MessageEmbed() + .setColor(message.guild.me.displayHexColor) + .setTitle('🎲 Zarın: ' + doMagicDiceVoodoo())); + + function doMagicDiceVoodoo() { + var rand = ['3', '6', '5', '2', '1', '3', '13']; + + return rand[Math.floor(Math.random()*rand.length)]; + } +} + +exports.conf = { + enabled: true, + aliases: ['zar','zar-at'], + guildOnly: false, + permLevel: 0 +}; + +exports.help = { + name: 'zarat', + description: 'Zar Atın', + usage: 'zarat' +}; \ No newline at end of file diff --git a/main.go b/main.go deleted file mode 100644 index 2ebb9d5..0000000 --- a/main.go +++ /dev/null @@ -1,18 +0,0 @@ -package main - -import ( - "github.com/codegangsta/cli" - "os" -) - -func main() { - app := cli.NewApp() - app.Name = "glitch" - app.Version = Version - app.Usage = "Just another glitch command line tool" - app.Author = "Shimpei Makimoto" - app.Email = "github@makimoto.org" - app.Commands = Commands - - app.Run(os.Args) -} diff --git a/otorol.json b/otorol.json new file mode 100644 index 0000000..140ee97 --- /dev/null +++ b/otorol.json @@ -0,0 +1 @@ +{"761912059537129472":{"sayi":"813511932018950174","kanal":"813713331382255636"}} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cbd8b0c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,374 @@ +{ + "name": "hello-express", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "express": { + "version": "4.17.1", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c1cf0c5 --- /dev/null +++ b/package.json @@ -0,0 +1,44 @@ +{ + "//1": "describes your app and its dependencies", + "//2": "https://docs.npmjs.com/files/package.json", + "//3": "updating this file will download and update your packages", + "name": "Dromic-Bot", + "version": "0.0.1", + "description": "Dromic Bot Burada!", + "main": "bot.js", + "scripts": { + "start": "node bot.js" + }, + "dependencies": { + "express": "^4.17.1", + "discord.js": "^12.5.1", + "fs": "^0.0.2", + "moment": "^2.29.1", + "chalk": "^4.1.0", + "jimp": "^0.16.1", + "quick.db": "^7.1.2", + "wio.db": "^4.0.15", + "ms": "^2.1.3", + "node-superfetch": "^0.1.11", + "crypto": "^1.0.1", + "os": "^0.1.1", + "cpu-stat": "^2.0.1", + "common-tags": "^1.8.0", + "moment-duration-format": "^2.3.2", + "parse-ms": "^2.1.0", + "dblapi.js": "^2.4.1", + "nrc.db": "^4.0.11" + }, + "engines": { + "node": "12.x" + }, + "repository": { + "url": "https://glitch.com/edit/#!/hello-express" + }, + "license": "MIT", + "keywords": [ + "node", + "glitch", + "express" + ] +} \ No newline at end of file diff --git a/samples/original.jpg b/samples/original.jpg deleted file mode 100644 index 01bbe08..0000000 Binary files a/samples/original.jpg and /dev/null differ diff --git a/samples/repeat.jpg b/samples/repeat.jpg deleted file mode 100644 index d63889a..0000000 Binary files a/samples/repeat.jpg and /dev/null differ diff --git a/samples/sed.jpg b/samples/sed.jpg deleted file mode 100644 index 56f594b..0000000 Binary files a/samples/sed.jpg and /dev/null differ diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml new file mode 100644 index 0000000..889bae3 --- /dev/null +++ b/shrinkwrap.yaml @@ -0,0 +1,1758 @@ +dependencies: + chalk: 4.1.0 + common-tags: 1.8.0 + cpu-stat: 2.0.1 + crypto: 1.0.1 + dblapi.js: 2.4.1 + discord.js: 12.5.1 + express: 4.17.1 + fs: 0.0.2 + jimp: 0.16.1 + moment: 2.29.1 + moment-duration-format: 2.3.2 + ms: 2.1.3 + node-superfetch: 0.1.11 + nrc.db: 4.0.11 + os: 0.1.1 + parse-ms: 2.1.0 + quick.db: 7.1.3 + wio.db: 4.0.15 +packages: + /@babel/runtime/7.12.5: + dependencies: + regenerator-runtime: 0.13.7 + dev: false + resolution: + integrity: sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== + /@discordjs/collection/0.1.6: + dev: false + resolution: + integrity: sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ== + /@discordjs/form-data/3.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.28 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg== + /@jimp/bmp/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + bmp-js: 0.1.0 + dev: false + id: registry.npmjs.org/@jimp/bmp/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg== + /@jimp/core/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/utils': 0.16.1 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 9.0.0 + load-bmfont: 1.4.1 + mkdirp: 0.5.5 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.4.2 + dev: false + resolution: + integrity: sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g== + /@jimp/custom/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/core': 0.16.1 + dev: false + resolution: + integrity: sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A== + /@jimp/gif/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + gifwrap: 0.9.2 + omggif: 1.0.10 + dev: false + id: registry.npmjs.org/@jimp/gif/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw== + /@jimp/jpeg/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + jpeg-js: 0.4.2 + dev: false + id: registry.npmjs.org/@jimp/jpeg/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w== + /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-blit/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg== + /@jimp/plugin-blur/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-blur/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw== + /@jimp/plugin-circle/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-circle/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg== + /@jimp/plugin-color/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + tinycolor2: 1.4.2 + dev: false + id: registry.npmjs.org/@jimp/plugin-color/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A== + /@jimp/plugin-contain/0.16.1/a624f9824ecab8b56adfbd241c0d2360: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-scale': /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-contain/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + resolution: + integrity: sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg== + /@jimp/plugin-cover/0.16.1/8315d8cb5521c7b6ab3d188653109939: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-crop': /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-scale': /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-cover/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + resolution: + integrity: sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q== + /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-crop/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew== + /@jimp/plugin-displace/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-displace/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw== + /@jimp/plugin-dither/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-dither/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q== + /@jimp/plugin-fisheye/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-fisheye/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A== + /@jimp/plugin-flip/0.16.1/cf48794c8db40b1485af02ddf78de22a: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-rotate': /@jimp/plugin-rotate/0.16.1/f86d75f0a9ddbaff0ef0351d9a96196f + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-flip/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + resolution: + integrity: sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w== + /@jimp/plugin-gaussian/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-gaussian/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg== + /@jimp/plugin-invert/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-invert/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w== + /@jimp/plugin-mask/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-mask/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q== + /@jimp/plugin-normalize/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-normalize/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw== + /@jimp/plugin-print/0.16.1/9a4be742356cc6e7388e1b53d69cb950: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + load-bmfont: 1.4.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-print/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + resolution: + integrity: sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q== + /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-resize/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ== + /@jimp/plugin-rotate/0.16.1/f86d75f0a9ddbaff0ef0351d9a96196f: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-crop': /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-rotate/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + resolution: + integrity: sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg== + /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-scale/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + resolution: + integrity: sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw== + /@jimp/plugin-shadow/0.16.1/da85c9753a610da846f94c44f998d58d: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blur': /@jimp/plugin-blur/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-shadow/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + resolution: + integrity: sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA== + /@jimp/plugin-threshold/0.16.1/0f50da9bd30083daaf7a1a01e894a296: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-color': /@jimp/plugin-color/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: false + id: registry.npmjs.org/@jimp/plugin-threshold/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + resolution: + integrity: sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA== + /@jimp/plugins/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': /@jimp/plugin-blit/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-blur': /@jimp/plugin-blur/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-circle': /@jimp/plugin-circle/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-color': /@jimp/plugin-color/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-contain': /@jimp/plugin-contain/0.16.1/a624f9824ecab8b56adfbd241c0d2360 + '@jimp/plugin-cover': /@jimp/plugin-cover/0.16.1/8315d8cb5521c7b6ab3d188653109939 + '@jimp/plugin-crop': /@jimp/plugin-crop/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-displace': /@jimp/plugin-displace/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-dither': /@jimp/plugin-dither/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-fisheye': /@jimp/plugin-fisheye/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-flip': /@jimp/plugin-flip/0.16.1/cf48794c8db40b1485af02ddf78de22a + '@jimp/plugin-gaussian': /@jimp/plugin-gaussian/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-invert': /@jimp/plugin-invert/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-mask': /@jimp/plugin-mask/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-normalize': /@jimp/plugin-normalize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-print': /@jimp/plugin-print/0.16.1/9a4be742356cc6e7388e1b53d69cb950 + '@jimp/plugin-resize': /@jimp/plugin-resize/0.16.1/@jimp!custom@0.16.1 + '@jimp/plugin-rotate': /@jimp/plugin-rotate/0.16.1/f86d75f0a9ddbaff0ef0351d9a96196f + '@jimp/plugin-scale': /@jimp/plugin-scale/0.16.1/a9394c44fe62983fb768b1336dae24ae + '@jimp/plugin-shadow': /@jimp/plugin-shadow/0.16.1/da85c9753a610da846f94c44f998d58d + '@jimp/plugin-threshold': /@jimp/plugin-threshold/0.16.1/0f50da9bd30083daaf7a1a01e894a296 + timm: 1.7.1 + dev: false + id: registry.npmjs.org/@jimp/plugins/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA== + /@jimp/png/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + pngjs: 3.4.0 + dev: false + id: registry.npmjs.org/@jimp/png/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw== + /@jimp/tiff/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + utif: 2.0.1 + dev: false + id: registry.npmjs.org/@jimp/tiff/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ== + /@jimp/types/0.16.1/@jimp!custom@0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/bmp': /@jimp/bmp/0.16.1/@jimp!custom@0.16.1 + '@jimp/custom': 0.16.1 + '@jimp/gif': /@jimp/gif/0.16.1/@jimp!custom@0.16.1 + '@jimp/jpeg': /@jimp/jpeg/0.16.1/@jimp!custom@0.16.1 + '@jimp/png': /@jimp/png/0.16.1/@jimp!custom@0.16.1 + '@jimp/tiff': /@jimp/tiff/0.16.1/@jimp!custom@0.16.1 + timm: 1.7.1 + dev: false + id: registry.npmjs.org/@jimp/types/0.16.1 + peerDependencies: + '@jimp/custom': '>=0.3.5' + resolution: + integrity: sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ== + /@jimp/utils/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + regenerator-runtime: 0.13.7 + dev: false + resolution: + integrity: sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw== + /@types/lodash/4.14.168: + dev: false + resolution: + integrity: sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q== + /@types/node/14.14.25: + dev: false + resolution: + integrity: sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ== + /abort-controller/3.0.0: + dependencies: + event-target-shim: 5.0.1 + dev: false + engines: + node: '>=6.5' + resolution: + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + /accepts/1.3.7: + dependencies: + mime-types: 2.1.25 + negotiator: 0.6.2 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + /ansi-regex/2.1.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + /ansi-regex/3.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + /ansi-styles/4.3.0: + dependencies: + color-convert: 2.0.1 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + /any-base/1.1.0: + dev: false + resolution: + integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + /aproba/1.2.0: + dev: false + resolution: + integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + /are-we-there-yet/1.1.5: + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.7 + dev: false + resolution: + integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + /array-flatten/1.1.1: + dev: false + resolution: + integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + /asynckit/0.4.0: + dev: false + resolution: + integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= + /base64-js/1.5.1: + dev: false + resolution: + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + /better-sqlite3/7.1.2: + dependencies: + bindings: 1.5.0 + prebuild-install: 5.3.6 + tar: 6.1.0 + dev: false + requiresBuild: true + resolution: + integrity: sha512-8FWYnJ6Bx94MBX03J5Ka7sTRlvXXMEm4FW2Op7nM8ErQZeyALYLmSlbMBnfr4cMpS0tj0aYZv0a+26G2YJuIjg== + /bindings/1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + dev: false + resolution: + integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + /bl/4.0.3: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + resolution: + integrity: sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + /bmp-js/0.1.0: + dev: false + resolution: + integrity: sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + /body-parser/1.19.0: + dependencies: + bytes: 3.1.0 + content-type: 1.0.4 + debug: 2.6.9 + depd: 1.1.2 + http-errors: 1.7.2 + iconv-lite: 0.4.24 + on-finished: 2.3.0 + qs: 6.7.0 + raw-body: 2.4.0 + type-is: 1.6.18 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + /buffer-equal/0.0.1: + dev: false + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + /buffer/5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + resolution: + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + /bytes/3.1.0: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + /chalk/4.1.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + engines: + node: '>=10' + resolution: + integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + /chownr/1.1.4: + dev: false + resolution: + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + /chownr/2.0.0: + dev: false + engines: + node: '>=10' + resolution: + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + /code-point-at/1.1.0: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + /color-convert/2.0.1: + dependencies: + color-name: 1.1.4 + dev: false + engines: + node: '>=7.0.0' + resolution: + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + /color-name/1.1.4: + dev: false + resolution: + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + /combined-stream/1.0.8: + dependencies: + delayed-stream: 1.0.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + /common-tags/1.8.0: + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + /console-control-strings/1.1.0: + dev: false + resolution: + integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + /content-disposition/0.5.3: + dependencies: + safe-buffer: 5.1.2 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + /content-type/1.0.4: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + /cookie-signature/1.0.6: + dev: false + resolution: + integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + /cookie/0.4.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + /core-util-is/1.0.2: + dev: false + resolution: + integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /cpu-stat/2.0.1: + dev: false + resolution: + integrity: sha1-UB6NbdLUTO9dhCk5w40YIsB4/Kw= + /crypto/1.0.1: + deprecated: 'This package is no longer supported. It''s now a built-in Node module. If you''ve depended on crypto, you should switch to the one that''s built-in.' + dev: false + resolution: + integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== + /dblapi.js/2.4.1: + deprecated: Module is no longer maintained + dev: false + resolution: + integrity: sha512-g+u1inF/qOLit5qPK4hBGk5pKL1vy09uBLV+nukkRMvw2S9D1PyiyO70n4fboUXOgbExPp6Sho/Y782OqQOUiQ== + /debug/2.6.9: + dependencies: + ms: 2.0.0 + dev: false + resolution: + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + /decompress-response/4.2.1: + dependencies: + mimic-response: 2.1.0 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + /deep-extend/0.6.0: + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + /delayed-stream/1.0.0: + dev: false + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /delegates/1.0.0: + dev: false + resolution: + integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + /depd/1.1.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + /destroy/1.0.4: + dev: false + resolution: + integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + /detect-libc/1.0.3: + dev: false + engines: + node: '>=0.10' + hasBin: true + resolution: + integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + /discord.js/12.5.1: + dependencies: + '@discordjs/collection': 0.1.6 + '@discordjs/form-data': 3.0.1 + abort-controller: 3.0.0 + node-fetch: 2.6.1 + prism-media: 1.2.3 + setimmediate: 1.0.5 + tweetnacl: 1.0.3 + ws: 7.4.2 + dev: false + engines: + node: '>=12.0.0' + resolution: + integrity: sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w== + /dom-walk/0.1.2: + dev: false + resolution: + integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + /ee-first/1.1.1: + dev: false + resolution: + integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + /encodeurl/1.0.2: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + /end-of-stream/1.4.4: + dependencies: + once: 1.4.0 + dev: false + resolution: + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + /escape-html/1.0.3: + dev: false + resolution: + integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + /etag/1.8.1: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + /event-target-shim/5.0.1: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + /exif-parser/0.1.12: + dev: false + resolution: + integrity: sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + /expand-template/2.0.3: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + /express/4.17.1: + dependencies: + accepts: 1.3.7 + array-flatten: 1.1.1 + body-parser: 1.19.0 + content-disposition: 0.5.3 + content-type: 1.0.4 + cookie: 0.4.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 1.1.2 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.1.2 + fresh: 0.5.2 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.3.0 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.5 + qs: 6.7.0 + range-parser: 1.2.1 + safe-buffer: 5.1.2 + send: 0.17.1 + serve-static: 1.14.1 + setprototypeof: 1.1.1 + statuses: 1.5.0 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + dev: false + engines: + node: '>= 0.10.0' + resolution: + integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + /file-type/9.0.0: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + /file-uri-to-path/1.0.0: + dev: false + resolution: + integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + /finalhandler/1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + /form-data/3.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.28 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + /forwarded/0.1.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + /fresh/0.5.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + /fs-constants/1.0.0: + dev: false + resolution: + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + /fs-minipass/2.1.0: + dependencies: + minipass: 3.1.3 + dev: false + engines: + node: '>= 8' + resolution: + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + /fs/0.0.2: + dev: false + resolution: + integrity: sha1-4fJE7zkzwbKmS9R5kTYGDQ9ZFPg= + /gauge/2.7.4: + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.3 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.3 + dev: false + resolution: + integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + /gifwrap/0.9.2: + dependencies: + image-q: 1.1.1 + omggif: 1.0.10 + dev: false + resolution: + integrity: sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA== + /github-from-package/0.0.0: + dev: false + resolution: + integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + /global/4.4.0: + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: false + resolution: + integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + /has-flag/4.0.0: + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + /has-unicode/2.0.1: + dev: false + resolution: + integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + /http-errors/1.7.2: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + /http-errors/1.7.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + /iconv-lite/0.4.24: + dependencies: + safer-buffer: 2.1.2 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + /ieee754/1.2.1: + dev: false + resolution: + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + /image-q/1.1.1: + dev: false + engines: + node: '>=0.9.0' + resolution: + integrity: sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY= + /inherits/2.0.3: + dev: false + resolution: + integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + /inherits/2.0.4: + dev: false + resolution: + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + /ini/1.3.8: + dev: false + resolution: + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + /ipaddr.js/1.9.0: + dev: false + engines: + node: '>= 0.10' + resolution: + integrity: sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + /is-fullwidth-code-point/1.0.0: + dependencies: + number-is-nan: 1.0.1 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + /is-fullwidth-code-point/2.0.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + /is-function/1.0.2: + dev: false + resolution: + integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + /isarray/1.0.0: + dev: false + resolution: + integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + /jimp/0.16.1: + dependencies: + '@babel/runtime': 7.12.5 + '@jimp/custom': 0.16.1 + '@jimp/plugins': /@jimp/plugins/0.16.1/@jimp!custom@0.16.1 + '@jimp/types': /@jimp/types/0.16.1/@jimp!custom@0.16.1 + regenerator-runtime: 0.13.7 + dev: false + resolution: + integrity: sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw== + /jpeg-js/0.4.2: + dev: false + resolution: + integrity: sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== + /load-bmfont/1.4.1: + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.4 + phin: 2.9.3 + xhr: 2.6.0 + xtend: 4.0.2 + dev: false + resolution: + integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== + /lodash/4.17.20: + dev: false + resolution: + integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + /media-typer/0.3.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + /merge-descriptors/1.0.1: + dev: false + resolution: + integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + /methods/1.1.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + /mime-db/1.42.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== + /mime-db/1.45.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + /mime-types/2.1.25: + dependencies: + mime-db: 1.42.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== + /mime-types/2.1.28: + dependencies: + mime-db: 1.45.0 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + /mime/1.6.0: + dev: false + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + /mimic-response/2.1.0: + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + /min-document/2.19.0: + dependencies: + dom-walk: 0.1.2 + dev: false + resolution: + integrity: sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + /minimist/1.2.5: + dev: false + resolution: + integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + /minipass/3.1.3: + dependencies: + yallist: 4.0.0 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + /minizlib/2.1.2: + dependencies: + minipass: 3.1.3 + yallist: 4.0.0 + dev: false + engines: + node: '>= 8' + resolution: + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + /mkdirp-classic/0.5.3: + dev: false + resolution: + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + /mkdirp/0.5.5: + dependencies: + minimist: 1.2.5 + dev: false + hasBin: true + resolution: + integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + /mkdirp/1.0.4: + dev: false + engines: + node: '>=10' + hasBin: true + resolution: + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + /moment-duration-format/2.3.2: + dev: false + resolution: + integrity: sha512-cBMXjSW+fjOb4tyaVHuaVE/A5TqkukDWiOfxxAjY+PEqmmBQlLwn+8OzwPiG3brouXKY5Un4pBjAeB6UToXHaQ== + /moment/2.29.1: + dev: false + resolution: + integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + /ms/2.0.0: + dev: false + resolution: + integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /ms/2.1.1: + dev: false + resolution: + integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + /ms/2.1.3: + dev: false + resolution: + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + /napi-build-utils/1.0.2: + dev: false + resolution: + integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + /negotiator/0.6.2: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + /node-abi/2.19.3: + dependencies: + semver: 5.7.1 + dev: false + resolution: + integrity: sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== + /node-fetch/2.6.1: + dev: false + engines: + node: 4.x || >=6.0.0 + resolution: + integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + /node-superfetch/0.1.11: + dependencies: + form-data: 3.0.0 + node-fetch: 2.6.1 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-984lO43EvDtjBOpVXDqnR2L5+pVt+qWfqIE6H7Sl21BoIz26OwSKxBnO9ZmJkYXAimR64MUPiz6tn5hySy1d0Q== + /noop-logger/0.1.1: + dev: false + resolution: + integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + /npmlog/4.1.2: + dependencies: + are-we-there-yet: 1.1.5 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + dev: false + resolution: + integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + /nrc.db/4.0.11: + dev: false + resolution: + integrity: sha512-sxQyinlFstTdi+ljSW8YEIaK0Q8+ctmZ6n64XmquPF1m08oJZ7t1WueCSEcMfT3VbxtED5OHVb0yWrHCfFGxng== + /number-is-nan/1.0.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + /object-assign/4.1.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + /omggif/1.0.10: + dev: false + resolution: + integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + /on-finished/2.3.0: + dependencies: + ee-first: 1.1.1 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + /once/1.4.0: + dependencies: + wrappy: 1.0.2 + dev: false + resolution: + integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + /os/0.1.1: + dev: false + resolution: + integrity: sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M= + /pako/1.0.11: + dev: false + resolution: + integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + /parse-bmfont-ascii/1.0.6: + dev: false + resolution: + integrity: sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + /parse-bmfont-binary/1.0.6: + dev: false + resolution: + integrity: sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + /parse-bmfont-xml/1.1.4: + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.4.23 + dev: false + resolution: + integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + /parse-headers/2.0.3: + dev: false + resolution: + integrity: sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== + /parse-ms/2.1.0: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + /parseurl/1.3.3: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + /path-to-regexp/0.1.7: + dev: false + resolution: + integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + /phin/2.9.3: + dev: false + resolution: + integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + /pixelmatch/4.0.2: + dependencies: + pngjs: 3.4.0 + dev: false + hasBin: true + resolution: + integrity: sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + /pngjs/3.4.0: + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + /prebuild-install/5.3.6: + dependencies: + detect-libc: 1.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.5 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 2.19.3 + noop-logger: 0.1.1 + npmlog: 4.1.2 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 3.1.0 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + which-pm-runs: 1.0.0 + dev: false + engines: + node: '>=6' + hasBin: true + resolution: + integrity: sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg== + /prism-media/1.2.3: + dev: false + peerDependencies: + '@discordjs/opus': ^0.3.3 + ffmpeg-static: ^4.2.7 || ^3.0.0 || ^2.4.0 + node-opus: ^0.3.3 + opusscript: ^0.0.7 + resolution: + integrity: sha512-fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A== + /process-nextick-args/2.0.1: + dev: false + resolution: + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + /process/0.11.10: + dev: false + engines: + node: '>= 0.6.0' + resolution: + integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + /proxy-addr/2.0.5: + dependencies: + forwarded: 0.1.2 + ipaddr.js: 1.9.0 + dev: false + engines: + node: '>= 0.10' + resolution: + integrity: sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + /pump/3.0.0: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + resolution: + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + /qs/6.7.0: + dev: false + engines: + node: '>=0.6' + resolution: + integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + /quick.db/7.1.3: + dependencies: + better-sqlite3: 7.1.2 + lodash: 4.17.20 + dev: false + resolution: + integrity: sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA== + /range-parser/1.2.1: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + /raw-body/2.4.0: + dependencies: + bytes: 3.1.0 + http-errors: 1.7.2 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + /rc/1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.5 + strip-json-comments: 2.0.1 + dev: false + hasBin: true + resolution: + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + /readable-stream/2.3.7: + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + resolution: + integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + /readable-stream/3.6.0: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + /regenerator-runtime/0.13.7: + dev: false + resolution: + integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + /safe-buffer/5.1.2: + dev: false + resolution: + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + /safe-buffer/5.2.1: + dev: false + resolution: + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + /safer-buffer/2.1.2: + dev: false + resolution: + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + /sax/1.2.4: + dev: false + resolution: + integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + /semver/5.7.1: + dev: false + hasBin: true + resolution: + integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + /send/0.17.1: + dependencies: + debug: 2.6.9 + depd: 1.1.2 + destroy: 1.0.4 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 1.7.3 + mime: 1.6.0 + ms: 2.1.1 + on-finished: 2.3.0 + range-parser: 1.2.1 + statuses: 1.5.0 + dev: false + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + /serve-static/1.14.1: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.17.1 + dev: false + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + /set-blocking/2.0.0: + dev: false + resolution: + integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + /setimmediate/1.0.5: + dev: false + resolution: + integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + /setprototypeof/1.1.1: + dev: false + resolution: + integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + /signal-exit/3.0.3: + dev: false + resolution: + integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + /simple-concat/1.0.1: + dev: false + resolution: + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + /simple-get/3.1.0: + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + resolution: + integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + /statuses/1.5.0: + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + /string-width/1.0.2: + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + /string-width/2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + /string_decoder/1.1.1: + dependencies: + safe-buffer: 5.1.2 + dev: false + resolution: + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + /string_decoder/1.3.0: + dependencies: + safe-buffer: 5.2.1 + dev: false + resolution: + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + /strip-ansi/3.0.1: + dependencies: + ansi-regex: 2.1.1 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + /strip-ansi/4.0.0: + dependencies: + ansi-regex: 3.0.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= + /strip-json-comments/2.0.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= + /supports-color/7.2.0: + dependencies: + has-flag: 4.0.0 + dev: false + engines: + node: '>=8' + resolution: + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + /tar-fs/2.1.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + resolution: + integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + /tar-stream/2.2.0: + dependencies: + bl: 4.0.3 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + /tar/6.1.0: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 3.1.3 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: false + engines: + node: '>= 10' + resolution: + integrity: sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + /timm/1.7.1: + dev: false + resolution: + integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== + /tinycolor2/1.4.2: + dev: false + resolution: + integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + /toidentifier/1.0.0: + dev: false + engines: + node: '>=0.6' + resolution: + integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + /tunnel-agent/0.6.0: + dependencies: + safe-buffer: 5.2.1 + dev: false + resolution: + integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + /tweetnacl/1.0.3: + dev: false + resolution: + integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + /type-is/1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.25 + dev: false + engines: + node: '>= 0.6' + resolution: + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + /unpipe/1.0.0: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + /user/0.0.0: + dev: false + resolution: + integrity: sha1-8n8bI/xRHyqO+kDbVc+6Ejgk4Co= + /utif/2.0.1: + dependencies: + pako: 1.0.11 + dev: false + resolution: + integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + /util-deprecate/1.0.2: + dev: false + resolution: + integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + /utils-merge/1.0.1: + dev: false + engines: + node: '>= 0.4.0' + resolution: + integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + /vary/1.1.2: + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + /which-pm-runs/1.0.0: + dev: false + resolution: + integrity: sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + /wide-align/1.1.3: + dependencies: + string-width: 2.1.1 + dev: false + resolution: + integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + /wio.db/4.0.15: + dependencies: + '@types/lodash': 4.14.168 + '@types/node': 14.14.25 + lodash: 4.17.20 + user: 0.0.0 + dev: false + resolution: + integrity: sha512-Z1HrVWS+ICpIlmV2ASlTeL8SGdMj3+G1R7/hRGHAfrwMuWZkv+YWZEqyw1lUbLl3hMOT7w6qArC+SN0u57GhUw== + /wrappy/1.0.2: + dev: false + resolution: + integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + /ws/7.4.2: + dev: false + engines: + node: '>=8.3.0' + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + resolution: + integrity: sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + /xhr/2.6.0: + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.3 + xtend: 4.0.2 + dev: false + resolution: + integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + /xml-parse-from-string/1.0.1: + dev: false + resolution: + integrity: sha1-qQKekp09vN7RafPG4oI42VpdWig= + /xml2js/0.4.23: + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: false + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + /xmlbuilder/11.0.1: + dev: false + engines: + node: '>=4.0' + resolution: + integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + /xtend/4.0.2: + dev: false + engines: + node: '>=0.4' + resolution: + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + /yallist/4.0.0: + dev: false + resolution: + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +registry: 'https://registry.npmjs.org/' +shrinkwrapMinorVersion: 9 +shrinkwrapVersion: 3 +specifiers: + chalk: ^4.1.0 + common-tags: ^1.8.0 + cpu-stat: ^2.0.1 + crypto: ^1.0.1 + dblapi.js: ^2.4.1 + discord.js: ^12.5.1 + express: ^4.17.1 + fs: ^0.0.2 + jimp: ^0.16.1 + moment: ^2.29.1 + moment-duration-format: ^2.3.2 + ms: ^2.1.3 + node-superfetch: ^0.1.11 + nrc.db: ^4.0.11 + os: ^0.1.1 + parse-ms: ^2.1.0 + quick.db: ^7.1.2 + wio.db: ^4.0.15 diff --git a/util/Util.js b/util/Util.js new file mode 100644 index 0000000..ee4c0b8 --- /dev/null +++ b/util/Util.js @@ -0,0 +1,125 @@ +const request = require('node-superfetch'); +const crypto = require('crypto'); +const { IMGUR_KEY } = process.env; +const yes = ['evet']; +const no = ['hayır'] + +const deleteCommandMessages = function (msg, client) { // eslint-disable-line consistent-return + if (msg.deletable && client.provider.get('global', 'deletecommandmessages', false)) { + return msg.delete(); + } + }; + +class Util { + static wait(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + static shuffle(array) { + const arr = array.slice(0); + for (let i = arr.length - 1; i >= 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + return arr; + } + + static list(arr, conj = 'and') { + const len = arr.length; + return `${arr.slice(0, -1).join(', ')}${len > 1 ? `${len > 2 ? ',' : ''} ${conj} ` : ''}${arr.slice(-1)}`; + } + + static shorten(text, maxLen = 2000) { + return text.length > maxLen ? `${text.substr(0, maxLen - 3)}...` : text; + } + + static duration(ms) { + const sec = Math.floor((ms / 1000) % 60).toString(); + const min = Math.floor((ms / (1000 * 60)) % 60).toString(); + const hrs = Math.floor(ms / (1000 * 60 * 60)).toString(); + return `${hrs.padStart(2, '0')}:${min.padStart(2, '0')}:${sec.padStart(2, '0')}`; + } + + static randomRange(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; + } + + static trimArray(arr, maxLen = 10) { + if (arr.length > maxLen) { + const len = arr.length - maxLen; + arr = arr.slice(0, maxLen); + arr.push(`${len} more...`); + } + return arr; + } + + static base64(text, mode = 'encode') { + if (mode === 'encode') return Buffer.from(text).toString('base64'); + if (mode === 'decode') return Buffer.from(text, 'base64').toString('utf8') || null; + throw new TypeError(`${mode} is not a supported base64 mode.`); + } + + static hash(text, algorithm) { + return crypto.createHash(algorithm).update(text).digest('hex'); + } + + static async randomFromImgurAlbum(album) { + const { body } = await request + .get(`https://api.imgur.com/3/album/${album}`) + .set({ Authorization: `Client-ID ${IMGUR_KEY}` }); + if (!body.data.images.length) return null; + return body.data.images[Math.floor(Math.random() * body.data.images.length)].link; + } + + static today(timeZone) { + const now = new Date(); + if (timeZone) now.setUTCHours(now.getUTCHours() + timeZone); + now.setHours(0); + now.setMinutes(0); + now.setSeconds(0); + now.setMilliseconds(0); + return now; + } + + static tomorrow(timeZone) { + const today = Util.today(timeZone); + today.setDate(today.getDate() + 1); + return today; + } + + static async awaitPlayers(msg, max, min, { text = 'join game', time = 30000 } = {}) { + const joined = []; + joined.push(msg.author.id); + const filter = res => { + if (msg.author.bot) return false; + if (joined.includes(res.author.id)) return false; + if (res.content.toLowerCase() !== text.toLowerCase()) return false; + joined.push(res.author.id); + return true; + }; + const verify = await msg.channel.awaitMessages(filter, { max, time }); + verify.set(msg.id, msg); + if (verify.size < min) return false; + return verify.map(message => message.author); + } + + static async verify(channel, user, time = 30000) { + const filter = res => { + const value = res.content.toLowerCase(); + return res.author.id === user.id && (yes.includes(value) || no.includes(value)); + }; + const verify = await channel.awaitMessages(filter, { + max: 1, + time + }); + if (!verify.size) return 0; + const choice = verify.first().content.toLowerCase(); + if (yes.includes(choice)) return true; + if (no.includes(choice)) return false; + return false; + } +} + +module.exports = Util; diff --git a/util/eventLoader.js b/util/eventLoader.js new file mode 100644 index 0000000..8d5083e --- /dev/null +++ b/util/eventLoader.js @@ -0,0 +1,5 @@ +const reqEvent = (event) => require(`../events/${event}`); +module.exports = client => { + client.on('ready', () => reqEvent('ready')(client)); + client.on('message', reqEvent('message')); +}; \ No newline at end of file diff --git a/version.go b/version.go deleted file mode 100644 index fd4c0ef..0000000 --- a/version.go +++ /dev/null @@ -1,3 +0,0 @@ -package main - -const Version string = "0.1.0"