├── util └── eventLoader.js ├── events ├── ready.js └── message.js ├── README.md ├── commands ├── ping.js ├── support.js ├── vote.js ├── open-source.js ├── invite.js ├── load.js ├── unban.js ├── avatar.js ├── 8ball.js ├── stats.js ├── nsfw-4k.js ├── nsfw-ass.js ├── nsfw-anal.js ├── nsfw-boobs.js ├── nsfw-hanal.js ├── nsfw-hass.js ├── nsfw-hthigh.js ├── nsfw-pgif.js ├── nsfw-pussy.js ├── nsfw-thigh.js ├── nsfw-hboobs.js ├── nsfw-paizuri.js ├── nsfw-gonewild.js ├── nsfw-hentai.js ├── nsfw-hkitsune.js ├── nsfw-hmidriff.js ├── nsfw-tentacle.js ├── ban.js ├── lang.js ├── help.js ├── user-info.js └── server-info.js ├── package.json ├── LICENSE ├── lang ├── en.js ├── tr.js ├── es.js └── az.js └── app.js /util/eventLoader.js: -------------------------------------------------------------------------------- 1 | const reqEvent = (event) => require(`../events/${event}`); 2 | module.exports = client => { 3 | client.on('ready', () => reqEvent('ready')(client)); 4 | client.on('message', reqEvent('message')); 5 | }; 6 | -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = client => { 4 | 5 | client.user.setActivity(`${client.config.prefix}help | ${client.config.prefix}open-source`) 6 | console.log(`Bot ONLINE! (${client.user.tag} - ${client.user.id}) [Serving @ ${client.guilds.size} server]`); 7 | 8 | }; 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | Eleven Icon 4 | 5 |

6 | 7 | --- 8 | 9 | ### Installation 10 | - npm i 11 | - node app.js 12 | 13 | ### Discord Server 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /commands/ping.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | message.channel.send(Math.round(client.ping) + "ms") 11 | 12 | 13 | } 14 | 15 | exports.conf = { 16 | enabled: true, 17 | guildOnly: true, 18 | aliases: [], 19 | permLevel: 0 20 | }; 21 | 22 | exports.help = { 23 | name: 'ping' 24 | }; 25 | -------------------------------------------------------------------------------- /commands/support.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | message.channel.send(client.config.support) 11 | 12 | 13 | } 14 | 15 | exports.conf = { 16 | enabled: true, 17 | guildOnly: true, 18 | aliases: [], 19 | permLevel: 0 20 | }; 21 | 22 | exports.help = { 23 | name: 'support' 24 | }; 25 | -------------------------------------------------------------------------------- /commands/vote.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | message.channel.send("https://top.gg/bot/" + client.user.id + "/vote") 11 | 12 | 13 | } 14 | 15 | exports.conf = { 16 | enabled: true, 17 | guildOnly: true, 18 | aliases: [], 19 | permLevel: 0 20 | }; 21 | 22 | exports.help = { 23 | name: 'vote' 24 | }; 25 | -------------------------------------------------------------------------------- /commands/open-source.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | message.channel.send("https://github.com/elevenvac/asuna-bot") 11 | 12 | 13 | } 14 | 15 | exports.conf = { 16 | enabled: true, 17 | guildOnly: true, 18 | aliases: [], 19 | permLevel: 0 20 | }; 21 | 22 | exports.help = { 23 | name: 'open-source' 24 | }; 25 | -------------------------------------------------------------------------------- /commands/invite.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | message.channel.send("https://discord.com/oauth2/authorize?client_id=" + client.user.id + "&scope=bot&permissions=8") 11 | 12 | 13 | } 14 | 15 | exports.conf = { 16 | enabled: true, 17 | guildOnly: true, 18 | aliases: [], 19 | permLevel: 0 20 | }; 21 | 22 | exports.help = { 23 | name: 'invite' 24 | }; 25 | -------------------------------------------------------------------------------- /commands/load.js: -------------------------------------------------------------------------------- 1 | exports.run = (client, message, args) => { 2 | 3 | if (message.author.id !== client.config.admin) return; 4 | 5 | var command = args[0]; 6 | message.channel.sendMessage("`" + command + "` restarting...") 7 | .then(m => { 8 | client.reload(command) 9 | .then(() => { 10 | m.edit("`" + command + "` restarted."); 11 | }) 12 | .catch(e => { 13 | m.edit(`ERROR: \`${command || "---"}\`\n\`\`\`${e.stack}\`\`\``); 14 | }); 15 | }); 16 | }; 17 | 18 | exports.conf = { 19 | enabled: true, 20 | guildOnly: false, 21 | aliases: [], 22 | permLevel: 0 23 | }; 24 | 25 | exports.help = { 26 | name: 'load' 27 | }; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Asuna", 3 | "main": "app.js", 4 | "scripts": { 5 | "start": "node app.js" 6 | }, 7 | "dependencies": { 8 | "discord.js": "^11.6.4", 9 | "express": "^4.17.1", 10 | "fs": "^0.0.2", 11 | "moment": "^2.27.0", 12 | "superagent": "^6.0.0", 13 | "quick.db": "^7.1.2", 14 | "chalk": "^3.0.0", 15 | "moment-duration-format": "^2.3.2", 16 | "request": "^2.88.0", 17 | "dblapi.js": "^2.4.1" 18 | }, 19 | "engines": { 20 | "node": "11.x" 21 | }, 22 | "repository": { 23 | "url": "https://glitch.com/edit/#!/hello-express" 24 | }, 25 | "license": "MIT", 26 | "keywords": [ 27 | "node", 28 | "glitch", 29 | "express" 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /events/message.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | module.exports = async message => { 5 | let client = message.client; 6 | let prefix = client.config.prefix; 7 | if (message.author.bot) return; 8 | if (!message.content.startsWith(prefix)) return; 9 | let command = message.content.split(' ')[0].slice(prefix.length); 10 | let params = message.content.split(' ').slice(1); 11 | let perms = client.elevation(message); 12 | let cmd; 13 | if (client.commands.has(command)) { 14 | cmd = client.commands.get(command); 15 | } else if (client.aliases.has(command)) { 16 | cmd = client.commands.get(client.aliases.get(command)); 17 | } 18 | if (cmd) { 19 | client.channels.get(client.config.cmdLog).send(`${message.author.tag} => **${cmd.help.name}** (${message.guild.name})`) 20 | if (perms < cmd.conf.permLevel) return; 21 | cmd.run(client, message, params, perms); 22 | } 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /commands/unban.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send(lang.perm.ban_members); 11 | 12 | let user = args[0] 13 | if(isNaN(args[0])) return message.channel.send(lang.unban.idreq) 14 | if(!user) return message.channel.send(lang.unban.idreqq) 15 | if(!(await message.guild.fetchBans()).has(args[0])) return message.channel.send(lang.unban.usernf) 16 | 17 | message.channel.send(lang.unban.succ+ `: ${user} - ${client.users.get(user).tag || "[object Object]"}`) 18 | 19 | message.guild.unban(user); 20 | 21 | 22 | } 23 | 24 | exports.conf = { 25 | enabled: true, 26 | guildOnly: true, 27 | aliases: [], 28 | permLevel: 0 29 | }; 30 | 31 | exports.help = { 32 | name: 'unban' 33 | }; 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2021 Eleven 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /commands/avatar.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | let user; 11 | 12 | if (message.mentions.users.first()) { 13 | user = message.mentions.users.first(); 14 | } else { 15 | user = message.author; 16 | } 17 | 18 | const embed = new Discord.RichEmbed() 19 | .setColor(client.config.embedColor) 20 | .setAuthor(client.user.username, client.user.avatarURL) 21 | .setDescription(`**${user.username}#${user.discriminator}**`) 22 | .setImage(user.avatarURL) 23 | .setFooter(message.author.tag, message.author.avatarURL) 24 | message.channel.send(embed) 25 | 26 | 27 | } 28 | 29 | exports.conf = { 30 | enabled: true, 31 | guildOnly: true, 32 | aliases: [], 33 | permLevel: 0 34 | }; 35 | 36 | exports.help = { 37 | name: 'avatar' 38 | }; 39 | -------------------------------------------------------------------------------- /commands/8ball.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | var answers = [ 11 | lang.eightball.answers_one, 12 | lang.eightball.answers_two, 13 | lang.eightball.answers_three, 14 | lang.eightball.answers_four, 15 | lang.eightball.answers_five, 16 | lang.eightball.answers_six, 17 | lang.eightball.answers_seven, 18 | lang.eightball.answers_eight, 19 | lang.eightball.answers_nine 20 | ] 21 | 22 | if (args[0] != null) { 23 | message.channel.send(answers[Math.floor(Math.random() * answers.length).toString(16)]) 24 | } 25 | 26 | else message.channel.send(lang.eightball.questionreq) 27 | 28 | 29 | } 30 | 31 | exports.conf = { 32 | enabled: true, 33 | guildOnly: true, 34 | aliases: [], 35 | permLevel: 0 36 | }; 37 | 38 | exports.help = { 39 | name: '8ball' 40 | }; 41 | -------------------------------------------------------------------------------- /commands/stats.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | const embed = new Discord.RichEmbed() 11 | .setColor(client.config.embedColor) 12 | .setAuthor(client.user.username, client.user.avatarURL) 13 | .addField(lang.stats.guilds, client.guilds.size.toLocaleString(), true) 14 | .addField(lang.stats.users, client.guilds.reduce((a, b) => a + b.memberCount, 0).toLocaleString(), true) 15 | .addField(lang.stats.channels, client.channels.size.toLocaleString(), true) 16 | .addField(lang.stats.developers, `${client.users.get(client.config.admin).tag}`) 17 | .setFooter(message.author.tag, message.author.avatarURL) 18 | message.channel.send(embed) 19 | 20 | 21 | } 22 | 23 | exports.conf = { 24 | enabled: true, 25 | guildOnly: true, 26 | aliases: [], 27 | permLevel: 0 28 | }; 29 | 30 | exports.help = { 31 | name: 'stats' 32 | }; 33 | -------------------------------------------------------------------------------- /commands/nsfw-4k.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: '4k'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: '4k' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-ass.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'ass'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'ass' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-anal.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'anal'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'anal' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-boobs.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'boobs'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'boobs' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-hanal.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'hanal'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'hanal' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-hass.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'hass'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'hass' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-hthigh.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'hthigh'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'hthigh' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-pgif.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'pgif'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'pgif' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-pussy.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'pussy'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'pussy' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-thigh.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'thigh'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'thigh' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-hboobs.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'hboobs'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'hboobs' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-paizuri.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'paizuri'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'paizuri' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-gonewild.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'gonewild'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'gonewild' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-hentai.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'hentai_anal'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'hentai' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-hkitsune.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'hkitsune'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'hkitsune' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-hmidriff.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'hmidriff'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'hmidriff' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/nsfw-tentacle.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const superagent = require('superagent'); 4 | const client = new Discord.Client(); 5 | 6 | exports.run = async (client, message, args) => { 7 | 8 | let language = db.fetch(`lang_${message.guild.id}`) 9 | if (language === null) language = client.config.mainLang 10 | const lang = require(`../lang/${language}.js`) 11 | 12 | const DBL = require("dblapi.js"); 13 | const dbl = new DBL(client.config.dblToken, client); 14 | 15 | const nsfwChannel = new Discord.Attachment("https://support.discord.com/hc/article_attachments/360007795191/2_.jpg") 16 | 17 | dbl.hasVoted(message.author.id).then(voted => { 18 | if (!voted) { message.channel.send(lang.nsfw.votereq + `\nhttps://top.gg/bot/${client.user.id}/vote`) 19 | } else { 20 | 21 | if (message.channel.nsfw === true) { 22 | superagent.get('https://nekobot.xyz/api/image') 23 | .query({ type: 'tentacle'}) 24 | .end((err, response) => { 25 | message.channel.send({ file: response.body.message }); 26 | }); 27 | } else { 28 | message.channel.send(lang.nsfw.onreq, nsfwChannel) 29 | } 30 | 31 | 32 | }})}; 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'tentacle' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/ban.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send(lang.perm.ban_members); 11 | 12 | let guild = message.guild 13 | let user = message.mentions.users.first() || client.users.get(args.slice(0).join(' ')) || client.guilds.get(args[0]) 14 | 15 | if (!user) return message.channel.send(lang.ban.userreq).catch(console.error); 16 | if (!message.guild.member(user)) return message.channel.send(lang.ban.usernf) 17 | if (!message.guild.member(user).bannable) return message.channel.send(lang.ban.usernb); 18 | 19 | let reason = args.splice(1, args.length).join(' ') || lang.ban.nreason; 20 | message.guild.ban(user, reason); 21 | 22 | const embed = new Discord.RichEmbed() 23 | .setColor(client.config.embedColor) 24 | .setAuthor(client.user.username, client.user.avatarURL) 25 | .addField(lang.ban.user, user.tag, true) 26 | .addField(lang.ban.reason, reason, true) 27 | .addField(lang.ban.unban, `+unban ${user.id}`) 28 | .setFooter(message.author.tag, message.author.avatarURL) 29 | message.channel.send(embed) 30 | 31 | 32 | } 33 | 34 | exports.conf = { 35 | enabled: true, 36 | guildOnly: true, 37 | aliases: [], 38 | permLevel: 0 39 | }; 40 | 41 | exports.help = { 42 | name: 'ban' 43 | }; 44 | -------------------------------------------------------------------------------- /commands/lang.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send(lang.perm.manage_guild) 11 | 12 | if (!args[0]) return message.channel.send(lang.lang.msg) 13 | 14 | if (args[0] === "az") { 15 | if (language === "az") return message.channel.send(lang.lang.err) 16 | db.set(`lang_${message.guild.id}`, "az") 17 | message.channel.send(":flag_az: Dil `Azərbaycan` dilinə dəyişdirildi.") 18 | } 19 | 20 | if (args[0] === "en") { 21 | if (language === "en") return message.channel.send(lang.lang.err) 22 | db.set(`lang_${message.guild.id}`, "en") 23 | message.channel.send(":flag_us: The language has been changed to `English`.") 24 | } 25 | 26 | if (args[0] === "es") { 27 | if (language === "es") return message.channel.send(lang.lang.err) 28 | db.set(`lang_${message.guild.id}`, "es") 29 | message.channel.send(":flag_es: El idioma se ha cambiado al `Español`.") 30 | } 31 | 32 | if (args[0] === "tr") { 33 | if (language === "tr") return message.channel.send(lang.lang.err) 34 | db.set(`lang_${message.guild.id}`, "tr") 35 | message.channel.send(":flag_tr: Dil `Türkçe` olarak değiştirildi.") 36 | } 37 | 38 | } 39 | 40 | exports.conf = { 41 | enabled: true, 42 | guildOnly: true, 43 | aliases: [], 44 | permLevel: 0 45 | }; 46 | 47 | exports.help = { 48 | name: 'lang' 49 | }; 50 | -------------------------------------------------------------------------------- /commands/help.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | 4 | exports.run = async (client, message, args) => { 5 | 6 | let language = db.fetch(`lang_${message.guild.id}`) 7 | if (language === null) language = client.config.mainLang 8 | const lang = require(`../lang/${language}.js`) 9 | 10 | const embed = new Discord.RichEmbed() 11 | .setColor(client.config.embedColor) 12 | .setAuthor(client.user.username, client.user.avatarURL) 13 | .setTitle(lang.help.title) 14 | .setDescription("> " + lang.help.supportedlanguages + " :flag_az: :flag_us: :flag_es: :flag_tr: `+lang`") 15 | .addField(lang.help.cstaff + " — 2", "`ban` `unban`") 16 | .addField(lang.help.cnsfw + " — 17", "`4k` `anal` `ass` `hentai` `pgif` `pussy` `boobs` `hboobs` `hass` `hanal` `hkitsune` `thigh` `hthigh` `paizuri` `gonewild` `tentacle` `hmidriff`") 17 | .addField(lang.help.cother + " — 11", " `help` `server-info` `user-info` `stats` `avatar` `8ball` `support` `vote` `invite` `ping` `open-source` \n\n[" + lang.help.addtodiscord + "](https://discord.com/oauth2/authorize?client_id=" + client.user.id + "&scope=bot&permissions=8) | [" + lang.help.supportserver + "](" + client.config.support + ") | [" + lang.help.voteontopgg + "](https://top.gg/bot/" + client.user.id + "/vote)") 18 | /* .addField("Commands — " + client.commands.size, "`avatar`, `8ball`, \n\n[" + lang.help.addtodiscord + "](https://discord.com/oauth2/authorize?client_id=" + client.user.id + "&scope=bot&permissions=8) | [" + lang.help.supportserver + "](" + client.config.support + ") | [" + lang.help.voteontopgg + "](https://top.gg/bot/" + client.user.id + "/vote)")*/ 19 | .setFooter(message.author.tag, message.author.avatarURL) 20 | .setThumbnail(client.user.avatarURL) 21 | message.channel.send(embed) 22 | 23 | 24 | } 25 | 26 | exports.conf = { 27 | enabled: true, 28 | guildOnly: true, 29 | aliases: [], 30 | permLevel: 0 31 | }; 32 | 33 | exports.help = { 34 | name: 'help' 35 | }; 36 | -------------------------------------------------------------------------------- /lang/en.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | embed: { 4 | // 5 | }, 6 | 7 | stats: { 8 | guilds: "Guilds", 9 | users: "Users", 10 | channels: "Channels", 11 | developers: "Developers" 12 | }, 13 | 14 | nsfw: { 15 | votereq: "To use NSFW Commands, you must vote for the bot 1 in 12 hours on **Top.gg**.", 16 | onreq: "To use NSFW Commands, please turn on the NSFW property of the channel." 17 | }, 18 | 19 | eightball: { 20 | questionreq: "Please enter a question. `8ball question`", 21 | answers_one: "Yes!", 22 | answers_two: "No...", 23 | answers_three: "What?", 24 | answers_four: "Seriously?", 25 | answers_five: "I don't want to answer that.", 26 | answers_six: "Never!", 27 | answers_seven: "Try again...", 28 | answers_eight: "You have to improve yourself.", 29 | answers_nine: "PLEASE DON'T ASK THIS QUESTION AGAIN!" 30 | }, 31 | 32 | serverinfo: { 33 | founder: "Founder", 34 | server_name: "Server Name", 35 | members: "Members", 36 | channels: "Channels", 37 | server_boost: "Server Boost", 38 | created: "Created" 39 | }, 40 | 41 | userinfo: { 42 | name: "Name", 43 | sname: "Name on Server", 44 | created: "Created", 45 | roles: "Roles" 46 | }, 47 | 48 | help: { 49 | title: "English", 50 | supportedlanguages: "Supported Languages:", 51 | addtodiscord: "Add to Discord", 52 | supportserver: "Support Server", 53 | voteontopgg: "Vote on Top.gg", 54 | cstaff: "Staff", 55 | cnsfw: "NSFW", 56 | cother: "Other" 57 | }, 58 | 59 | ban: { 60 | userreq: "Please specify a user. `ban user reason`", 61 | usernf: "User not found!", 62 | usernb: "I can't ban the authorities!", 63 | nreason: "Unspecified", 64 | user: "User", 65 | reason: "Reason", 66 | unban: "Unban" 67 | }, 68 | 69 | unban: { 70 | idreq: "Please enter a user ID. `unban user_id`", 71 | idreqq: "You must enter a user ID!", 72 | usernf: "User not found!", 73 | succ: "User has unbanned." 74 | }, 75 | 76 | perm: { 77 | manage_guild: "You must have `Manage Server` permission to use the command.", 78 | ban_members: "You must have `Ban Members` permission to use the command." 79 | }, 80 | 81 | lang: { 82 | err: "This language is already set.", 83 | msg: "Please specify a language. `lang az/en/es/tr`" 84 | } 85 | 86 | }; 87 | -------------------------------------------------------------------------------- /lang/tr.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | embed: { 4 | // 5 | }, 6 | 7 | stats: { 8 | guilds: "Sunucular", 9 | users: "Kullanıcılar", 10 | channels: "Kanallar", 11 | developers: "Geliştiriciler" 12 | }, 13 | 14 | nsfw: { 15 | votereq: "NSFW Komutlarını kullanmak için, **Top.gg** üzerinden bota 12 saatte 1 oy vermelisiniz.", 16 | onreq: "NSFW Komutlarını kullanmak için lütfen kanalın NSFW özelliğini açın." 17 | }, 18 | 19 | eightball: { 20 | questionreq: "Lütfen bir soru girin. `8ball soru`", 21 | answers_one: "Evet!", 22 | answers_two: "Hayır...", 23 | answers_three: "Ne?", 24 | answers_four: "Ciddi?", 25 | answers_five: "Buna cevap vermek istemiyorum.", 26 | answers_six: "Asla!", 27 | answers_seven: "Tekrar deneyim...", 28 | answers_eight: "Kendini geliştirmelisin.", 29 | answers_nine: "LÜTFEN BU SORUYU TEKRAR SORMAYINIZ!" 30 | }, 31 | 32 | serverinfo: { 33 | founder: "Kurucu", 34 | server_name: "Sunucu İsmi", 35 | members: "Üyeler", 36 | channels: "Kanallar", 37 | server_boost: "Sunucu Takviyesi", 38 | created: "Yaratıldı" 39 | }, 40 | 41 | userinfo: { 42 | name: "İsmi", 43 | sname: "Sunucudaki İsmi", 44 | created: "Yaratıldı", 45 | roles: "Rolleri" 46 | }, 47 | 48 | help: { 49 | title: "Türkçe", 50 | supportedlanguages: "Desteklenen diller:", 51 | addtodiscord: "Discord'a ekle", 52 | supportserver: "Destek Sunucusu", 53 | voteontopgg: "Top.gg'de oy verin", 54 | cstaff: "Yetkili", 55 | cnsfw: "NSFW", 56 | cother: "Diğer" 57 | }, 58 | 59 | ban: { 60 | userreq: "Lütfen bir kullanıcı belirtin. `ban kullanıcı sebep`", 61 | usernf: "Kullanıcı bulunamadı!", 62 | usernb: "Yetkilileri yasaklayamam!", 63 | nreason: "Belirtilmemiş", 64 | user: "Kullanıcı", 65 | reason: "Sebep", 66 | unban: "Yasağı Kaldır" 67 | }, 68 | 69 | unban: { 70 | idreq: "Bir kullanıcı kimliği girin. `unban kullanıcı_id`", 71 | idreqq: "Bir kullanıcı kimliği girmelisiniz!", 72 | usernf: "Kullanıcı bulunamadı!", 73 | succ: "Kullanıcı yasağı kaldırıldı." 74 | }, 75 | 76 | perm: { 77 | manage_guild: "Komutu kullanmak için `Sunucuyu Yönet` iznine sahip olmalısınız.", 78 | ban_members: "Komutu kullanmak için `Üyeleri Yasakla` iznine sahip olmalısınız." 79 | }, 80 | 81 | lang: { 82 | err: "Bu dil zaten ayarlanmış.", 83 | msg: "Lütfen bir dil belirtin. `lang az/en/es/tr`" 84 | } 85 | 86 | }; 87 | -------------------------------------------------------------------------------- /lang/es.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | embed: { 4 | // 5 | }, 6 | 7 | stats: { 8 | guilds: "Gremios", 9 | users: "Usuarias", 10 | channels: "Canales", 11 | developers: "Desarrolladoras" 12 | }, 13 | 14 | nsfw: { 15 | votereq: "Para usar los comandos NSFW, debe votar por el bot 1 en 12 horas en **Top.gg**.", 16 | onreq: "Para usar los comandos NSFW, active la propiedad NSFW del canal." 17 | }, 18 | 19 | eightball: { 20 | questionreq: "Por favor ingrese una pregunta. `8ball pregunta`", 21 | answers_one: "Sí!", 22 | answers_two: "No...", 23 | answers_three: "Qué?", 24 | answers_four: "Seriamente?", 25 | answers_five: "No quiero contestar eso.", 26 | answers_six: "Nunca!", 27 | answers_seven: "Intentar otra vez...", 28 | answers_eight: "Tienes que mejorarte a ti mismo.", 29 | answers_nine: "POR FAVOR NO HAGA ESTA PREGUNTA OTRA VEZ!" 30 | }, 31 | 32 | serverinfo: { 33 | founder: "Fundador", 34 | server_name: "Nombre del servidor", 35 | members: "Miembros", 36 | channels: "Canales", 37 | server_boost: "Mejora del Servidor", 38 | created: "Fue creado" 39 | }, 40 | 41 | userinfo: { 42 | name: "Nombre", 43 | sname: "Nombre en el servidor", 44 | created: "Fue creado", 45 | roles: "Roles" 46 | }, 47 | 48 | help: { 49 | title: "Español", 50 | supportedlanguages: "Idiomas admitidos:", 51 | addtodiscord: "Agregar a la discordia", 52 | supportserver: "Servidor de soporte", 53 | voteontopgg: "Votar en Top.gg", 54 | cstaff: "Personal", 55 | cnsfw: "NSFW", 56 | cother: "Otra" 57 | }, 58 | 59 | ban: { 60 | userreq: "Por favor especifique una usuario. `ban usuaria razón`", 61 | usernf: "Usuario no encontrado!", 62 | usernb: "No puedo prohibir a las autoridades!", 63 | nreason: "Sin especificar", 64 | user: "Usuaria", 65 | reason: "Razón", 66 | unban: "Eliminar prohibición" 67 | }, 68 | 69 | unban: { 70 | idreq: "Ingrese un ID de usuario. `unban usuaria_id`", 71 | idreqq: "Debes ingresar una identificación de usuario!", 72 | usernf: "Usuario no encontrado!", 73 | succ: "La usuario ha desbloqueado." 74 | }, 75 | 76 | perm: { 77 | manage_guild: "Debe tener permiso de `Administrar servidor` para usar el comando.", 78 | ban_members: "Debe tener permiso de `Prohibir miembros` para usar el comando." 79 | }, 80 | 81 | lang: { 82 | err: "Este idioma ya está configurado.", 83 | msg: "Especifique un idioma. `lang az/en/es/tr`" 84 | } 85 | 86 | }; 87 | -------------------------------------------------------------------------------- /lang/az.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | embed: { 4 | // 5 | }, 6 | 7 | stats: { 8 | guilds: "Gildiyalar", 9 | users: "İstifadəçilər", 10 | channels: "Kanallar", 11 | developers: "Yaradıcılar" 12 | }, 13 | 14 | nsfw: { 15 | votereq: "NSFW əmrlərindən istifadə etmək üçün botu **Top.gg**'də hər 12 saatdan bir qiymətləndirməlisiniz.", 16 | onreq: "NSFW Komutlarını istifadə etmək üçün kanalın NSFW xüsusiyyətini açın." 17 | }, 18 | 19 | eightball: { 20 | questionreq: "Zəhmət olmasa bir sual daxil edin. `8ball sual`", 21 | answers_one: "Bəli!", 22 | answers_two: "Yox...", 23 | answers_three: "Nə?", 24 | answers_four: "Ciddi?", 25 | answers_five: "Buna cavab vermək istəmirəm.", 26 | answers_six: "Heç vaxt!", 27 | answers_seven: "Yenidən cəhd elə...", 28 | answers_eight: "Özünüzü inkişaf etdirməlisiniz.", 29 | answers_nine: "Lütfən bu sualı təkrar verməyin!" 30 | }, 31 | 32 | serverinfo: { 33 | founder: "Təsisçi", 34 | server_name: "Server Adı", 35 | members: "Üzvlər", 36 | channels: "Kanallar", 37 | server_boost: "Server Artırma", 38 | created: "Yarandı" 39 | }, 40 | 41 | userinfo: { 42 | name: "Ad", 43 | sname: "Serverdəki Ad", 44 | created: "Yarandı", 45 | roles: "Rollar" 46 | }, 47 | 48 | help: { 49 | title: "Azərbaycanca", 50 | supportedlanguages: "Dəstəklənən dillər:", 51 | addtodiscord: "Discord'a əlavə edin", 52 | supportserver: "Serverə dəstək", 53 | voteontopgg: "Top.gg'də səs verin", 54 | cstaff: "Heyət", 55 | cnsfw: "NSFW", 56 | cother: "Digər" 57 | }, 58 | 59 | ban: { 60 | userreq: "Zəhmət olmasa bir istifadəçi göstərin. `ban istifadəçi səbəb`", 61 | usernf: "İstifadəçi tapılmadı!", 62 | usernb: "Səlahiyyətlilərə qadağa qoya bilmərəm!", 63 | nreason: "Dəqiqləşdirilməmiş", 64 | user: "İstifadəçi", 65 | reason: "Səbəb", 66 | unban: "Qadağanı silin" 67 | }, 68 | 69 | unban: { 70 | idreq: "Zəhmət olmasa istifadəçi identifikatoru daxil edin. `unban istifadəçi_id`", 71 | idreqq: "Bir istifadəçi ID daxil etməlisiniz!", 72 | usernf: "İstifadəçi tapılmadı!", 73 | succ: "İstifadəçi qadağası ləğv edildi." 74 | }, 75 | 76 | perm: { 77 | manage_guild: "Əmrdən istifadə etmək üçün `Serveri İdarə` etmə icazəniz olmalıdır.", 78 | ban_members: "Əmrdən istifadə etmək üçün `Üzvləri qadağan edin` etmə icazəniz olmalıdır." 79 | }, 80 | 81 | lang: { 82 | err: "Bu dil artıq qurulub.", 83 | msg: "Zəhmət olmasa bir dil göstərin. `lang az/en/es/tr`" 84 | } 85 | 86 | }; 87 | -------------------------------------------------------------------------------- /commands/user-info.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const moment = require('moment'); 4 | 5 | exports.run = async (client, message, args) => { 6 | 7 | let language = db.fetch(`lang_${message.guild.id}`) 8 | if (language === null) language = client.config.mainLang 9 | const lang = require(`../lang/${language}.js`) 10 | 11 | let user; 12 | 13 | if (message.mentions.users.first()) { 14 | user = message.mentions.users.first(); 15 | } else { 16 | user = message.author; 17 | } 18 | 19 | var created = '' 20 | if(moment(user.createdAt).format('MM') === '01') { 21 | var created = `${moment(user.createdAt).format('DD')} 01 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 22 | } 23 | if(moment(user.createdAt).format('MM') === '02') { 24 | var created = `${moment(user.createdAt).format('DD')} 02 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 25 | } 26 | if(moment(user.createdAt).format('MM') === '03') { 27 | var created = `${moment(user.createdAt).format('DD')} 03 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 28 | } 29 | if(moment(user.createdAt).format('MM') === '04') { 30 | var created = `${moment(user.createdAt).format('DD')} 04 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 31 | } 32 | if(moment(user.createdAt).format('MM') === '05') { 33 | var created = `${moment(user.createdAt).format('DD')} 05 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 34 | } 35 | if(moment(user.createdAt).format('MM') === '06') { 36 | var created = `${moment(user.createdAt).format('DD')} 06 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 37 | } 38 | if(moment(user.createdAt).format('MM') === '07') { 39 | var created = `${moment(user.createdAt).format('DD')} 07 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 40 | } 41 | if(moment(user.createdAt).format('MM') === '08') { 42 | var created = `${moment(user.createdAt).format('DD')} 08 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 43 | } 44 | if(moment(user.createdAt).format('MM') === '09') { 45 | var created = `${moment(user.createdAt).format('DD')} 09 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 46 | } 47 | if(moment(user.createdAt).format('MM') === '10') { 48 | var created = `${moment(user.createdAt).format('DD')} 10 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 49 | } 50 | if(moment(user.createdAt).format('MM') === '11') { 51 | var created = `${moment(user.createdAt).format('DD')} 11 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 52 | } 53 | if(moment(user.createdAt).format('MM') === '12') { 54 | var created = `${moment(user.createdAt).format('DD')} 12 ${moment(user.createdAt).format('YYYY HH:mm:ss')} ` 55 | } 56 | 57 | const member = message.guild.member(user); 58 | const embed = new Discord.RichEmbed() 59 | .setColor(client.config.embedColor) 60 | .setAuthor(client.user.username, client.user.avatarURL) 61 | .setFooter(message.author.tag, message.author.avatarURL) 62 | .setThumbnail(user.avatarURL + "?size=2048") 63 | .addField(lang.userinfo.name, user.bot ? `:robot: ${user.tag}` : ":bust_in_silhouette: " + user.tag + "\n" + user.id) 64 | .addField(lang.userinfo.sname, `${member.nickname !== null ? `${member.nickname}` : user.username}`) 65 | .addField(lang.userinfo.created, created) 66 | .addField(lang.userinfo.roles, `${member.roles.filter(r => r.name !== "@everyone").map(r => r).join(', ') ? member.roles.filter(r => r.name !== "@everyone").map(r => r).join(', ') : '-'}`) 67 | message.channel.send({embed}); 68 | } 69 | 70 | exports.conf = { 71 | enabled: true, 72 | guildOnly: true, 73 | aliases: [], 74 | permLevel: 0 75 | }; 76 | 77 | exports.help = { 78 | name: 'user-info' 79 | }; 80 | -------------------------------------------------------------------------------- /commands/server-info.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db') 3 | const moment = require('moment'); 4 | 5 | exports.run = async (client, message, args) => { 6 | 7 | let language = db.fetch(`lang_${message.guild.id}`) 8 | if (language === null) language = client.config.mainLang 9 | const lang = require(`../lang/${language}.js`) 10 | 11 | var region = '' 12 | if(message.guild.region === "russia") { 13 | var region = ':flag_ru:' 14 | } 15 | if(message.guild.region === "us-west") { 16 | var region = ':flag_us: ' 17 | } 18 | if(message.guild.region === "us-south") { 19 | var region = ':flag_us: ' 20 | } 21 | if(message.guild.region === "us-east") { 22 | var region = ':flag_us: ' 23 | } 24 | if(message.guild.region === "us-central") { 25 | var region = ':flag_us: ' 26 | } 27 | if(message.guild.region === "brazil") { 28 | var region = ':flag_br:' 29 | } 30 | if(message.guild.region === "singapore") { 31 | var region = ':flag_sg:' 32 | } 33 | if(message.guild.region === "sydney") { 34 | var region = ':flag_sh:' 35 | } 36 | if(message.guild.region === "eu-west") { 37 | var region = ':flag_eu:' 38 | } 39 | if(message.guild.region === "eu-south") { 40 | var region = ':flag_eu:' 41 | } 42 | if(message.guild.region === "eu-east") { 43 | var region = ':flag_eu:' 44 | } 45 | if(message.guild.region === "eu-central") { 46 | var region = ':flag_eu:' 47 | } 48 | if(message.guild.region === "hongkong") { 49 | var konum = 'Hong Kong :flag_hk: ' 50 | } 51 | if(message.guild.region === "europe") { 52 | var konum = 'Avrupa :flag_eu: ' 53 | } if(message.guild.region === "japan") { 54 | var konum = 'Japonya :flag_jp:' 55 | } 56 | var created = '' 57 | if(moment(message.guild.createdAt).format('MM') === '01') { 58 | var created = `${moment(message.guild.createdAt).format('DD')} 01 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 59 | } 60 | if(moment(message.guild.createdAt).format('MM') === '02') { 61 | var created = `${moment(message.guild.createdAt).format('DD')} 02 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 62 | } 63 | if(moment(message.guild.createdAt).format('MM') === '03') { 64 | var created = `${moment(message.guild.createdAt).format('DD')} 03 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 65 | } 66 | if(moment(message.guild.createdAt).format('MM') === '04') { 67 | var created = `${moment(message.guild.createdAt).format('DD')} 04 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 68 | } 69 | if(moment(message.guild.createdAt).format('MM') === '05') { 70 | var created = `${moment(message.guild.createdAt).format('DD')} 05 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 71 | } 72 | if(moment(message.guild.createdAt).format('MM') === '06') { 73 | var created = `${moment(message.guild.createdAt).format('DD')} 06 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 74 | } 75 | if(moment(message.guild.createdAt).format('MM') === '07') { 76 | var created = `${moment(message.guild.createdAt).format('DD')} 07 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 77 | } 78 | if(moment(message.guild.createdAt).format('MM') === '08') { 79 | var created = `${moment(message.guild.createdAt).format('DD')} 08 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 80 | } 81 | if(moment(message.guild.createdAt).format('MM') === '09') { 82 | var created = `${moment(message.guild.createdAt).format('DD')} 09 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 83 | } 84 | if(moment(message.guild.createdAt).format('MM') === '10') { 85 | var created = `${moment(message.guild.createdAt).format('DD')} 10 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 86 | } 87 | if(moment(message.guild.createdAt).format('MM') === '11') { 88 | var created = `${moment(message.guild.createdAt).format('DD')} 11 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 89 | } 90 | if(moment(message.guild.createdAt).format('MM') === '12') { 91 | var created = `${moment(message.guild.createdAt).format('DD')} 12 ${moment(message.guild.createdAt).format('YYYY HH:mm:ss')} ` 92 | } 93 | 94 | const embed = new Discord.RichEmbed() 95 | .setColor(client.config.embedColor) 96 | .setAuthor(client.user.username, client.user.avatarURL) 97 | .setFooter(message.author.tag, message.author.avatarURL) 98 | .setThumbnail(message.guild.iconURL + "?size=2048") 99 | .addField(lang.serverinfo.founder, `${client.user.tag} ||(${message.guild.owner || "@"})|| \n${message.guild.ownerID}`) 100 | .addField(lang.serverinfo.server_name, region + message.guild.name + "\n" + message.guild.id) 101 | .addField(lang.serverinfo.members + ' ['+message.guild.memberCount+']', `:green_circle: ${message.guild.members.filter(m => m.user.presence.status === "online").size}, \n:red_circle: ${message.guild.members.filter(m => m.user.presence.status === "dnd").size}, \n:yellow_circle: ${message.guild.members.filter(m => m.user.presence.status === "idle").size}, \n:white_circle: ${message.guild.members.filter(m => m.user.presence.status === "offline").size}, \n:robot: ${message.guild.members.filter(m => m.user.bot).size}`) 102 | .addField(lang.serverinfo.channels + ' ['+message.guild.channels.size+']', `:keyboard: ${message.guild.channels.filter(c => c.type === "text").size}, \n:speaker: ${message.guild.channels.filter(c => c.type === "voice").size}, \n:file_folder: ${message.guild.channels.filter(c => c.type === "category").size}`) 103 | .addField(lang.serverinfo.server_boost, `${message.guild.premiumSubscriptionCount ? message.guild.premiumSubscriptionCount : '0'}/${message.guild.premiumTier ? message.guild.premiumTier : '0'}`) 104 | .addField(lang.serverinfo.created, created) 105 | message.channel.send({embed}); 106 | } 107 | 108 | exports.conf = { 109 | enabled: true, 110 | guildOnly: true, 111 | aliases: [], 112 | permLevel: 0 113 | }; 114 | 115 | exports.help = { 116 | name: 'server-info' 117 | }; 118 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const client = new Discord.Client(); 3 | const ms = require('ms'); 4 | const fs = require('fs'); 5 | const db = require('quick.db'); 6 | const { 7 | promisify 8 | } = require('util') 9 | const chalk = require('chalk'); 10 | const moment = require('moment'); 11 | require('./util/eventLoader')(client); 12 | require("moment-duration-format"); 13 | const m = require('ms'); 14 | const mo = require('moment'); 15 | const express = require('express'); 16 | const app = express(); 17 | const http = require('http'); 18 | const server = http.createServer(app); 19 | 20 | const log = message => { 21 | console.log(`${message}`); 22 | } 23 | 24 | 25 | 26 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 27 | client.config = { 28 | "token": "TOKEN", 29 | "dblToken": "DBL API TOKEN", // top.gg 30 | "prefix": "PREFIX", // ! 31 | "dmLog": "DMLOG CHANNEL ID", // 12345678912345 32 | "guildLog": "GUILDLOG CHANNEL ID", // 12345678912345 33 | "cmdLog": "CMDLOG CHANNEL ID", // 12345678912345 34 | "admin": "ADMIN ID", // 12345678912345 35 | "support": "SUPPORT SERVER INVITE", // https://discord.gg/123 36 | "mainLang": "en", // az/en/es/tr 37 | "embedColor": "EMBED COLOR", // #7289DA 38 | } 39 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 40 | 41 | 42 | 43 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 44 | client.on('message', async message => { 45 | if (message.content === '++fbb') { 46 | if (message.author.id !== client.config.admin) return; 47 | 48 | client.emit('guildMemberAdd', message.member || await message.guild.fetchMember(message.author)); 49 | } 50 | }); 51 | client.on('message', async message => { 52 | if (message.content === '++fhg') { 53 | if (message.author.id !== client.config.admin) return; 54 | client.emit('guildMemberRemove', message.member || await message.guild.fetchMember(message.author)); 55 | } 56 | }); 57 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 58 | 59 | 60 | 61 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 62 | client.on("message", msg => { 63 | if (msg.channel.type === "dm") { 64 | if (msg.author.id === client.user.id) return; 65 | const dm = new Discord.RichEmbed() 66 | .setThumbnail(msg.author.avatarURL) 67 | .setColor(client.config.embedColor) 68 | .addField(`User`, msg.author.tag) 69 | .addField(`Message`, msg.content) 70 | client.channels.get(client.config.dmLog).send(dm) 71 | } 72 | if (msg.channel.bot) return; 73 | }); 74 | 75 | client.on("guildCreate", guild => { 76 | const gAdd = new Discord.RichEmbed() 77 | .setColor("GREEN") 78 | .setThumbnail(guild.iconURL) 79 | .addField(`Bot`, ` 80 | Server : ${client.guilds.size.toLocaleString()} 81 | User : ${client.guilds.reduce((a, b) => a + b.memberCount, 0).toLocaleString()} 82 | Channel : ${client.channels.size.toLocaleString()} 83 | Ping : ${Math.round(client.ping)}ms 84 | `) 85 | .addField(`Server`, ` 86 | Name : ${guild.name} 87 | ID : ${guild.id} 88 | Owner : 89 | Total Member : ${guild.memberCount} 90 | `) 91 | client.channels.get(client.config.guildLog).send(gAdd) 92 | }); 93 | 94 | client.on("guildDelete", guild => { 95 | const gDelete = new Discord.RichEmbed() 96 | .setColor("RED") 97 | .setThumbnail(guild.iconURL) 98 | .addField(`Bot`, ` 99 | Server : ${client.guilds.size.toLocaleString()} 100 | User : ${client.guilds.reduce((a, b) => a + b.memberCount, 0).toLocaleString()} 101 | Channel : ${client.channels.size.toLocaleString()} 102 | Ping : ${Math.round(client.ping)}ms 103 | `) 104 | .addField(`Server`, ` 105 | Name : ${guild.name} 106 | ID : ${guild.id} 107 | Owner : 108 | Total Member : ${guild.memberCount} 109 | `) 110 | client.channels.get(client.config.guildLog).send(gDelete) 111 | }); 112 | 113 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 114 | 115 | 116 | 117 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 118 | client.on("messageUpdate", async (oldMsg, newMsg) => { 119 | let prefix = await db.fetch(`prefix_${newMsg.guild.id}`) || client.config.prefix 120 | if (newMsg.author.bot) return; 121 | if (!newMsg.content.startsWith(prefix)) return; 122 | let command = newMsg.content.split(' ')[0].slice(prefix.length) 123 | let params = newMsg.content.split(' ').slice(1) 124 | let perms = client.elevation(newMsg); 125 | let cmd; 126 | if (client.commands.has(command)) cmd = client.commands.get(command); 127 | else if (client.aliases.has(command)) cmd = client.commands.get(client.aliases.get(command)); 128 | if (cmd) { 129 | if (perms < cmd.conf.permLevel) return; 130 | cmd.run(client, newMsg, params, perms); 131 | } 132 | }); 133 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 134 | 135 | 136 | 137 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 138 | client.commands = new Discord.Collection(); 139 | client.aliases = new Discord.Collection(); 140 | fs.readdir('./commands/', (err, files) => { 141 | if (err) console.error(err); 142 | log(`Commands Loading: ${files.length}`); 143 | files.forEach(f => { 144 | let props = require(`./commands/${f}`); 145 | log(` ${props.help.name}.`); 146 | client.commands.set(props.help.name, props); 147 | props.conf.aliases.forEach(alias => { 148 | client.aliases.set(alias, props.help.name); 149 | }); 150 | }); 151 | }); 152 | client.reload = command => { 153 | return new Promise((resolve, reject) => { 154 | try { 155 | delete require.cache[require.resolve(`./commands/${command}`)]; 156 | let cmd = require(`./commands/${command}`); 157 | client.commands.delete(command); 158 | client.aliases.forEach((cmd, alias) => { 159 | if (cmd === command) client.aliases.delete(alias); 160 | }); 161 | client.commands.set(command, cmd); 162 | cmd.conf.aliases.forEach(alias => { 163 | client.aliases.set(alias, cmd.help.name); 164 | }); 165 | resolve(); 166 | } catch (e) { 167 | reject(e); 168 | } 169 | }); 170 | }; 171 | 172 | client.load = command => { 173 | return new Promise((resolve, reject) => { 174 | try { 175 | let cmd = require(`./commands/${command}`); 176 | client.commands.set(command, cmd); 177 | cmd.conf.aliases.forEach(alias => { 178 | client.aliases.set(alias, cmd.help.name); 179 | }); 180 | resolve(); 181 | } catch (e) { 182 | reject(e); 183 | } 184 | }); 185 | }; 186 | 187 | client.unload = command => { 188 | return new Promise((resolve, reject) => { 189 | try { 190 | delete require.cache[require.resolve(`./commands/${command}`)]; 191 | let cmd = require(`./commands/${command}`); 192 | client.commands.delete(command); 193 | client.aliases.forEach((cmd, alias) => { 194 | if (cmd === command) client.aliases.delete(alias); 195 | }); 196 | resolve(); 197 | } catch (e) { 198 | reject(e); 199 | } 200 | }); 201 | }; 202 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 203 | 204 | 205 | 206 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 207 | client.elevation = message => { 208 | if (!message.guild) { 209 | return; 210 | } 211 | let permlvl = 0; 212 | if (message.author.id === client.config.admin) permlvl = 4; 213 | return permlvl; 214 | }; 215 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 216 | 217 | client.login(client.config.token); 218 | --------------------------------------------------------------------------------