├── LICENSE ├── README.md ├── baslat.bat ├── commands ├── eval.js ├── isim.js ├── isimler.js ├── istatistik.js ├── kayıt.js ├── kayıtsız.js ├── kullanıcıbilgi.js ├── say.js ├── topteyit.js └── vip.js ├── package-lock.json ├── package.json └── server.js /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Niwren 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # functions-emojili-kayit 2 | Bot Niwren#0001 tarafından geliştirilmiştir. 3 | 4 | İntentleri açmayı unutmayınız! 5 | 6 | kayıt.js vip.js ve server.js dosyasındaki yerleri doldurunuz. 7 | 8 | Herhangi bir hata çıkarsa Niwren#0001 ye ulaşabilirsiniz. 9 | 10 | Eklenmesini istediğiniz şeyler için Niwren#0001 ye ulaşabilirsiniz 11 | 12 | 40 starda Public sunucular için geliştirilmiş moderasyon botu paylaşılacaktır 13 | 14 | İYİ GÜNLER 15 | -------------------------------------------------------------------------------- /baslat.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | cls 3 | :a 4 | node server.js 5 | goto a -------------------------------------------------------------------------------- /commands/eval.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const util = require('util'); 3 | const db = require('quick.db') 4 | const tokenuyari = `Sen hiç yarrak yedinmi?` 5 | 6 | 7 | module.exports = { 8 | name: 'eval', 9 | run: async(client, message, args) => { 10 | 11 | 12 | let izinli = ["676128212681490459"] // kendi idni koy 13 | if (!izinli.includes(message.member.id)) return message.channel.send('') 14 | 15 | if (args[0] == '@everyone') return; 16 | 17 | if (!args[0]) { 18 | const embed = new Discord.MessageEmbed() 19 | .setDescription(`Kod yaz`) 20 | .setColor("RANDOM") 21 | .setTimestamp() 22 | message.channel.send({ embed }) 23 | return 24 | } 25 | 26 | const code = args.join(' '); 27 | if (code.match(/(client.token)/g)) { 28 | const newEmbed = new Discord.MessageEmbed() 29 | .addField('Hata çıktı;', `\`\`\`xl\n${tokenuyari}\`\`\``) 30 | .setColor('#FF0000'); 31 | message.channel.send(newEmbed); 32 | return 33 | } 34 | 35 | function clean(text) { 36 | if (typeof text !== 'string') 37 | text = require('util').inspect(text, { depth: 0 }) 38 | text = text 39 | .replace(/`/g, '`' + String.fromCharCode(8203)) 40 | .replace(/@/g, '@' + String.fromCharCode(8203)) 41 | return text; 42 | }; 43 | 44 | const evalEmbed = new Discord.MessageEmbed().setColor("RANDOM") 45 | try { 46 | var evaled = clean(await eval(code)); 47 | if (evaled.startsWith('NTQ3M')) evaled = tokenuyari; 48 | if (evaled.constructor.name === 'Promise') evalEmbed.setDescription(`\`\`\`\n${evaled}\n\`\`\``) 49 | else evalEmbed.setDescription(`\`\`\`js\n${evaled}\n\`\`\``) 50 | const newEmbed = new Discord.MessageEmbed() 51 | .setDescription(`\`\`\`js\n${evaled}\`\`\``) 52 | .setColor("RANDOM") 53 | message.channel.send(newEmbed); 54 | } catch (err) { 55 | evalEmbed.addField('Hata çıktı;', `\`\`\`js\n${err}\n\`\`\``); 56 | evalEmbed.setColor('#FF0000'); 57 | message.channel.send(evalEmbed); 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /commands/isim.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | name: 'isim', 6 | aliases: ['isim', 'nick', 'name', 'i'], 7 | run: async(client, message, args) => { 8 | let embed = new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setColor('#ff0000').setTimestamp().setThumbnail(message.author.avatarURL).setFooter('🎄Developed by Niwren🎄'); 9 | 10 | if (!client.config.mods.some(id => message.member.roles.cache.has(id))) { 11 | return message.channel.send(embed.setDescription("Komutu kullanan kullanıcıda yetki bulunmamakta!")) 12 | } 13 | 14 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]); 15 | if (!member) return message.channel.send(embed.setDescription("Kullanıcı bulunamadı veya etiketlenmedi!")) 16 | 17 | let name = args[1] 18 | if (!name) return message.channel.send(embed.setDescription("Kullanıcı için bi isim yazılmak zorunda!")) 19 | 20 | let age = args[2] 21 | if (!age) return message.channel.send(embed.setDescription("Kullanıcı için bir yaş yazılmak zorunda!")) 22 | 23 | message.guild.members.cache.get(member.id).setNickname(`${client.config.tag} ${name} | ${age}`) 24 | db.push(`isimler_${member.id}`, ` \`${name} | ${age}\` (isim değiştirme>)`); 25 | message.channel.send(embed.setDescription(`${member} adlı kullanıcının ismi \`${name} | ${age}\` olarak değiştirildi`) 26 | 27 | ) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/isimler.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const { MessageEmbed, Message } = require('discord.js') 3 | module.exports = { 4 | name: 'isimler', 5 | aliases: ['isimler', 'geçmiş'], 6 | 7 | run: async(client, message, args) => { 8 | if (!client.config.mods.some(id => message.member.roles.cache.has(id))) { 9 | return message.react('⚠️') 10 | } 11 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]); 12 | if (!member) return message.channel.send("Öncellikle Bir Kullanıcı Belirtmelisin.") 13 | let isimler = db.get(`isimler_${member.user.id}`); 14 | if (!isimler) return message.channel.send("Bu Kullanıcının Daha Öncedenki İsmi Bulunmuyor.") 15 | const embed = new MessageEmbed() 16 | .setColor('#2F3136') // 17 | .setTitle("Bu kullanıcı daha önceden") 18 | .setDescription(isimler.map((data, i) => `**${i + 1}.** ${data}`).join("\n") + `\nisimlerinde kayıt olmuş.`) 19 | .setFooter('İngiltereli X Muratva Stark X Niwren') 20 | .setThumbnail(member.displayName, member.user.avatarURL({ dynamic: true })) 21 | .setTimestamp() 22 | message.channel.send(embed) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /commands/istatistik.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const { MessageEmbed } = require('discord.js') 3 | module.exports = { 4 | name: 'istatistik', 5 | aliases: ['istatistik', 'teyitsayım', 'tt', 'teyittoplam', 'teyitkontrol'], 6 | run: async(client, message, args) => { 7 | var member = message.mentions.users.first() || message.author; 8 | let erkek = db.get(`erkek_${member.id}`) || 0 9 | let kız = db.get(`kız_${member.id}`) || 0 10 | let toplam = db.get(`toplam_${member.id}`) || 0 11 | const embed = new MessageEmbed() 12 | .setColor('BLACK') 13 | .setTitle("Kayıt Bilgisi") 14 | .setDescription(`Sunucudaki Toplam Teyit Sayın: \`${toplam}\` (Erkek: ${erkek} || Bayan: ${kız})`) 15 | message.channel.send(embed) 16 | } 17 | } -------------------------------------------------------------------------------- /commands/kayıt.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | name: 'k', 6 | aliases: ['erkek', 'kız', 'k', 'e', 'kayıt'], 7 | run: async(client, message, args) => { 8 | 9 | let embed = new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setColor('#ff0000').setTimestamp().setFooter('Muratva Stark X İngiltereli X Niwren'); 10 | if (!client.config.mods.some(id => message.member.roles.cache.has(id))) { 11 | return message.channel.send(embed.setDescription("Bu Komut İçin Yetkin Bulunmuyor.")) 12 | } 13 | // if (message.channel.id !== client.config.channelID) return message.channel.send(embed.setDescription('Komutu sadece <#${client.config.channelID}> analında kullanabilirsin')) 14 | 15 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]); 16 | if (!member) return message.channel.send(embed.setDescription("Kullanıcı bulunamadı veya etiketlenmedi!")) 17 | 18 | let name = args[1].charAt(0).replace("i", "İ").toUpperCase() + args[1].slice(1).toLowerCase(); 19 | if (!name) return message.channel.send(embed.setDescription("Kullanıcı için bi isim yazılmak zorunda!")) 20 | 21 | let age = Number(args[2]); 22 | if (!age) return message.channel.send(embed.setDescription("Kullanıcı için bir yaş kullanılmak zorunda!")) 23 | 24 | let isimler = db.get(`isimler_${member.user.id}`).map((data, i) => `**${i + 1}.** ${data}`).join("\n") 25 | 26 | ////TAGLI ALIMDA ETKİNLEŞTİR 27 | /* if (!member.user.username.includes(client.config.tag) && !message.guild.members.cache.get(member.id).roles.cache.has(client.config.boosterRoles)) { 28 | return message.channel.send(embed.setDescription("Bu Kullanıcıda Tag veya Etiket Yok! Kayıt olabilmesi için boost basmalı veya tag almalı!")) 29 | 30 | } */ 31 | 32 | if (db.get(`kayıt_${member.id}`)) return message.channel.send(embed.setDescription("Kayıtlı olan bir kullanıcı tekrar kayıt edilemez!")) 33 | const msg = await message.channel.send(new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setDescription(`Kullanıcının ismi \"${name} | ${age}\" olarak değiştirildi`).setColor('#2e3033').setTimestamp().setThumbnail(message.author.avatarURL).setFooter(`Emoji ile cinsiyeti belirtiniz!`)) 34 | let collector = msg.createReactionCollector((reaction, user) => user.id === message.author.id); 35 | message.guild.members.cache.get(member.id).setNickname(`${client.config.tag} ${name} | ${age}`).catch(); 36 | await msg.react('788870665645719582') // erkek emojileri soldaki gibi giriniz 37 | await msg.react('788870666925113414') //kız 38 | 39 | collector.on("collect", async(reaction, user) => { 40 | await msg.reactions.removeAll() 41 | if (reaction.emoji.id == '788870665645719582') { //erkek 42 | db.push(`isimler_${member.id}`, ` \`${name} | ${age}\` (erkek)`); 43 | db.set(`kayıt_${member.id}`, true) 44 | db.add(`erkek_${message.author.id}`, 1) 45 | db.add(`toplam_${message.author.id}`, 1) 46 | await message.guild.members.cache.get(member.id).roles.remove(client.config.unregisteres) 47 | await message.guild.members.cache.get(member.id).roles.add(client.config.maleRoles) 48 | msg.edit(new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setDescription(`**${member}** adlı kullanıcı \`${name} | ${age}\` olarak kayıt edildi.(<@&789476656061743124>) \n\n Kullanıcının Son İsimleri: \n ${isimler}`).setColor('#2e3033').setFooter(`'.isimler @kullanıcı' yaparak kullanıcının eski isimlerine bakabilirsiniz.`)) 49 | } 50 | if (reaction.emoji.id == '788870666925113414') { //kız 51 | db.push(`isimler_${member.id}`, ` \`${name} | ${age}\` (kız)`); 52 | db.set(`kayıt_${member.id}`, true) 53 | db.add(`kız_${message.author.id}`, 1) // Kafanız karışmaması için 2 sefer kayıt ettiriyorum 54 | db.add(`toplam_${message.author.id}`, 1) 55 | await message.guild.members.cache.get(member.id).roles.remove(client.config.unregisteres) 56 | await message.guild.members.cache.get(member.id).roles.add(client.config.girlRoles) 57 | return msg.edit(new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setDescription(`**${member}** adlı kullanıcı \`${name} | ${age}\` olarak kayıt edildi.(<@&789476654967160854>)\n\n Kullanıcının Son İsimleri \n ${isimler}`).setColor('#2e3033').setFooter(`'.isimler @kullanıcı' yaparak kullanıcının eski isimlerine bakabilirsiniz.`)) 58 | } 59 | client.channels.cache.get(client.config.chat).send('<@!' + member + '>, Sunuzumuza hoşgeldin seni aramızda görmek bize mutluluk veriyor.') 60 | }) 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /commands/kayıtsız.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const Discord = require('discord.js'); 3 | 4 | module.exports = { 5 | name: 'kayıtsız', 6 | aliases: ['kayıtsız', 'unreg', 'unregister'], 7 | 8 | run: async(client, message, args) => { 9 | let embed = new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setColor('#ff0000').setTimestamp().setThumbnail(message.author.avatarURL).setFooter('🎄Developed by Niwren🎄'); 10 | 11 | if (!client.config.mods.some(id => message.member.roles.cache.has(id))) { 12 | return message.channel.send(embed.setDescription("Bu Komut İçin Yetkin Bulunmuyor.")) 13 | } 14 | 15 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]); 16 | 17 | if (!member) return message.channel.send(embed.setDescription("Lütfen Bir Kullanıcı Etiketle")) 18 | if (member.roles.highest.position >= message.member.roles.highest.position) { 19 | return message.channel.send(embed.setDescription("Belirttiğin kullanıcı seninle aynı yetkide veya senden üstün!")) 20 | } 21 | await message.guild.members.cache.get(member.id).roles.set(client.config.unregisteres) 22 | message.channel.send(embed.setDescription("Kullanıcı Kayıtsız Kısmına Atıldı.")) 23 | db.delete(`kayıt_${member.id}`) 24 | 25 | } 26 | } -------------------------------------------------------------------------------- /commands/kullanıcıbilgi.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | const moment = require("moment"); 4 | 5 | module.exports = { 6 | name: 'kullanıcıbilgi', 7 | aliases: ['kb'], 8 | run: async(client, message, args) => { 9 | 10 | 11 | var member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.author; 12 | var user = message.guild.member(member); 13 | 14 | let status = member.presence.status.replace("offline", "Gorunmez/Çevrimdışı").replace("online", "Çevrimiçi").replace("idle", "Boşta").replace("dnd", "Rahatsız Etmeyin") 15 | let katılma = moment(user.joinedAt).format(`HH:mm | DD/MM/YYYY`).replace("/01/", " Ocak ").replace("/02/", " Şubat ").replace("/03/", " Mart ").replace("/04/", " Nisan ").replace("/05/", " Mayıs ").replace("/06/", " Haziran ").replace("/07/", " Temmuz ").replace("/08/", "Ağustos").replace("/09/", " Eylül ").replace("/10/", " Ekim ").replace("/11/", " Kasım ").replace("/12/", " Aralık ") 16 | let roller = user.roles.cache.filter(x => x.name !== "@everyone").map(x => x).join(', ') 17 | let erkek = db.get(`erkek_${member.id}`) || 0 18 | let kız = db.get(`kız_${member.id}`) || 0 19 | let toplam = db.get(`toplam_${member.id}`) || 0 20 | message.channel.send(new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setDescription(`__**Kullanıcı Bilgisi**__ \n\nKullanıcı: ${member}\nID: ${member.id}\nTag: ${member.tag}\nDurum: ${status}\n\n**Üyelik Bilgisi**\n\nTakma ad: ${user.displayName.replace("`", "")} ${user.nickname ? "" : "[Yok]"}\nKatılma Tarihi: ${katılma}\nRolleri: ${roller}\n\n**Teyit Bilgisi**\nToplam: ${toplam}(Erkek: ${erkek} || Bayan: ${kız})`).setThumbnail(message.author.avatarURL({ dynamic: true }))) 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /commands/say.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const { MessageEmbed } = require('discord.js') 3 | module.exports = { 4 | name: 'say', 5 | aliases: ['say'], 6 | run: async(client, message, args) => { 7 | const mapping = { 8 | " ": "", // Sayı İdlerini şeklinde giriniz. 9 | "0": "", 10 | "1": "", 11 | "2": "", 12 | "3": "", 13 | "4": "", 14 | "5": "", 15 | "6": "", 16 | "7": "", 17 | "8": "", 18 | "9": "", 19 | }; 20 | var toplamüye = message.guild.memberCount 21 | var online = message.guild.members.cache.filter(off => off.presence.status !== 'offline').size 22 | var sesli = message.guild.members.cache.filter(s => s.voice.channel).size; 23 | var tag = message.guild.members.cache.filter(a => a.user.username.includes(client.config.tag)).size 24 | var emojilitoplamüye = `${toplamüye}`.split("").map(c => mapping[c] || c).join("") 25 | var emojiilitag = `${tag}`.split("").map(c => mapping[c] || c).join("") 26 | var emojilises = `${sesli}`.split("").map(c => mapping[c] || c).join("") 27 | var emojilionline = `${online}`.split("").map(c => mapping[c] || c).join("") 28 | 29 | const embed = new MessageEmbed() 30 | .setColor('BLACK') 31 | .setAuthor(message.guild.name, message.guild.iconURL({ dynamic: true })) 32 | .setDescription(`• Sunucuda toplam **${toplamüye}** üye bulunmakta. 33 | • Sunucuda **${online}** aktif üye bulunmakta. 34 | • Ailemizde toplam **${tag}** üye bulunmakta. 35 | • Sunucuda sesli sohbetlerde toplam **${sesli}** üye bulunmakta`) 36 | .setTimestamp() 37 | .setThumbnail(message.guild.iconURL({ dynamic: true })) 38 | .setFooter('İngiltereli X Muratva Stark X Niwren') 39 | message.channel.send(embed) 40 | } 41 | } -------------------------------------------------------------------------------- /commands/topteyit.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const moment = require("moment"); 4 | 5 | module.exports = { 6 | name: 'topteyit', 7 | aliases: ['tt', 'teyittop'], 8 | run: async(client, message, args) => { 9 | let top = message.guild.members.cache.filter( uye => db.get(`erkek_${uye.id}`)).array().sort((uye1, uye2) => Number(db.get(`kız_${uye2.id}`))+Number(db.get(`erkek_${uye1.id}`))).slice(0, 10).map((uye, index) => (index+1)+"-) <@"+ uye +"> | \`" + db.get(`toplam_${uye.id}`)).join('\n') + " teyit\` "; 10 | if (!top) return message.channel.send("Herhangi bir veri bulunamadı!") 11 | message.channel.send( 12 | new Discord.MessageEmbed().setTitle('Top Teyit') 13 | .setTimestamp() 14 | .setColor('#03003d') 15 | .setFooter("İngiltereli X Niwren X Muratva Stark") 16 | .setDescription(top)// 17 | .setThumbnail(message.guild.iconURL({ dynamic: true }))); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /commands/vip.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | name: 'vip', 6 | aliases: ['special'], 7 | run: async(client, message, args) => { 8 | 9 | let embed = new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setColor('#ff0000').setTimestamp().setFooter('Muratva Stark X İngiltereli X Niwren'); 10 | if (!client.config.mods.some(id => message.member.roles.cache.has(id))) { 11 | return message.channel.send(embed.setDescription("Bu Komut İçin Yetkin Bulunmuyor.")) 12 | } 13 | // if (message.channel.id !== client.config.channelID) return message.channel.send(embed.setDescription('Komutu sadece <#${client.config.channelID}> analında kullanabilirsin')) 14 | 15 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]); 16 | if (!member) return message.channel.send(embed.setDescription("Kullanıcı bulunamadı veya etiketlenmedi!")) 17 | 18 | let name = args[1].charAt(0).replace("i", "İ").toUpperCase() + args[1].slice(1).toLowerCase(); 19 | if (!name) return message.channel.send(embed.setDescription("Kullanıcı için bi isim yazılmak zorunda!")) 20 | 21 | let age = Number(args[2]); 22 | if (!age) return message.channel.send(embed.setDescription("Kullanıcı için bir yaş kullanılmak zorunda!")) 23 | 24 | let isimler = db.get(`isimler_${member.user.id}`).map((data, i) => `**${i + 1}.** ${data}`).join("\n") 25 | 26 | if (db.get(`kayıt_${member.id}`)) return message.channel.send(embed.setDescription("Kayıtlı olan bir kullanıcı tekrar kayıt edilemez!")) 27 | const msg = await message.channel.send(new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setDescription(`Kullanıcının ismi \"${name} | ${age}\" olarak değiştirildi`).setColor('#2e3033').setTimestamp().setThumbnail(message.author.avatarURL).setFooter(`Emoji ile cinsiyeti belirtiniz!`)) 28 | let collector = msg.createReactionCollector((reaction, user) => user.id === message.author.id); 29 | message.guild.members.cache.get(member.id).setNickname(`${client.config.tag} ${name} | ${age}`).catch(); 30 | await msg.react('a:oceanus_yesil:788870665645719582') // erkek emojileri soldaki gibi giriniz 31 | await msg.react('a:oceanus_mavi:788870666925113414') //kız 32 | 33 | collector.on("collect", async(reaction, user) => { 34 | await msg.reactions.removeAll() 35 | if (reaction.emoji.id == '788870665645719582') { //erkek 36 | db.push(`isimler_${member.id}`, ` \`${name} | ${age}\` (erkek)`); 37 | db.set(`kayıt_${member.id}`, true) 38 | db.add(`erkek_${message.author.id}`, 1) 39 | db.add(`toplam_${message.author.id}`, 1) 40 | await message.guild.members.cache.get(member.id).roles.remove(client.config.unregisteres) 41 | await message.guild.members.cache.get(member.id).roles.add(client.config.maleRoles) 42 | await message.guild.members.cache.get(member.id).roles.add(client.config.vipRoles) 43 | msg.edit(new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setDescription(`**${member}** adlı kullanıcı \`${name} | ${age}\` olarak **VİP** kayıt edildi.(<@&789476656061743124>) \n\n Kullanıcının Son İsimleri: \n ${isimler}`).setColor('#2e3033').setFooter(`'.isimler @kullanıcı' yaparak kullanıcının eski isimlerine bakabilirsiniz.`)) 44 | } 45 | if (reaction.emoji.id == '788870666925113414') { //kız 46 | db.push(`isimler_${member.id}`, ` \`${name} | ${age}\` (kız)`); 47 | db.set(`kayıt_${member.id}`, true) 48 | db.add(`kız_${message.author.id}`, 1) // Kafanız karışmaması için 2 sefer kayıt ettiriyorum 49 | db.add(`toplam_${message.author.id}`, 1) 50 | await message.guild.members.cache.get(member.id).roles.remove(client.config.unregisteres) 51 | await message.guild.members.cache.get(member.id).roles.add(client.config.girlRoles) 52 | await message.guild.members.cache.get(member.id).roles.add(client.config.vipRoles) 53 | return msg.edit(new Discord.MessageEmbed().setAuthor(message.member.displayName, message.author.avatarURL({ dynamic: true })).setDescription(`**${member}** adlı kullanıcı \`${name} | ${age}\` olarak **VİP** kayıt edildi.(<@&789476654967160854>)\n\n Kullanıcının Son İsimleri \n ${isimler}`).setColor('#2e3033').setFooter(`'.isimler @kullanıcı' yaparak kullanıcının eski isimlerine bakabilirsiniz.`)) 54 | } 55 | client.channels.cache.get(client.config.chat).send('<@!' + member + '>, Sunuzumuza hoşgeldin seni aramızda görmek bize mutluluk veriyor.') 56 | }) 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hello-express", 3 | "version": "0.0.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "hello-express", 9 | "version": "0.0.1", 10 | "license": "MIT", 11 | "dependencies": { 12 | "discord.js": "^12.2.0", 13 | "express": "^4.17.1", 14 | "moment": "^2.27.0", 15 | "moment-duration": "^0.0.6", 16 | "moment-duration-format": "^2.3.2", 17 | "ms": "^2.1.3", 18 | "quick.db": "^7.1.3" 19 | }, 20 | "engines": { 21 | "node": "12.x" 22 | } 23 | }, 24 | "node_modules/@discordjs/collection": { 25 | "version": "0.1.6", 26 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", 27 | "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" 28 | }, 29 | "node_modules/@discordjs/form-data": { 30 | "version": "3.0.1", 31 | "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", 32 | "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", 33 | "dependencies": { 34 | "asynckit": "^0.4.0", 35 | "combined-stream": "^1.0.8", 36 | "mime-types": "^2.1.12" 37 | }, 38 | "engines": { 39 | "node": ">= 6" 40 | } 41 | }, 42 | "node_modules/abort-controller": { 43 | "version": "3.0.0", 44 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 45 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 46 | "dependencies": { 47 | "event-target-shim": "^5.0.0" 48 | }, 49 | "engines": { 50 | "node": ">=6.5" 51 | } 52 | }, 53 | "node_modules/ansi-regex": { 54 | "version": "2.1.1", 55 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 56 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 57 | "engines": { 58 | "node": ">=0.10.0" 59 | } 60 | }, 61 | "node_modules/aproba": { 62 | "version": "1.2.0", 63 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 64 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 65 | }, 66 | "node_modules/are-we-there-yet": { 67 | "version": "1.1.5", 68 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 69 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 70 | "dependencies": { 71 | "delegates": "^1.0.0", 72 | "readable-stream": "^2.0.6" 73 | } 74 | }, 75 | "node_modules/asynckit": { 76 | "version": "0.4.0", 77 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 78 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 79 | }, 80 | "node_modules/base64-js": { 81 | "version": "1.5.1", 82 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 83 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 84 | }, 85 | "node_modules/better-sqlite3": { 86 | "version": "7.1.1", 87 | "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.1.tgz", 88 | "integrity": "sha512-AkvGGyhAVZhRBOul2WT+5CB2EuveM3ZkebEKe1wxMqDZUy1XB/1RBgM66t0ybHC4DIni8+pr7NaLqEX87NUTwg==", 89 | "hasInstallScript": true, 90 | "dependencies": { 91 | "bindings": "^1.5.0", 92 | "prebuild-install": "^5.3.3", 93 | "tar": "4.4.10" 94 | } 95 | }, 96 | "node_modules/bindings": { 97 | "version": "1.5.0", 98 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 99 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 100 | "dependencies": { 101 | "file-uri-to-path": "1.0.0" 102 | } 103 | }, 104 | "node_modules/bl": { 105 | "version": "4.0.3", 106 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", 107 | "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", 108 | "dependencies": { 109 | "buffer": "^5.5.0", 110 | "inherits": "^2.0.4", 111 | "readable-stream": "^3.4.0" 112 | } 113 | }, 114 | "node_modules/bl/node_modules/readable-stream": { 115 | "version": "3.6.0", 116 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 117 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 118 | "dependencies": { 119 | "inherits": "^2.0.3", 120 | "string_decoder": "^1.1.1", 121 | "util-deprecate": "^1.0.1" 122 | }, 123 | "engines": { 124 | "node": ">= 6" 125 | } 126 | }, 127 | "node_modules/buffer": { 128 | "version": "5.7.1", 129 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 130 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 131 | "dependencies": { 132 | "base64-js": "^1.3.1", 133 | "ieee754": "^1.1.13" 134 | } 135 | }, 136 | "node_modules/chownr": { 137 | "version": "1.1.4", 138 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 139 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 140 | }, 141 | "node_modules/code-point-at": { 142 | "version": "1.1.0", 143 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 144 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 145 | "engines": { 146 | "node": ">=0.10.0" 147 | } 148 | }, 149 | "node_modules/combined-stream": { 150 | "version": "1.0.8", 151 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 152 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 153 | "dependencies": { 154 | "delayed-stream": "~1.0.0" 155 | }, 156 | "engines": { 157 | "node": ">= 0.8" 158 | } 159 | }, 160 | "node_modules/console-control-strings": { 161 | "version": "1.1.0", 162 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 163 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 164 | }, 165 | "node_modules/core-util-is": { 166 | "version": "1.0.2", 167 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 168 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 169 | }, 170 | "node_modules/decompress-response": { 171 | "version": "4.2.1", 172 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 173 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 174 | "dependencies": { 175 | "mimic-response": "^2.0.0" 176 | }, 177 | "engines": { 178 | "node": ">=8" 179 | } 180 | }, 181 | "node_modules/deep-extend": { 182 | "version": "0.6.0", 183 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 184 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 185 | "engines": { 186 | "node": ">=4.0.0" 187 | } 188 | }, 189 | "node_modules/delayed-stream": { 190 | "version": "1.0.0", 191 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 192 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 193 | "engines": { 194 | "node": ">=0.4.0" 195 | } 196 | }, 197 | "node_modules/delegates": { 198 | "version": "1.0.0", 199 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 200 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 201 | }, 202 | "node_modules/detect-libc": { 203 | "version": "1.0.3", 204 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 205 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", 206 | "bin": { 207 | "detect-libc": "bin/detect-libc.js" 208 | }, 209 | "engines": { 210 | "node": ">=0.10" 211 | } 212 | }, 213 | "node_modules/discord.js": { 214 | "version": "12.5.1", 215 | "dependencies": { 216 | "@discordjs/collection": "^0.1.6", 217 | "@discordjs/form-data": "^3.0.1", 218 | "abort-controller": "^3.0.0", 219 | "node-fetch": "^2.6.1", 220 | "prism-media": "^1.2.2", 221 | "setimmediate": "^1.0.5", 222 | "tweetnacl": "^1.0.3", 223 | "ws": "^7.3.1" 224 | }, 225 | "engines": { 226 | "node": ">=12.0.0" 227 | } 228 | }, 229 | "node_modules/end-of-stream": { 230 | "version": "1.4.4", 231 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 232 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 233 | "dependencies": { 234 | "once": "^1.4.0" 235 | } 236 | }, 237 | "node_modules/event-target-shim": { 238 | "version": "5.0.1", 239 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 240 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 241 | "engines": { 242 | "node": ">=6" 243 | } 244 | }, 245 | "node_modules/expand-template": { 246 | "version": "2.0.3", 247 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 248 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", 249 | "engines": { 250 | "node": ">=6" 251 | } 252 | }, 253 | "node_modules/express": { 254 | "version": "4.17.1", 255 | "dependencies": { 256 | "accepts": "~1.3.7", 257 | "array-flatten": "1.1.1", 258 | "body-parser": "1.19.0", 259 | "content-disposition": "0.5.3", 260 | "content-type": "~1.0.4", 261 | "cookie": "0.4.0", 262 | "cookie-signature": "1.0.6", 263 | "debug": "2.6.9", 264 | "depd": "~1.1.2", 265 | "encodeurl": "~1.0.2", 266 | "escape-html": "~1.0.3", 267 | "etag": "~1.8.1", 268 | "finalhandler": "~1.1.2", 269 | "fresh": "0.5.2", 270 | "merge-descriptors": "1.0.1", 271 | "methods": "~1.1.2", 272 | "on-finished": "~2.3.0", 273 | "parseurl": "~1.3.3", 274 | "path-to-regexp": "0.1.7", 275 | "proxy-addr": "~2.0.5", 276 | "qs": "6.7.0", 277 | "range-parser": "~1.2.1", 278 | "safe-buffer": "5.1.2", 279 | "send": "0.17.1", 280 | "serve-static": "1.14.1", 281 | "setprototypeof": "1.1.1", 282 | "statuses": "~1.5.0", 283 | "type-is": "~1.6.18", 284 | "utils-merge": "1.0.1", 285 | "vary": "~1.1.2" 286 | }, 287 | "engines": { 288 | "node": ">= 0.10.0" 289 | } 290 | }, 291 | "node_modules/file-uri-to-path": { 292 | "version": "1.0.0", 293 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 294 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 295 | }, 296 | "node_modules/fs-constants": { 297 | "version": "1.0.0", 298 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 299 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 300 | }, 301 | "node_modules/fs-minipass": { 302 | "version": "1.2.7", 303 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", 304 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", 305 | "dependencies": { 306 | "minipass": "^2.6.0" 307 | } 308 | }, 309 | "node_modules/gauge": { 310 | "version": "2.7.4", 311 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 312 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 313 | "dependencies": { 314 | "aproba": "^1.0.3", 315 | "console-control-strings": "^1.0.0", 316 | "has-unicode": "^2.0.0", 317 | "object-assign": "^4.1.0", 318 | "signal-exit": "^3.0.0", 319 | "string-width": "^1.0.1", 320 | "strip-ansi": "^3.0.1", 321 | "wide-align": "^1.1.0" 322 | } 323 | }, 324 | "node_modules/github-from-package": { 325 | "version": "0.0.0", 326 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 327 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" 328 | }, 329 | "node_modules/has-unicode": { 330 | "version": "2.0.1", 331 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 332 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 333 | }, 334 | "node_modules/ieee754": { 335 | "version": "1.2.1", 336 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 337 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 338 | }, 339 | "node_modules/inherits": { 340 | "version": "2.0.4", 341 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 342 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 343 | }, 344 | "node_modules/ini": { 345 | "version": "1.3.8", 346 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 347 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 348 | }, 349 | "node_modules/is-fullwidth-code-point": { 350 | "version": "1.0.0", 351 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 352 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 353 | "dependencies": { 354 | "number-is-nan": "^1.0.0" 355 | }, 356 | "engines": { 357 | "node": ">=0.10.0" 358 | } 359 | }, 360 | "node_modules/isarray": { 361 | "version": "1.0.0", 362 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 363 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 364 | }, 365 | "node_modules/lodash": { 366 | "version": "4.17.20", 367 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", 368 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" 369 | }, 370 | "node_modules/mime-db": { 371 | "version": "1.44.0", 372 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 373 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", 374 | "engines": { 375 | "node": ">= 0.6" 376 | } 377 | }, 378 | "node_modules/mime-types": { 379 | "version": "2.1.27", 380 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 381 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 382 | "dependencies": { 383 | "mime-db": "1.44.0" 384 | }, 385 | "engines": { 386 | "node": ">= 0.6" 387 | } 388 | }, 389 | "node_modules/mimic-response": { 390 | "version": "2.1.0", 391 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 392 | "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", 393 | "engines": { 394 | "node": ">=8" 395 | } 396 | }, 397 | "node_modules/minimist": { 398 | "version": "1.2.5", 399 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 400 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 401 | }, 402 | "node_modules/minipass": { 403 | "version": "2.9.0", 404 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", 405 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", 406 | "dependencies": { 407 | "safe-buffer": "^5.1.2", 408 | "yallist": "^3.0.0" 409 | } 410 | }, 411 | "node_modules/minizlib": { 412 | "version": "1.3.3", 413 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", 414 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", 415 | "dependencies": { 416 | "minipass": "^2.9.0" 417 | } 418 | }, 419 | "node_modules/mkdirp": { 420 | "version": "0.5.5", 421 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 422 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 423 | "dependencies": { 424 | "minimist": "^1.2.5" 425 | }, 426 | "bin": { 427 | "mkdirp": "bin/cmd.js" 428 | } 429 | }, 430 | "node_modules/mkdirp-classic": { 431 | "version": "0.5.3", 432 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 433 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 434 | }, 435 | "node_modules/moment": { 436 | "version": "2.29.1", 437 | "engines": { 438 | "node": "*" 439 | } 440 | }, 441 | "node_modules/moment-duration": { 442 | "version": "0.0.6", 443 | "resolved": "https://registry.npmjs.org/moment-duration/-/moment-duration-0.0.6.tgz", 444 | "integrity": "sha1-ZTF+itIaB9FCKRuBgy5tLkrRQtY=", 445 | "dependencies": { 446 | "moment": "2.0.0" 447 | }, 448 | "engines": { 449 | "node": "*" 450 | } 451 | }, 452 | "node_modules/moment-duration-format": { 453 | "version": "2.3.2" 454 | }, 455 | "node_modules/moment-duration/node_modules/moment": { 456 | "version": "2.0.0", 457 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.0.0.tgz", 458 | "integrity": "sha1-K7xbRMMhg3aTq278rb1G7ZRiEf4=", 459 | "engines": { 460 | "node": "*" 461 | } 462 | }, 463 | "node_modules/ms": { 464 | "version": "2.1.3", 465 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 466 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 467 | }, 468 | "node_modules/napi-build-utils": { 469 | "version": "1.0.2", 470 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 471 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" 472 | }, 473 | "node_modules/node-abi": { 474 | "version": "2.19.3", 475 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", 476 | "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", 477 | "dependencies": { 478 | "semver": "^5.4.1" 479 | } 480 | }, 481 | "node_modules/node-fetch": { 482 | "version": "2.6.1", 483 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 484 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", 485 | "engines": { 486 | "node": "4.x || >=6.0.0" 487 | } 488 | }, 489 | "node_modules/noop-logger": { 490 | "version": "0.1.1", 491 | "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", 492 | "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" 493 | }, 494 | "node_modules/npmlog": { 495 | "version": "4.1.2", 496 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 497 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 498 | "dependencies": { 499 | "are-we-there-yet": "~1.1.2", 500 | "console-control-strings": "~1.1.0", 501 | "gauge": "~2.7.3", 502 | "set-blocking": "~2.0.0" 503 | } 504 | }, 505 | "node_modules/number-is-nan": { 506 | "version": "1.0.1", 507 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 508 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 509 | "engines": { 510 | "node": ">=0.10.0" 511 | } 512 | }, 513 | "node_modules/object-assign": { 514 | "version": "4.1.1", 515 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 516 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 517 | "engines": { 518 | "node": ">=0.10.0" 519 | } 520 | }, 521 | "node_modules/once": { 522 | "version": "1.4.0", 523 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 524 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 525 | "dependencies": { 526 | "wrappy": "1" 527 | } 528 | }, 529 | "node_modules/prebuild-install": { 530 | "version": "5.3.6", 531 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", 532 | "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", 533 | "dependencies": { 534 | "detect-libc": "^1.0.3", 535 | "expand-template": "^2.0.3", 536 | "github-from-package": "0.0.0", 537 | "minimist": "^1.2.3", 538 | "mkdirp-classic": "^0.5.3", 539 | "napi-build-utils": "^1.0.1", 540 | "node-abi": "^2.7.0", 541 | "noop-logger": "^0.1.1", 542 | "npmlog": "^4.0.1", 543 | "pump": "^3.0.0", 544 | "rc": "^1.2.7", 545 | "simple-get": "^3.0.3", 546 | "tar-fs": "^2.0.0", 547 | "tunnel-agent": "^0.6.0", 548 | "which-pm-runs": "^1.0.0" 549 | }, 550 | "bin": { 551 | "prebuild-install": "bin.js" 552 | }, 553 | "engines": { 554 | "node": ">=6" 555 | } 556 | }, 557 | "node_modules/prism-media": { 558 | "version": "1.2.3", 559 | "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz", 560 | "integrity": "sha512-fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A==", 561 | "peerDependencies": { 562 | "@discordjs/opus": "^0.3.3", 563 | "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", 564 | "node-opus": "^0.3.3", 565 | "opusscript": "^0.0.7" 566 | }, 567 | "peerDependenciesMeta": { 568 | "@discordjs/opus": { 569 | "optional": true 570 | }, 571 | "ffmpeg-static": { 572 | "optional": true 573 | }, 574 | "node-opus": { 575 | "optional": true 576 | }, 577 | "opusscript": { 578 | "optional": true 579 | } 580 | } 581 | }, 582 | "node_modules/process-nextick-args": { 583 | "version": "2.0.1", 584 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 585 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 586 | }, 587 | "node_modules/pump": { 588 | "version": "3.0.0", 589 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 590 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 591 | "dependencies": { 592 | "end-of-stream": "^1.1.0", 593 | "once": "^1.3.1" 594 | } 595 | }, 596 | "node_modules/quick.db": { 597 | "version": "7.1.3", 598 | "resolved": "https://registry.npmjs.org/quick.db/-/quick.db-7.1.3.tgz", 599 | "integrity": "sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA==", 600 | "dependencies": { 601 | "better-sqlite3": "^7.1.1", 602 | "lodash": "^4.17.20" 603 | } 604 | }, 605 | "node_modules/rc": { 606 | "version": "1.2.8", 607 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 608 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 609 | "dependencies": { 610 | "deep-extend": "^0.6.0", 611 | "ini": "~1.3.0", 612 | "minimist": "^1.2.0", 613 | "strip-json-comments": "~2.0.1" 614 | }, 615 | "bin": { 616 | "rc": "cli.js" 617 | } 618 | }, 619 | "node_modules/readable-stream": { 620 | "version": "2.3.7", 621 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 622 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 623 | "dependencies": { 624 | "core-util-is": "~1.0.0", 625 | "inherits": "~2.0.3", 626 | "isarray": "~1.0.0", 627 | "process-nextick-args": "~2.0.0", 628 | "safe-buffer": "~5.1.1", 629 | "string_decoder": "~1.1.1", 630 | "util-deprecate": "~1.0.1" 631 | } 632 | }, 633 | "node_modules/safe-buffer": { 634 | "version": "5.1.2", 635 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 636 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 637 | }, 638 | "node_modules/semver": { 639 | "version": "5.7.1", 640 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 641 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 642 | "bin": { 643 | "semver": "bin/semver" 644 | } 645 | }, 646 | "node_modules/set-blocking": { 647 | "version": "2.0.0", 648 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 649 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 650 | }, 651 | "node_modules/setimmediate": { 652 | "version": "1.0.5", 653 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 654 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 655 | }, 656 | "node_modules/signal-exit": { 657 | "version": "3.0.3", 658 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 659 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 660 | }, 661 | "node_modules/simple-concat": { 662 | "version": "1.0.1", 663 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 664 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" 665 | }, 666 | "node_modules/simple-get": { 667 | "version": "3.1.0", 668 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", 669 | "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", 670 | "dependencies": { 671 | "decompress-response": "^4.2.0", 672 | "once": "^1.3.1", 673 | "simple-concat": "^1.0.0" 674 | } 675 | }, 676 | "node_modules/string_decoder": { 677 | "version": "1.1.1", 678 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 679 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 680 | "dependencies": { 681 | "safe-buffer": "~5.1.0" 682 | } 683 | }, 684 | "node_modules/string-width": { 685 | "version": "1.0.2", 686 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 687 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 688 | "dependencies": { 689 | "code-point-at": "^1.0.0", 690 | "is-fullwidth-code-point": "^1.0.0", 691 | "strip-ansi": "^3.0.0" 692 | }, 693 | "engines": { 694 | "node": ">=0.10.0" 695 | } 696 | }, 697 | "node_modules/strip-ansi": { 698 | "version": "3.0.1", 699 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 700 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 701 | "dependencies": { 702 | "ansi-regex": "^2.0.0" 703 | }, 704 | "engines": { 705 | "node": ">=0.10.0" 706 | } 707 | }, 708 | "node_modules/strip-json-comments": { 709 | "version": "2.0.1", 710 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 711 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 712 | "engines": { 713 | "node": ">=0.10.0" 714 | } 715 | }, 716 | "node_modules/tar": { 717 | "version": "4.4.10", 718 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", 719 | "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", 720 | "dependencies": { 721 | "chownr": "^1.1.1", 722 | "fs-minipass": "^1.2.5", 723 | "minipass": "^2.3.5", 724 | "minizlib": "^1.2.1", 725 | "mkdirp": "^0.5.0", 726 | "safe-buffer": "^5.1.2", 727 | "yallist": "^3.0.3" 728 | }, 729 | "engines": { 730 | "node": ">=4.5" 731 | } 732 | }, 733 | "node_modules/tar-fs": { 734 | "version": "2.1.1", 735 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", 736 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", 737 | "dependencies": { 738 | "chownr": "^1.1.1", 739 | "mkdirp-classic": "^0.5.2", 740 | "pump": "^3.0.0", 741 | "tar-stream": "^2.1.4" 742 | } 743 | }, 744 | "node_modules/tar-stream": { 745 | "version": "2.1.4", 746 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", 747 | "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", 748 | "dependencies": { 749 | "bl": "^4.0.3", 750 | "end-of-stream": "^1.4.1", 751 | "fs-constants": "^1.0.0", 752 | "inherits": "^2.0.3", 753 | "readable-stream": "^3.1.1" 754 | }, 755 | "engines": { 756 | "node": ">=6" 757 | } 758 | }, 759 | "node_modules/tar-stream/node_modules/readable-stream": { 760 | "version": "3.6.0", 761 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 762 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 763 | "dependencies": { 764 | "inherits": "^2.0.3", 765 | "string_decoder": "^1.1.1", 766 | "util-deprecate": "^1.0.1" 767 | }, 768 | "engines": { 769 | "node": ">= 6" 770 | } 771 | }, 772 | "node_modules/tunnel-agent": { 773 | "version": "0.6.0", 774 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 775 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 776 | "dependencies": { 777 | "safe-buffer": "^5.0.1" 778 | }, 779 | "engines": { 780 | "node": "*" 781 | } 782 | }, 783 | "node_modules/util-deprecate": { 784 | "version": "1.0.2", 785 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 786 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 787 | }, 788 | "node_modules/which-pm-runs": { 789 | "version": "1.0.0", 790 | "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", 791 | "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" 792 | }, 793 | "node_modules/wide-align": { 794 | "version": "1.1.3", 795 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 796 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 797 | "dependencies": { 798 | "string-width": "^1.0.2 || 2" 799 | } 800 | }, 801 | "node_modules/wrappy": { 802 | "version": "1.0.2", 803 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 804 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 805 | }, 806 | "node_modules/ws": { 807 | "version": "7.4.1", 808 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", 809 | "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", 810 | "engines": { 811 | "node": ">=8.3.0" 812 | }, 813 | "peerDependencies": { 814 | "bufferutil": "^4.0.1", 815 | "utf-8-validate": "^5.0.2" 816 | }, 817 | "peerDependenciesMeta": { 818 | "bufferutil": { 819 | "optional": true 820 | }, 821 | "utf-8-validate": { 822 | "optional": true 823 | } 824 | } 825 | }, 826 | "node_modules/yallist": { 827 | "version": "3.1.1", 828 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 829 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 830 | } 831 | }, 832 | "dependencies": { 833 | "@discordjs/collection": { 834 | "version": "0.1.6", 835 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", 836 | "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" 837 | }, 838 | "@discordjs/form-data": { 839 | "version": "3.0.1", 840 | "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", 841 | "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", 842 | "requires": { 843 | "asynckit": "^0.4.0", 844 | "combined-stream": "^1.0.8", 845 | "mime-types": "^2.1.12" 846 | } 847 | }, 848 | "abort-controller": { 849 | "version": "3.0.0", 850 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 851 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 852 | "requires": { 853 | "event-target-shim": "^5.0.0" 854 | } 855 | }, 856 | "ansi-regex": { 857 | "version": "2.1.1", 858 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 859 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 860 | }, 861 | "aproba": { 862 | "version": "1.2.0", 863 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 864 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 865 | }, 866 | "are-we-there-yet": { 867 | "version": "1.1.5", 868 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 869 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 870 | "requires": { 871 | "delegates": "^1.0.0", 872 | "readable-stream": "^2.0.6" 873 | } 874 | }, 875 | "asynckit": { 876 | "version": "0.4.0", 877 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 878 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 879 | }, 880 | "base64-js": { 881 | "version": "1.5.1", 882 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 883 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 884 | }, 885 | "better-sqlite3": { 886 | "version": "7.1.1", 887 | "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.1.tgz", 888 | "integrity": "sha512-AkvGGyhAVZhRBOul2WT+5CB2EuveM3ZkebEKe1wxMqDZUy1XB/1RBgM66t0ybHC4DIni8+pr7NaLqEX87NUTwg==", 889 | "requires": { 890 | "bindings": "^1.5.0", 891 | "prebuild-install": "^5.3.3", 892 | "tar": "4.4.10" 893 | } 894 | }, 895 | "bindings": { 896 | "version": "1.5.0", 897 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 898 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 899 | "requires": { 900 | "file-uri-to-path": "1.0.0" 901 | } 902 | }, 903 | "bl": { 904 | "version": "4.0.3", 905 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", 906 | "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", 907 | "requires": { 908 | "buffer": "^5.5.0", 909 | "inherits": "^2.0.4", 910 | "readable-stream": "^3.4.0" 911 | }, 912 | "dependencies": { 913 | "readable-stream": { 914 | "version": "3.6.0", 915 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 916 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 917 | "requires": { 918 | "inherits": "^2.0.3", 919 | "string_decoder": "^1.1.1", 920 | "util-deprecate": "^1.0.1" 921 | } 922 | } 923 | } 924 | }, 925 | "buffer": { 926 | "version": "5.7.1", 927 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 928 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 929 | "requires": { 930 | "base64-js": "^1.3.1", 931 | "ieee754": "^1.1.13" 932 | } 933 | }, 934 | "chownr": { 935 | "version": "1.1.4", 936 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 937 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 938 | }, 939 | "code-point-at": { 940 | "version": "1.1.0", 941 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 942 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 943 | }, 944 | "combined-stream": { 945 | "version": "1.0.8", 946 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 947 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 948 | "requires": { 949 | "delayed-stream": "~1.0.0" 950 | } 951 | }, 952 | "console-control-strings": { 953 | "version": "1.1.0", 954 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 955 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 956 | }, 957 | "core-util-is": { 958 | "version": "1.0.2", 959 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 960 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 961 | }, 962 | "decompress-response": { 963 | "version": "4.2.1", 964 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 965 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 966 | "requires": { 967 | "mimic-response": "^2.0.0" 968 | } 969 | }, 970 | "deep-extend": { 971 | "version": "0.6.0", 972 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 973 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 974 | }, 975 | "delayed-stream": { 976 | "version": "1.0.0", 977 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 978 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 979 | }, 980 | "delegates": { 981 | "version": "1.0.0", 982 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 983 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 984 | }, 985 | "detect-libc": { 986 | "version": "1.0.3", 987 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 988 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" 989 | }, 990 | "discord.js": { 991 | "version": "12.5.1", 992 | "requires": { 993 | "@discordjs/collection": "^0.1.6", 994 | "@discordjs/form-data": "^3.0.1", 995 | "abort-controller": "^3.0.0", 996 | "node-fetch": "^2.6.1", 997 | "prism-media": "^1.2.2", 998 | "setimmediate": "^1.0.5", 999 | "tweetnacl": "^1.0.3", 1000 | "ws": "^7.3.1" 1001 | } 1002 | }, 1003 | "end-of-stream": { 1004 | "version": "1.4.4", 1005 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1006 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1007 | "requires": { 1008 | "once": "^1.4.0" 1009 | } 1010 | }, 1011 | "event-target-shim": { 1012 | "version": "5.0.1", 1013 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 1014 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 1015 | }, 1016 | "expand-template": { 1017 | "version": "2.0.3", 1018 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 1019 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" 1020 | }, 1021 | "express": { 1022 | "version": "4.17.1", 1023 | "requires": { 1024 | "accepts": "~1.3.7", 1025 | "array-flatten": "1.1.1", 1026 | "body-parser": "1.19.0", 1027 | "content-disposition": "0.5.3", 1028 | "content-type": "~1.0.4", 1029 | "cookie": "0.4.0", 1030 | "cookie-signature": "1.0.6", 1031 | "debug": "2.6.9", 1032 | "depd": "~1.1.2", 1033 | "encodeurl": "~1.0.2", 1034 | "escape-html": "~1.0.3", 1035 | "etag": "~1.8.1", 1036 | "finalhandler": "~1.1.2", 1037 | "fresh": "0.5.2", 1038 | "merge-descriptors": "1.0.1", 1039 | "methods": "~1.1.2", 1040 | "on-finished": "~2.3.0", 1041 | "parseurl": "~1.3.3", 1042 | "path-to-regexp": "0.1.7", 1043 | "proxy-addr": "~2.0.5", 1044 | "qs": "6.7.0", 1045 | "range-parser": "~1.2.1", 1046 | "safe-buffer": "5.1.2", 1047 | "send": "0.17.1", 1048 | "serve-static": "1.14.1", 1049 | "setprototypeof": "1.1.1", 1050 | "statuses": "~1.5.0", 1051 | "type-is": "~1.6.18", 1052 | "utils-merge": "1.0.1", 1053 | "vary": "~1.1.2" 1054 | } 1055 | }, 1056 | "file-uri-to-path": { 1057 | "version": "1.0.0", 1058 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1059 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 1060 | }, 1061 | "fs-constants": { 1062 | "version": "1.0.0", 1063 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1064 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 1065 | }, 1066 | "fs-minipass": { 1067 | "version": "1.2.7", 1068 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", 1069 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", 1070 | "requires": { 1071 | "minipass": "^2.6.0" 1072 | } 1073 | }, 1074 | "gauge": { 1075 | "version": "2.7.4", 1076 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 1077 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 1078 | "requires": { 1079 | "aproba": "^1.0.3", 1080 | "console-control-strings": "^1.0.0", 1081 | "has-unicode": "^2.0.0", 1082 | "object-assign": "^4.1.0", 1083 | "signal-exit": "^3.0.0", 1084 | "string-width": "^1.0.1", 1085 | "strip-ansi": "^3.0.1", 1086 | "wide-align": "^1.1.0" 1087 | } 1088 | }, 1089 | "github-from-package": { 1090 | "version": "0.0.0", 1091 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 1092 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" 1093 | }, 1094 | "has-unicode": { 1095 | "version": "2.0.1", 1096 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 1097 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 1098 | }, 1099 | "ieee754": { 1100 | "version": "1.2.1", 1101 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1102 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 1103 | }, 1104 | "inherits": { 1105 | "version": "2.0.4", 1106 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1107 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1108 | }, 1109 | "ini": { 1110 | "version": "1.3.8", 1111 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 1112 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 1113 | }, 1114 | "is-fullwidth-code-point": { 1115 | "version": "1.0.0", 1116 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1117 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1118 | "requires": { 1119 | "number-is-nan": "^1.0.0" 1120 | } 1121 | }, 1122 | "isarray": { 1123 | "version": "1.0.0", 1124 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1125 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1126 | }, 1127 | "lodash": { 1128 | "version": "4.17.20", 1129 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", 1130 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" 1131 | }, 1132 | "mime-db": { 1133 | "version": "1.44.0", 1134 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 1135 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 1136 | }, 1137 | "mime-types": { 1138 | "version": "2.1.27", 1139 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 1140 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 1141 | "requires": { 1142 | "mime-db": "1.44.0" 1143 | } 1144 | }, 1145 | "mimic-response": { 1146 | "version": "2.1.0", 1147 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 1148 | "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" 1149 | }, 1150 | "minimist": { 1151 | "version": "1.2.5", 1152 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1153 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 1154 | }, 1155 | "minipass": { 1156 | "version": "2.9.0", 1157 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", 1158 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", 1159 | "requires": { 1160 | "safe-buffer": "^5.1.2", 1161 | "yallist": "^3.0.0" 1162 | } 1163 | }, 1164 | "minizlib": { 1165 | "version": "1.3.3", 1166 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", 1167 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", 1168 | "requires": { 1169 | "minipass": "^2.9.0" 1170 | } 1171 | }, 1172 | "mkdirp": { 1173 | "version": "0.5.5", 1174 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1175 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1176 | "requires": { 1177 | "minimist": "^1.2.5" 1178 | } 1179 | }, 1180 | "mkdirp-classic": { 1181 | "version": "0.5.3", 1182 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 1183 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 1184 | }, 1185 | "moment": { 1186 | "version": "2.29.1" 1187 | }, 1188 | "moment-duration": { 1189 | "version": "0.0.6", 1190 | "resolved": "https://registry.npmjs.org/moment-duration/-/moment-duration-0.0.6.tgz", 1191 | "integrity": "sha1-ZTF+itIaB9FCKRuBgy5tLkrRQtY=", 1192 | "requires": { 1193 | "moment": "2.0.0" 1194 | }, 1195 | "dependencies": { 1196 | "moment": { 1197 | "version": "2.0.0", 1198 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.0.0.tgz", 1199 | "integrity": "sha1-K7xbRMMhg3aTq278rb1G7ZRiEf4=" 1200 | } 1201 | } 1202 | }, 1203 | "moment-duration-format": { 1204 | "version": "2.3.2" 1205 | }, 1206 | "ms": { 1207 | "version": "2.1.3", 1208 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1209 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1210 | }, 1211 | "napi-build-utils": { 1212 | "version": "1.0.2", 1213 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 1214 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" 1215 | }, 1216 | "node-abi": { 1217 | "version": "2.19.3", 1218 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", 1219 | "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", 1220 | "requires": { 1221 | "semver": "^5.4.1" 1222 | } 1223 | }, 1224 | "node-fetch": { 1225 | "version": "2.6.1", 1226 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 1227 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 1228 | }, 1229 | "noop-logger": { 1230 | "version": "0.1.1", 1231 | "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", 1232 | "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" 1233 | }, 1234 | "npmlog": { 1235 | "version": "4.1.2", 1236 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 1237 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 1238 | "requires": { 1239 | "are-we-there-yet": "~1.1.2", 1240 | "console-control-strings": "~1.1.0", 1241 | "gauge": "~2.7.3", 1242 | "set-blocking": "~2.0.0" 1243 | } 1244 | }, 1245 | "number-is-nan": { 1246 | "version": "1.0.1", 1247 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1248 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 1249 | }, 1250 | "object-assign": { 1251 | "version": "4.1.1", 1252 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1253 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1254 | }, 1255 | "once": { 1256 | "version": "1.4.0", 1257 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1258 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1259 | "requires": { 1260 | "wrappy": "1" 1261 | } 1262 | }, 1263 | "prebuild-install": { 1264 | "version": "5.3.6", 1265 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", 1266 | "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", 1267 | "requires": { 1268 | "detect-libc": "^1.0.3", 1269 | "expand-template": "^2.0.3", 1270 | "github-from-package": "0.0.0", 1271 | "minimist": "^1.2.3", 1272 | "mkdirp-classic": "^0.5.3", 1273 | "napi-build-utils": "^1.0.1", 1274 | "node-abi": "^2.7.0", 1275 | "noop-logger": "^0.1.1", 1276 | "npmlog": "^4.0.1", 1277 | "pump": "^3.0.0", 1278 | "rc": "^1.2.7", 1279 | "simple-get": "^3.0.3", 1280 | "tar-fs": "^2.0.0", 1281 | "tunnel-agent": "^0.6.0", 1282 | "which-pm-runs": "^1.0.0" 1283 | } 1284 | }, 1285 | "prism-media": { 1286 | "version": "1.2.3", 1287 | "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz", 1288 | "integrity": "sha512-fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A==", 1289 | "requires": {} 1290 | }, 1291 | "process-nextick-args": { 1292 | "version": "2.0.1", 1293 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1294 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1295 | }, 1296 | "pump": { 1297 | "version": "3.0.0", 1298 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1299 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1300 | "requires": { 1301 | "end-of-stream": "^1.1.0", 1302 | "once": "^1.3.1" 1303 | } 1304 | }, 1305 | "quick.db": { 1306 | "version": "7.1.3", 1307 | "resolved": "https://registry.npmjs.org/quick.db/-/quick.db-7.1.3.tgz", 1308 | "integrity": "sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA==", 1309 | "requires": { 1310 | "better-sqlite3": "^7.1.1", 1311 | "lodash": "^4.17.20" 1312 | } 1313 | }, 1314 | "rc": { 1315 | "version": "1.2.8", 1316 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 1317 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 1318 | "requires": { 1319 | "deep-extend": "^0.6.0", 1320 | "ini": "~1.3.0", 1321 | "minimist": "^1.2.0", 1322 | "strip-json-comments": "~2.0.1" 1323 | } 1324 | }, 1325 | "readable-stream": { 1326 | "version": "2.3.7", 1327 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1328 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1329 | "requires": { 1330 | "core-util-is": "~1.0.0", 1331 | "inherits": "~2.0.3", 1332 | "isarray": "~1.0.0", 1333 | "process-nextick-args": "~2.0.0", 1334 | "safe-buffer": "~5.1.1", 1335 | "string_decoder": "~1.1.1", 1336 | "util-deprecate": "~1.0.1" 1337 | } 1338 | }, 1339 | "safe-buffer": { 1340 | "version": "5.1.2", 1341 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1342 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1343 | }, 1344 | "semver": { 1345 | "version": "5.7.1", 1346 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1347 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 1348 | }, 1349 | "set-blocking": { 1350 | "version": "2.0.0", 1351 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1352 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 1353 | }, 1354 | "setimmediate": { 1355 | "version": "1.0.5", 1356 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 1357 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 1358 | }, 1359 | "signal-exit": { 1360 | "version": "3.0.3", 1361 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1362 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 1363 | }, 1364 | "simple-concat": { 1365 | "version": "1.0.1", 1366 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 1367 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" 1368 | }, 1369 | "simple-get": { 1370 | "version": "3.1.0", 1371 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", 1372 | "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", 1373 | "requires": { 1374 | "decompress-response": "^4.2.0", 1375 | "once": "^1.3.1", 1376 | "simple-concat": "^1.0.0" 1377 | } 1378 | }, 1379 | "string_decoder": { 1380 | "version": "1.1.1", 1381 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1382 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1383 | "requires": { 1384 | "safe-buffer": "~5.1.0" 1385 | } 1386 | }, 1387 | "string-width": { 1388 | "version": "1.0.2", 1389 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1390 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1391 | "requires": { 1392 | "code-point-at": "^1.0.0", 1393 | "is-fullwidth-code-point": "^1.0.0", 1394 | "strip-ansi": "^3.0.0" 1395 | } 1396 | }, 1397 | "strip-ansi": { 1398 | "version": "3.0.1", 1399 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1400 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1401 | "requires": { 1402 | "ansi-regex": "^2.0.0" 1403 | } 1404 | }, 1405 | "strip-json-comments": { 1406 | "version": "2.0.1", 1407 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1408 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" 1409 | }, 1410 | "tar": { 1411 | "version": "4.4.10", 1412 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", 1413 | "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", 1414 | "requires": { 1415 | "chownr": "^1.1.1", 1416 | "fs-minipass": "^1.2.5", 1417 | "minipass": "^2.3.5", 1418 | "minizlib": "^1.2.1", 1419 | "mkdirp": "^0.5.0", 1420 | "safe-buffer": "^5.1.2", 1421 | "yallist": "^3.0.3" 1422 | } 1423 | }, 1424 | "tar-fs": { 1425 | "version": "2.1.1", 1426 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", 1427 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", 1428 | "requires": { 1429 | "chownr": "^1.1.1", 1430 | "mkdirp-classic": "^0.5.2", 1431 | "pump": "^3.0.0", 1432 | "tar-stream": "^2.1.4" 1433 | } 1434 | }, 1435 | "tar-stream": { 1436 | "version": "2.1.4", 1437 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", 1438 | "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", 1439 | "requires": { 1440 | "bl": "^4.0.3", 1441 | "end-of-stream": "^1.4.1", 1442 | "fs-constants": "^1.0.0", 1443 | "inherits": "^2.0.3", 1444 | "readable-stream": "^3.1.1" 1445 | }, 1446 | "dependencies": { 1447 | "readable-stream": { 1448 | "version": "3.6.0", 1449 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1450 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1451 | "requires": { 1452 | "inherits": "^2.0.3", 1453 | "string_decoder": "^1.1.1", 1454 | "util-deprecate": "^1.0.1" 1455 | } 1456 | } 1457 | } 1458 | }, 1459 | "tunnel-agent": { 1460 | "version": "0.6.0", 1461 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1462 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1463 | "requires": { 1464 | "safe-buffer": "^5.0.1" 1465 | } 1466 | }, 1467 | "util-deprecate": { 1468 | "version": "1.0.2", 1469 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1470 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1471 | }, 1472 | "which-pm-runs": { 1473 | "version": "1.0.0", 1474 | "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", 1475 | "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" 1476 | }, 1477 | "wide-align": { 1478 | "version": "1.1.3", 1479 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 1480 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 1481 | "requires": { 1482 | "string-width": "^1.0.2 || 2" 1483 | } 1484 | }, 1485 | "wrappy": { 1486 | "version": "1.0.2", 1487 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1488 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1489 | }, 1490 | "ws": { 1491 | "version": "7.4.1", 1492 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", 1493 | "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", 1494 | "requires": {} 1495 | }, 1496 | "yallist": { 1497 | "version": "3.1.1", 1498 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 1499 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 1500 | } 1501 | } 1502 | } 1503 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "//1": "describes your app and its dependencies", 3 | "//2": "https://docs.npmjs.com/files/package.json", 4 | "//3": "updating this file will download and update your packages", 5 | "name": "hello-express", 6 | "version": "0.0.1", 7 | "description": "A simple Node app built on Express, instantly up and running.", 8 | "main": "server.js", 9 | "scripts": { 10 | "start": "node server.js" 11 | }, 12 | "dependencies": { 13 | "discord.js": "^12.2.0", 14 | "express": "^4.17.1", 15 | "moment": "^2.27.0", 16 | "moment-duration": "^0.0.6", 17 | "moment-duration-format": "^2.3.2", 18 | "ms": "^2.1.3", 19 | "quick.db": "^7.1.3" 20 | }, 21 | "engines": { 22 | "node": "12.x" 23 | }, 24 | "repository": { 25 | "url": "https://glitch.com/edit/#!/hello-express" 26 | }, 27 | "license": "MIT", 28 | "keywords": [ 29 | "node", 30 | "glitch", 31 | "express" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const client = new Discord.Client(); 3 | const fs = require('fs'); 4 | const db = require('quick.db'); 5 | const moment = require('moment') 6 | require('moment-duration-format') 7 | const commands = client.commands = new Discord.Collection(); 8 | const aliases = client.aliases = new Discord.Collection(); 9 | 10 | fs.readdirSync('./commands', { encoding: 'utf8' }).filter(file => file.endsWith(".js")).forEach((files) => { 11 | let command = require(`./commands/${files}`); 12 | if (!command.name) return console.log(`Hatalı Kod Dosyası => [/commands/${files}]`) 13 | commands.set(command.name, command); 14 | if (!command.aliases || command.aliases.length < 1) return 15 | command.aliases.forEach((otherUses) => { aliases.set(otherUses, command.name); }) 16 | }) 17 | 18 | 19 | client.on('message', message => { 20 | const prefix = "."; // prefix 21 | if (!message.guild || message.author.bot || !message.content.startsWith(prefix)) return; 22 | const args = message.content.slice(1).trim().split(/ +/g); 23 | const command = args.shift().toLowerCase(); 24 | const cmd = client.commands.get(command) || client.commands.get(client.aliases.get(command)) 25 | if (!cmd) return; 26 | cmd.run(client, message, args) 27 | }) 28 | 29 | client.on('ready', () => { 30 | client.user.setPresence({ activity: { name: 'Niwren X İngiltereli X Muratva Stark' }, status: 'idle' }) 31 | client.channels.cache.get(client.config.voiceChannel).join() // ses kanalı id 32 | console.log(`Bot ${client.user.tag} Adı İle Giriş Yaptı!`); 33 | }) 34 | client.config = { 35 | token: '',//token 36 | voiceChannel: '',//ses kanalı 37 | vipRoles: [''],//vip rolleri 38 | boosterRoles: '',//boosterrolü 39 | ekipRoles: [''],//taglı rolü 40 | unregisteres: ['', ''],//kayıtsız rolü 41 | maleRoles: ['', '', ''],//erkek rolleri 42 | girlRoles: ['', '', ''],//kız rolleri 43 | mods: [''],//mod rolleri 44 | chat: '',//chat idsi 45 | channelID: '',//kayıt kanalı id 46 | tag: '',//tag 47 | guildID: '',//sunucu id 48 | taglog: '',//tag lod id 49 | } 50 | 51 | 52 | client.on("userUpdate", async function(oldUser, newUser) { 53 | const guild = client.guilds.cache.get(client.config.guildID) 54 | const role = guild.roles.cache.find(roleInfo => roleInfo.id === client.config.ekipRoles) 55 | const member = guild.members.cache.get(newUser.id) 56 | const embed = new Discord.MessageEmbed().setAuthor(member.displayName, member.user.avatarURL({ dynamic: true })).setColor('#ff0000').setTimestamp().setFooter('🎄Developed by Niwren🎄'); 57 | if (newUser.username !== oldUser.username) { 58 | if (oldUser.username.includes(client.config.tag) && !newUser.username.includes(client.config.tag)) { 59 | member.roles.set(client.config.ekipRoles) // taglı alımda değil iseniz "roles.set" yerine "roles.remove" yazınız 60 | client.channels.cache.get(client.config.taglog).send(embed.setDescription(` ${newUser} isminden \`${client.config.tag}\` çıakrtarak ailemizden ayrıldı!`)) 61 | } else if (!oldUser.username.includes(client.config.tag) && newUser.username.includes(client.config.tag)) { 62 | member.roles.add(client.config.ekipRoles) 63 | client.channels.cache.get(client.config.chat).send(`Tebrikler, ${newUser} tag alarak ailemize katıldı ona sıcak bir **'Merhaba!'** diyin.(${client.config.tag})`) 64 | client.channels.cache.get(client.config.taglog).send(embed.setDescription(` ${newUser} ismine \`${client.config.tag}\` alarak ailemize katıldı`)) 65 | } 66 | } 67 | 68 | }); 69 | // Eventleri ayrı ayrı açtım kafanız karışmasın 70 | client.on('guildMemberAdd', (member) => { 71 | if (member.user.username.includes(client.config.tag)) { 72 | member.roles.add(client.config.ekipRoles) 73 | const embed = new Discord.MessageEmbed().setAuthor(member.displayName, member.user.avatarURL({ dynamic: true })).setColor('#ff0000').setTimestamp().setFooter('🎄Developed by Niwren🎄'); 74 | client.channels.cache.get(client.config.taglog).send(embed.setDescription(`<@${member.id}> adlı kişi sunucumuza taglı şekilde katıldı, isminde ${client.config.tag} sembolü bulunuyor.`)) 75 | } 76 | }); 77 | client.on('guildMemberAdd', (member) => { 78 | const mapping = { 79 | " ": "", 80 | "0": "", // Sayı İdlerini şeklinde giriniz. 81 | "1": "", 82 | "2": "", 83 | "3": "", 84 | "4": "", 85 | "5": "", 86 | "6": "", 87 | "7": "", 88 | "8": "", 89 | "9": "", 90 | }; 91 | 92 | var toplamüye = member.guild.memberCount 93 | var emotoplamüye = `${toplamüye}`.split("").map(c => mapping[c] || c).join("") 94 | let memberDay = (Date.now() - member.user.createdTimestamp); 95 | let createAt = moment.duration(memberDay).format("Y [Yıl], M [Ay], W [Hafta], DD [Gün]") 96 | let createAt2 = moment.duration(memberDay).format("DD [Gün], HH [saat], mm [dakika]") 97 | if (memberDay > 604800000) { 98 | client.channels.cache.get(client.config.channelID).send(` Suncumuza hoşgeldin ${member} - \`${member.id}\` 99 | Seninle birlikte **${toplamüye}** üyeye ulaştık 100 | Hesabın **${createAt}** önce açılmış 101 | Kayıt olmak için ses odalarına girip ses teyit vermen gerekiyor`) 102 | } else { 103 | client.channels.cache.get(client.config.channelID).send( 104 | new Discord.MessageEmbed() 105 | .setAuthor(member.user.username, member.user.avatarURL({ dynamic: true })) 106 | .setDescription(`${member}, Adlı Kullanıcı Sunucuya Katıldı Hesabı **${createAt2}** Önce Açıldığı İçin Şüpheli!`) 107 | .setTimestamp() 108 | .setThumbnail(member.user.avatarURL({ dynamic: true })) 109 | .setFooter(`🎄Developed by Niwren🎄`)) 110 | } 111 | }) 112 | client.on('message', message => { 113 | const tag = message.content.toLowerCase() 114 | if (tag === '.tag' || tag === '!tag' || tag === 'tag') { 115 | message.channel.send(client.config.tag); 116 | } 117 | }) 118 | client.login(client.config.token) 119 | --------------------------------------------------------------------------------