├── 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 |
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 |
--------------------------------------------------------------------------------