├── LICENSE ├── README.md ├── _config.yml ├── commands ├── anime.js ├── avatar.js ├── ban.js ├── bot.js ├── channel.js ├── commands.js ├── emojis.js ├── giverole.js ├── idenity.js ├── invite.js ├── kick.js ├── luck.js ├── member.js ├── meme.js ├── mute.js ├── own.js ├── ping.js ├── profile.js ├── register.js ├── role.js ├── roles.js ├── server.js ├── set-prefix.js ├── support.js ├── test.js ├── unmute.js ├── uptime.js └── user.js ├── data ├── botconfig.json ├── colors.json ├── commands.json ├── idenities.json ├── prefixes.json └── profile.json ├── index.js ├── package-lock.json └── start.bat /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 antidota 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # N A R O X; 2 | ![YATO,DEV](https://media.discordapp.net/attachments/477822666200580098/568624192946438145/JPEG_20190320_093241.jpg?width=300&height=300) 3 | 4 | #DEVELOPERS 5 | YATO#0018 6 | 7 | 8 | Discord server 9 | 10 | Discord Bot With some Customizable options and new Styles , u should try that man ! 11 | ### Features: 12 | - anime => display anime info 13 | - avatar => display user avatar 14 | - bot => display bot info 15 | - channel => display channel info 16 | - emojis => display emojis list 17 | - role => give someone a role 18 | - invite => display bot invite link 19 | - ping => display bot ping 20 | - roles => display roles list 21 | - server => display server info 22 | - user => epic command man ! you should try this ! for display userinfo 23 | ### Requires: 24 | - Node.js 25 | - [discord.js](https://www.npmjs.com/package/discord.js) 26 | - lots of Node.js modules check package.json 27 | # Installition. 28 | 1 -The Bot is Writted and runned by node.js download that [Node.js](https://nodejs.org/en/download/) 29 | 30 | 2 - press clone or download button and launch! 31 | 32 | `sometimes you need to install packages so try` 33 | ```fix 34 | npm install discord.js 35 | npm install common-tags 36 | npm install file-system 37 | npm install fs 38 | npm install mal-scraper 39 | npm install moment 40 | npm install node-url-shortener 41 | npm install os 42 | npm install pastebin-js 43 | npm install random-puppy 44 | npm install string-similarity 45 | npm install superagent 46 | ``` 47 | # Help ? 48 | 49 | if You Need Help Dm Me on Discord Tag; `YATO#0018`& 50 | or request Issues! 51 | # alpha. 52 | [![ALPHA](https://discordapp.com/api/guilds/690611470123139142/widget.png?style=banner2)](https://discord.gg/alpha) 53 | 54 | ` ALPHA is Here ` 55 | 56 | 57 | "ALPHA Is Best Arabic Server Developer" 58 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-hacker -------------------------------------------------------------------------------- /commands/anime.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const malscraper = require('mal-scraper'); 3 | const talkedRecently = new Set(); 4 | let moment = require("moment") 5 | const botconfig = require("../data/botconfig.json"); 6 | const fs = require("file-system") 7 | 8 | exports.run = async (client, message, args) => { 9 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 10 | const color = colors[message.guild.id].color || botconfig.color 11 | const search = `${args}`; 12 | let ok = client.emojis.get("555556347060551701") 13 | if(!search) return message.channel.send(`**${message.author} ${ok} | Please Type anime name **.`) 14 | let em = client.emojis.get("557362697482797066") 15 | const me = message.guild.members.get(client.user.id) 16 | var loal = message.member.displayHexColor 17 | if(loal === "#000000") loal = me.displayHexColor 18 | if(loal === "#000000") loal = color 19 | message.channel.send(`**${em} | Searching About; **`+"``"+search+"``").then(msg => { 20 | malscraper.getInfoFromName(search) 21 | .then((data) => { 22 | 23 | let charcters = data.characters.map(ch => `[${ch.name}](${ch.link}) , `).join("") 24 | let staff = data.staff.map(st => `[${st.name}](${st.link}) , `).join("") 25 | let embed = new Discord.RichEmbed() 26 | let title = data.japaneseTitle 27 | if(!charcters) return msg.edit(`**Sorry I Cant Find Any Result; `+"``"+search+"``"+` **.`); 28 | if(data.synonyms) title = data.japaneseTitle + ` [${data.synonyms}] ;` 29 | .setColor(loal) 30 | .setAuthor(`${data.title} Anime Information;`,data.picture || message.author.avatarURL || message.author.defaultAvatarURL) 31 | .setThumbnail(data.picture || message.author.avatarURL || message.author.defaultAvatarURL) 32 | .setFooter(`Informations By;`,"https://cdn.myanimelist.net/img/sp/icon/apple-touch-icon-256.png") 33 | .setTimestamp() 34 | .setDescription("```css"+` 35 | Title; ${title} 36 | Platform; ${data.type} 37 | Score; ${data.score} 38 | Scored By; ${data.scoreStats.slice(10)} 39 | Count Of People; ${data.members} 40 | Episodes; [${data.episodes}] ${data.duration} 41 | Studios; ${data.studios} 42 | Source; ${data.source} 43 | `+"```") 44 | .addField(`Characters;`,`${charcters}`,true) 45 | .addField(`Genres;`,`${data.genres}`,true) 46 | .addField(`Staff;`,`${staff}`,true) 47 | 48 | msg.edit(embed) 49 | }) }) 50 | .catch((err) => console.log(err)); 51 | 52 | 53 | talkedRecently.add(message.author.id); 54 | setTimeout(() => { 55 | // Removes the user from the set after a minute 56 | talkedRecently.delete(message.author.id); 57 | }, 3000); 58 | } 59 | 60 | module.exports.help = { 61 | name: "anime" 62 | } -------------------------------------------------------------------------------- /commands/avatar.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const fs = require("file-system") 3 | const botconfig = require("../data/botconfig.json"); 4 | const shortUrl = require('node-url-shortener'); 5 | 6 | module.exports.run = async (client, message, args) => { 7 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 8 | const color = colors[message.guild.id].color || botconfig.color 9 | var mention = message.mentions.users.first() || message.author 10 | var mentionuser = message.guild.member(mention) 11 | const me = message.guild.members.get(client.user.id) 12 | var loal = mentionuser.displayHexColor 13 | if(loal === "#000000") loal = me.displayHexColor 14 | if(loal === "#000000") loal = color 15 | let embed = new Discord.RichEmbed() 16 | .setAuthor(`${mention.tag}`) 17 | .setColor(`${loal}`) 18 | .setTimestamp() 19 | .setImage(`${mention.avatarURL}?size=128`) 20 | .setFooter(client.user.username,client.user.avatarURL) 21 | 22 | shortUrl.short(`${message.author.displayAvatarURL}`, function (err, avatarLink) { 23 | 24 | message.channel.send(`[ ${avatarLink} ]`,embed) 25 | }) 26 | } 27 | 28 | module.exports.help = { 29 | name: "avatar" 30 | } -------------------------------------------------------------------------------- /commands/ban.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | 3 | module.exports.run = async (bot, message, args) => { 4 | if (!message.member.hasPermission("BAN_MEMBERS")) return message.reply("You do not have the permission to execute this command!") 5 | let banMember = message.mentions.members.first() || message.guild.members.get(args[0]) 6 | if (!banMember) return message.reply("Couldn't find the user that you're trying to ban!") 7 | if(banMember.highestRole.position >= message.guild.member(message.author).highestRole.positon) { 8 | message.channel.send("**You Can't Ban The Administrator !!**") 9 | } 10 | let reason = args.slice(1).join(" ") 11 | if (!reason) { 12 | const reason = "No reason provided." 13 | } 14 | if (!message.guild.me.hasPermission("BAN_MEMBERS")) return message.reply("Please give me the permission `BAN_MEMBERS`") 15 | if (!banMember.bannable) return message.reply("I cannot ban this user.") 16 | message.delete() 17 | banMember.send(`You have been banned from \`${message.guild.name}\` for: ${reason}`).then(() => { 18 | message.guild.ban(banMember, { 19 | reason: `${reason}` 20 | }).catch(e => message.channel.send("An error has occured with the command. Try again or join the support guild.")) 21 | }).catch(err => message.guild.ban(banMember)) 22 | message.channel.send(`**${banMember.user.tag} has been banned.**`) 23 | } 24 | 25 | module.exports.help = { 26 | name:"ban" 27 | } 28 | -------------------------------------------------------------------------------- /commands/bot.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require('file-system'); 4 | const os = require("os"); 5 | var cpu = os.loadavg(); 6 | exports.run = (client, message) => { 7 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 8 | const color = colors[message.guild.id].color || botconfig.color; 9 | const me = message.guild.members.get(client.user.id); 10 | var loal = message.member.displayHexColor ; 11 | if(loal === "#000000") loal = me.displayHexColor; 12 | if(loal === "#000000") loal = color; 13 | let ms = client.uptime; 14 | let cd = 24 * 60 * 60 * 1000; // Calc days 15 | let ch = 60 * 60 * 1000; // Calc hours 16 | let cm = 60 * 1000; // Calc minutes 17 | let cs = 1000; // Calc seconds 18 | let days = Math.floor(ms / cd); 19 | let dms = days * cd; // Days, in ms 20 | let hours = Math.floor((ms - dms) / ch); 21 | let hms = hours * ch; // Hours, in ms 22 | let minutes = Math.floor((ms - dms - hms) / cm); 23 | let mms = minutes * cm; // Minutes, in ms 24 | let seconds = Math.round((ms - dms - hms - mms) / cs); 25 | if (seconds === 60) { 26 | minutes++; // Increase by 1 27 | seconds = 0; 28 | } 29 | if (minutes === 60) { 30 | hours++; // Inc by 1 31 | minutes = 0; 32 | } 33 | if (hours === 24) { 34 | days++; // Increase by 1 35 | hours = 0; 36 | } 37 | let dateStrings = []; 38 | if (days === 1) { 39 | dateStrings.push('1 day'); 40 | } else if (days > 1) { 41 | dateStrings.push('' + String(days) + '** days'); 42 | } 43 | if (hours === 1) { 44 | dateStrings.push('1 hour'); 45 | } else if (hours > 1) { 46 | dateStrings.push('' + String(hours) + '** hours'); 47 | } 48 | if (minutes === 1) { 49 | dateStrings.push('1 minute'); 50 | } else if (minutes > 1) { 51 | dateStrings.push('' + String(minutes) + ' minutes'); 52 | } 53 | if (seconds === 1) { 54 | dateStrings.push('1 second'); 55 | } else if (seconds > 1) { 56 | dateStrings.push('' + String(seconds) + ' seconds'); 57 | } 58 | let dateString = ''; 59 | for (let i = 0; i < dateStrings.length - 1; i++) { 60 | dateString += dateStrings[i]; 61 | dateString += ', '; 62 | } 63 | if (dateStrings.length >= 2) { 64 | dateString = dateString.slice(0, dateString.length - 2) + dateString.slice(dateString.length - 1); 65 | dateString += 'and '; 66 | } 67 | dateString += dateStrings[dateStrings.length - 1]; 68 | let embed = new Discord.RichEmbed() 69 | .setColor(loal) 70 | .setAuthor(client.user.username) 71 | .setThumbnail(client.user.avatarURL) 72 | .setDescription("```js"+` 73 | ID; ${client.user.id} 74 | Guilds; ${client.guilds.size} 75 | Users; ${client.users.size} 76 | Uptime; ${days}d. ${hours}h. ${minutes}m . ${seconds}s 77 | [${dateString}]`+"```") 78 | .setFooter(`✽ Client ReadyAt;`,client.user.avatarURL) 79 | .addField(`✽ Ping;`,`${Math.round(client.ping)} ms`,true) 80 | .addField(`✽ Narox Support;`,`[Click Here](https://discord.gg/ZeFUEpn)`,true) 81 | .addField(`✽ FrameWork;`,` 82 | Discord.JS; [11.3] 83 | Node.js; [6.9.0]`,true) 84 | .addField(`✽ Status;`,` 85 | MemoryUsage; ${Math.round(process.memoryUsage().rss / 1024 / 1024)} MB 86 | CpuUsage; ${Math.ceil(cpu[1] * 100) / 10} %`,true) 87 | .setTimestamp(client.readyTimestamp); 88 | message.channel.send(`[ ${message.author} ] `,embed); 89 | 90 | } ; 91 | module.exports.help = { 92 | name: 'bot' 93 | }; -------------------------------------------------------------------------------- /commands/channel.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const moment = require("moment"); 3 | const fs = require("file-system") 4 | const botconfig = require("../data/botconfig.json"); 5 | module.exports.run = async (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | let sorry = client.emojis.get("555556287589515274") 9 | args = message.content.split(" ").slice(1).join(" ").replace(' ','-') 10 | let channel = message.mentions.channels.first() 11 | let please = client.emojis.get("555556306346573838") 12 | if(!channel){ 13 | channel = message.guild.channels.find("name",`${args}`) 14 | // if(!args) return message.channel.send(`**${sorry} | Type channelName or #channel please ** .`) 15 | } 16 | if(!channel){ 17 | args = message.content.split(" ").slice(1).join(" ") 18 | channel = message.guild.channels.find("name",`${args}`) 19 | } 20 | if(!channel && message.member.voiceChannel) 21 | channel = message.member.voiceChannel 22 | if(!channel) channel = message.channel//return message.channel.send(`**${please} | Type channelName or #channel please ** .`) 23 | 24 | 25 | var me = message.guild.members.get(client.user.id) 26 | var loal = message.member.displayHexColor 27 | if(loal === "#000000") loal = me.displayHexColor 28 | if(loal === "#000000") loal = color 29 | var type = channel.type 30 | let nsfw = channel.nsfw 31 | if(type == "voice") 32 | type = "Voice" 33 | if(type == "text") 34 | type = "Text" 35 | 36 | let embed = new Discord.RichEmbed() 37 | .setColor(loal) 38 | .setAuthor(`${channel.name} Channel Information;`, message.guild.iconURL) 39 | if(type == "Text"){ 40 | .setDescription("```js"+` 41 | ID; ${channel.id} 42 | Type; ${type} 43 | NFSW; ${nsfw} 44 | 45 | `+"```") 46 | } 47 | .setThumbnail(message.author.avatarURL || message.author.defaultAvatarURL) 48 | 49 | if(type == "Text"){ 50 | if(channel.topic){ 51 | .addField(`ChannelTopic;`,"```js"+` 52 | ${channel.topic}`+"```",true) 53 | } 54 | 55 | 56 | } 57 | 58 | 59 | if(type == "Voice"){ 60 | if(channel.id == message.member.voiceChannel.id){ 61 | let yaw = client.emojis.get("555235020306907146") 62 | .setDescription(`You Already In VoiceChannel ${yaw};`+"```js"+` 63 | ID; ${channel.id} 64 | ChannelType; ${type} 65 | `+"```") 66 | } 67 | if(channel.id != message.member.voiceChannel.id) { 68 | .setDescription("```js"+` 69 | ID; ${channel.id} 70 | ChannelType; ${type} 71 | `+"```") 72 | } 73 | if(channel.members.size != 0) { 74 | if(channel.members.size < 10) { 75 | .addField(`VoiceOnline;`,`${channel.members.map(r => `${r}`).join(" ")} [${channel.members.size}]`,true) 76 | } 77 | if(channel.members.size > 10){ 78 | let yaw = client.emojis.get("555235020306907146") 79 | .addField(`VoiceOnline;`,`(${yaw}) -> [${channel.members.size}]`,true) 80 | }}} 81 | if(channel.parent) { 82 | .addField(`Category`,`**Name; **${channel.parent.name} 83 | **Childrens;** ${channel.parent.children.map(r => `${r};`).join("")} 84 | **ID;** ${channel.parent.id}`,true) 85 | } 86 | .setTimestamp(channel.createdTimestamp) 87 | .setFooter(`Channel CreatedAt;`,message.guild.iconURL || message.author.avatarURL || message.author.defaultAvatarURL) 88 | message.channel.send(embed) 89 | } 90 | 91 | module.exports.help = { 92 | name:"channel" 93 | } 94 | 95 | -------------------------------------------------------------------------------- /commands/commands.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | 8 | 9 | let prefix = botconfig.prefix 10 | const color = colors[message.guild.id].color || botconfig.color 11 | 12 | var me = message.guild.members.get(client.user.id) 13 | var loal = message.member.displayHexColor 14 | if(loal === "#000000") loal = me.displayHexColor 15 | if(loal === "#000000") loal = color 16 | let embed = new Discord.RichEmbed() 17 | .setColor(loal) 18 | .setAuthor(`N A R O X CommandsList;`,message.author.avatarURL || message.author.defaultAvatarURL) 19 | .setDescription("|| ---------------------------------------------------------- ||```css"+` 20 | SelfCommands; 21 | ---------------------------------------- 22 | [${prefix}user] GuildMember Informations; 23 | [${prefix}idenity] User IdenityCard; 24 | [${prefix}ping] Client / Bot Internet Connection; 25 | [${prefix}avatar] User Avatar; 26 | [${prefix}anime] Anime Informations; 27 | [${prefix}bot] Bot Informations / Status; 28 | ServersCommands; 29 | [${prefix}server] Guild / Server Informations; 30 | [${prefix}channel] Channel Information; 31 | [${prefix}emojis] Server Emojis List; 32 | [${prefix}role] Gives Someone Role; 33 | [${prefix}roleinfo] Role Informations; 34 | [${prefix}members] Members Status; 35 | [${prefix}roles] Server Roles List; 36 | [${prefix}channel] Channel Informations; 37 | [] 38 | `+"```") 39 | .setFooter(client.user.username,client.user.avatarURL) 40 | message.channel.send(embed) 41 | 42 | } 43 | module.exports.help = { 44 | name: "commands" 45 | } -------------------------------------------------------------------------------- /commands/emojis.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const fs = require("file-system") 3 | const botconfig = require("../data/botconfig.json"); 4 | 5 | module.exports.run = async (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | const me = message.guild.members.get(client.user.id) 9 | var loal = message.member.displayHexColor 10 | if(loal === "#000000") loal = me.displayHexColor 11 | if(loal === "#000000") loal = color 12 | let emojis = message.guild.emojis.map(r => `${r}`).sort((a, b) => a < b).join(`,`) 13 | let emojisanimated = message.guild.emojis.filter(a=> a.animated).map(r => `${r}`).sort((a, b) => a < b).join(`,`) 14 | let emojisold = message.guild.emojis.filter(a=> !a.animated).map(r => `${r}`).sort((a, b) => a < b).join(`,`) 15 | 16 | let embed = new Discord.RichEmbed() 17 | .setColor(loal) 18 | .setAuthor(`${message.guild.name} Emojis List;`,message.guild.iconURL) 19 | .setDescription(`Many; ${message.guild.emojis.size}\n Animated; ${emojisanimated} [${message.guild.emojis.filter(a=> a.animated).size}]\n Normal; ${emojisold} [${message.guild.emojis.filter(a=> !a.animated).size}]`) 20 | .setFooter(client.user.username,client.user.avatarURL) 21 | .setTimestamp() 22 | message.channel.send(embed) 23 | } 24 | 25 | 26 | 27 | module.exports.help = { 28 | name: "emojis" 29 | } -------------------------------------------------------------------------------- /commands/giverole.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | const fs = require("file-system") 4 | 5 | const botconfig = require("../data/botconfig.json"); 6 | 7 | module.exports.run = async (client, message, args) => { 8 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 9 | const color = colors[message.guild.id].color || botconfig.color 10 | let guild = message.guild 11 | let sorry = client.emojis.get("555556287589515274") 12 | if(!message.member.hasPermission("ADMINISTRATOR")) return; 13 | let role = message.mentions.roles.first(); 14 | let params = message.content.split(" ").slice(2).join(" ") 15 | if (role === undefined) { 16 | role = guild.roles.get(params) || guild.roles.find("name", params); 17 | let sorry = client.emojis.get("555556287589515274") 18 | } 19 | let please = client.emojis.get("555556306346573838") 20 | var mention = message.mentions.members.first() 21 | if(!mention) return message.channel.send(`**${sorry} | Mention Someone Please**`) 22 | if(!params) return message.channel.send(`**${please} | Type RoleName Please . **`) 23 | if (!role) return message.channel.send(`**${sorry} | Sorry I Cant Find Any Result; `+"``"+params+"``"+` **.`); 24 | if (mention.roles.has(role.id)) { 25 | mention.removeRole(role).then(r => { 26 | let roles = mention.roles.map(r => `${r};`).join("") 27 | var loal = role.hexColor 28 | if(loal === "#000000") loal = "#ec8f8f" 29 | let embed = new Discord.RichEmbed() 30 | .setAuthor(`${role.name} Role Removed;`,mention.user.avatarURL) 31 | .setTimestamp() 32 | .setColor(loal) 33 | .setDescription("```js"+` 34 | ID; ${role.id} 35 | Color; ${role.hexColor} 36 | BotRole; ${role.managed} 37 | `+"```") 38 | .addField(`UserRoles;`,`Many; ${mention.roles.size - 1}\n Counter; ${roles}`) 39 | message.channel.send(embed) 40 | }).catch(err => { 41 | let sorry = client.emojis.get("555556287589515274") 42 | message.channel.send(`**${sorry} | I Miss `+"``"+`ADMINISTRATOR`+"``"+` Permissions . **`) 43 | }) 44 | } 45 | if(!mention.roles.has(role.id)){ 46 | mention.addRole(role).then(s => { 47 | let roles = mention.roles.map(r => `${r};`).join("") 48 | const me = message.guild.members.get(client.user.id) 49 | var loal = role.hexColor 50 | if(loal === "#000000") loal = color 51 | let embed = new Discord.RichEmbed() 52 | .setAuthor(`${role.name} Role Added;`,mention.user.avatarURL) 53 | .setTimestamp() 54 | .setColor(loal) 55 | .setDescription("```js"+` 56 | ID; ${role.id} 57 | Color; ${role.hexColor} 58 | BotRole; ${role.managed} 59 | `+"```") 60 | .addField(`UserRoles;`,`Many; ${mention.roles.size - 1}\n Counter; ${roles}`) 61 | message.channel.send(embed) 62 | }).catch(err => { 63 | let sorry = client.emojis.get("555556287589515274") 64 | message.channel.send(`**${sorry} | I Misss `+"``"+`ADMINISTRATOR`+"``"+` Permissions . **`) 65 | }) 66 | }} 67 | 68 | 69 | 70 | module.exports.help = { 71 | name: "role" 72 | } -------------------------------------------------------------------------------- /commands/idenity.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const color = botconfig.color 4 | const fs = require("file-system") 5 | module.exports.run = async (client, message, args) => { 6 | let prefixes = JSON.parse(fs.readFileSync("./data/prefixes.json", "utf8")); 7 | let prefix = botconfig.prefix 8 | let idenities = JSON.parse(fs.readFileSync("./data/idenities.json", "utf8")); 9 | let mention = message.mentions.users.first() || message.author; 10 | if(!idenities[mention.id] && mention == message.mentions.users.first()) return message.channel.send(`**${mention} | Dont Have Any Idenity Card . **`) 11 | if(!idenities[mention.id] && mention == message.author) return message.channel.send(`**${message.author} | You Dont Have Any IdenityCard Try `+"``"+` ${prefix}register`+"``"+` **.`) 12 | var me = message.guild.members.get(client.user.id) 13 | var loal = message.member.displayHexColor 14 | if(loal === "#000000") loal = me.displayHexColor 15 | if(loal === "#000000") loal = "#ec8f8f" 16 | let embed = new Discord.RichEmbed() 17 | .setColor(loal) 18 | .setAuthor(`${mention.username} Idenity Card;`,mention.avatarURL || mention.defaultAvatarURL) 19 | .setDescription("||------------------------------------------------------||```js"+` 20 | RealName; ${idenities[mention.id].name} 21 | Region; ${idenities[mention.id].region} 22 | Gender; ${idenities[mention.id].gender} 23 | Age; ${idenities[mention.id].age}`+"```") 24 | .setTimestamp(idenities[mention.id].rgtime) 25 | .setFooter(`Registerd At;`,client.user.avatarURL || client.user.defaultAvatarURL) 26 | if(mention.avatarURL){ 27 | .setThumbnail(mention.avatarURL) 28 | } 29 | 30 | message.channel.send(embed) 31 | } 32 | module.exports.help = { 33 | name: "idenity" 34 | } -------------------------------------------------------------------------------- /commands/invite.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | const me = message.guild.members.get(client.user.id) 9 | var loal = message.member.displayHexColor 10 | if(loal === "#000000") loal = me.displayHexColor 11 | if(loal === "#000000") loal = color 12 | let inviteEmbed = new Discord.RichEmbed() 13 | .setTitle("Invite Link") 14 | .setDescription(`If you want to invite the bot click **[here](https://discordapp.com/oauth2/authorize?client_id=${message.guild.me.id}&permissions=8&scope=bot)**`) 15 | .setColor(loal); 16 | 17 | message.channel.send(inviteEmbed).catch(); 18 | } 19 | module.exports.help = { 20 | name: "invite" 21 | } -------------------------------------------------------------------------------- /commands/kick.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | exports.run = async (client, message, [mention, ...reason]) => { // eslint-disable-line no-unused-vars 4 | if (message.mentions.members.size === 0) 5 | return message.channel.send("Couldn't find the user that you're trying to kick!"); 6 | 7 | if (!message.guild.me.hasPermission("KICK_MEMBERS")) 8 | return message.reply("You Don't Have KICK_MEMBERS Permission"); 9 | 10 | 11 | const kickMember = message.mentions.members.first(); 12 | if(kickMember.highestRole.position >= message.guild.member(message.author).highestRole.positon) { 13 | message.channel.send("**You Can't Ban The Administrator !!**") 14 | } 15 | kickMember.kick(reason.join(" ")).then(member => { 16 | message.reply(`**${member.user.username} has been kicked ! **`); 17 | }); 18 | }; 19 | 20 | module.exports.help = { 21 | name:"kick" 22 | } 23 | -------------------------------------------------------------------------------- /commands/luck.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { stripIndents } = require('common-tags'); 3 | const slots = ['🍇', '🍊', '🍐', '🍒', '🍋']; 4 | 5 | module.exports.run = async (client, message, args) => { 6 | const slotOne = slots[Math.floor(Math.random() * slots.length)]; 7 | const slotTwo = slots[Math.floor(Math.random() * slots.length)]; 8 | const slotThree = slots[Math.floor(Math.random() * slots.length)]; 9 | if (slotOne === slotTwo && slotOne === slotThree) { 10 | return message.reply(stripIndents` 11 | ${slotOne}|${slotTwo}|${slotThree} 12 | Wow! You won! Great job... er... luck! 13 | `); 14 | } 15 | return message.reply(stripIndents` 16 | ${slotOne}|${slotTwo}|${slotThree} 17 | Aww... You lost... Guess it's just bad luck, huh? 18 | `); 19 | } 20 | 21 | module.exports.help = { 22 | name: "luck" 23 | } -------------------------------------------------------------------------------- /commands/member.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | if(!message.channel.guild) return; 9 | const me = message.guild.members.get(client.user.id) 10 | 11 | var loal = message.member.displayHexColor 12 | if(loal === "#000000") loal = me.displayHexColor 13 | if(loal === "#000000") loal = color 14 | const onf = message.guild.members.filter(r => r.presence.status === "online").size 15 | const idlef = message.guild.members.filter(r => r.presence.status === "idle").size 16 | const dndf = message.guild.members.filter(r => r.presence.status === "dnd").size 17 | const offlinef = message.guild.members.filter(r => r.presence.status === "offline").size 18 | let online = client.guilds.get("555224810486235137").emojis.find(r => r.name === "online2"); 19 | let dnd = client.guilds.get("555224810486235137").emojis.find(r => r.name === "dnd2"); 20 | let idle = client.guilds.get("555224810486235137").emojis.find(r => r.name === "idle2"); 21 | let offline = client.guilds.get("555224810486235137").emojis.find(r => r.name === "offline2"); 22 | let all = client.guilds.get("555224810486235137").emojis.find(r => r.name === "stream2"); 23 | let embed = new Discord.RichEmbed() 24 | .setAuthor(`${message.guild.name} Members Status;`,message.guild.iconURL) 25 | .setColor(loal) 26 | .setFooter(client.user.username,client.user.avatarURL) 27 | .setTimestamp() 28 | .addField(`Progress;`,`${all}| Counter; ${message.guild.memberCount}\n ${online}| Online; ${onf}\n ${idle}| Idle; ${idlef}\n ${dnd}| DND; ${dndf}\n ${offline}| Offline; ${offlinef}`) 29 | message.channel.send(embed) 30 | } 31 | 32 | 33 | module.exports.help = { 34 | name: "members" 35 | } -------------------------------------------------------------------------------- /commands/meme.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const superagent = require("superagent"); 3 | const randomPuppy = require('random-puppy'); 4 | const botconfig = require("../data/botconfig.json"); 5 | const color = botconfig.color 6 | const talkedRecently = new Set(); 7 | module.exports.run = async (client, message, args) => { 8 | if (talkedRecently.has(message.author.id)) { 9 | message.channel.send("Wait 30 secs before getting typing this again. - " + message.author); 10 | } else { 11 | randomPuppy('memes') 12 | .then(url => { 13 | const embed = new Discord.RichEmbed() 14 | .setTimestamp() 15 | .setImage(url) 16 | .setColor(color) 17 | message.channel.send(embed) 18 | }) 19 | } 20 | 21 | talkedRecently.add(message.author.id); 22 | setTimeout(() => { 23 | // Removes the user from the set after a minute 24 | talkedRecently.delete(message.author.id); 25 | }, 30000); 26 | } 27 | 28 | module.exports.help = { 29 | name:"meme" 30 | } 31 | -------------------------------------------------------------------------------- /commands/mute.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports.run = async (client, message, args) => { 4 | 5 | let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0])); 6 | if(!tomute) return message.reply("Please specify a user to mute!"); 7 | if(tomute.hasPermission("MANAGE_MESSAGES")) return message.reply("I can't mute them because they have an important role!"); 8 | if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.reply("**You Dont Have Permission**").then(msg => msg.delete(5000)); 9 | let muterole = message.guild.roles.find(`name`, "Muted"); 10 | 11 | if(!muterole){ 12 | try{ 13 | muterole = await message.guild.createRole({ 14 | name: "Muted", 15 | color: "#ec8f8f", 16 | permissions:[] 17 | }) 18 | message.guild.channels.forEach(async (channel, id) => { 19 | await channel.overwritePermissions(muterole, { 20 | SEND_MESSAGES: false, 21 | ADD_REACTIONS: false, 22 | }); 23 | 24 | }); 25 | }catch(e){ 26 | console.log(e.stack); 27 | } 28 | } 29 | 30 | await(tomute.addRole(muterole.id)); 31 | message.channel.send(`<@${tomute.id}> has been muted!`); 32 | } 33 | 34 | module.exports.help = { 35 | name: "mute" 36 | } -------------------------------------------------------------------------------- /commands/own.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | const devs = botconfig.ownerID 7 | 8 | if (!devs.includes(message.author.id)) return message.reply(no + "**This command only for bot owner.**").then(m => { 9 | m.delete(2000) 10 | }) 11 | message.channel.send(`** Help In dm sir , ${message.author}**`) 12 | message.author.send(``) 13 | } 14 | 15 | module.exports.help = { 16 | name: "own" 17 | } -------------------------------------------------------------------------------- /commands/ping.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | 9 | message.channel.send(`:leaves: | Pinging ..`).then(msg => { 10 | var pingt = msg.createdTimestamp - message.createdTimestamp 11 | if(pingt >= 100) pingt = "Poor Connection" 12 | if(pingt <= 90) pingt = "Good Connection" 13 | if(pingt <= 60) pingt = "Epic Connection" 14 | if(pingt <= 20) pingt = "Speical Connection" 15 | if(pingt <= 10) pingt = "God Connection" 16 | var pinga = Math.round(client.ping) 17 | if(pinga >= 100) pinga = "Poor Connection" 18 | if(pinga <= 60) pinga = "Epic Connection" 19 | if(pinga <= 20) pinga = "Speical Connection" 20 | if(pinga <= 10) pinga = "God Connection" 21 | var me = message.guild.member(client.user) 22 | let sorry = client.emojis.get("555556287589515274") 23 | var loal = message.member.displayHexColor 24 | if(loal === "#000000") loal = me.displayHexColor 25 | if(loal === "#000000") loal = color 26 | let embed = new Discord.RichEmbed() 27 | .setColor(loal) 28 | .setDescription(`${sorry} | Pong! - 29 | Time Taken; ${pingt} [${msg.createdTimestamp - message.createdTimestamp}] 30 | DiscordAPI; ${Math.round(client.ping)}`) 31 | .setFooter(client.user.username,client.user.avatarURL) 32 | .setTimestamp() 33 | msg.edit(embed) 34 | }) 35 | } 36 | 37 | module.exports.help = { 38 | name: "ping" 39 | } -------------------------------------------------------------------------------- /commands/profile.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | let mention = message.mentions.members.first() || message.member; 7 | if(mention.user.bot) return; 8 | 9 | const xp = require("../data/profile.json"); 10 | if(!xp[mention.user.id]){ 11 | xp[mention.user.id] = { 12 | xp: 0, 13 | level: 1, 14 | yens: 0, 15 | Dislikes: 0, 16 | Followers: 0 17 | }; 18 | fs.writeFile("./data/profile.json", JSON.stringify(xp), (err) => { 19 | if(err) console.log(err) 20 | }) 21 | 22 | } 23 | 24 | var me = message.guild.members.get(client.user.id) 25 | var loal = message.member.displayHexColor 26 | if(loal === "#000000") loal = me.displayHexColor 27 | if(loal === "#000000") loal = "#ec8f8f" 28 | let embed = new Discord.RichEmbed() 29 | .setColor(loal) 30 | .setAuthor(`${mention.user.username} Profile Data;`,mention.user.displayAvatarURL) 31 | .setTimestamp(mention.user.createdTimestamp) 32 | .setFooter(`Account CreatedAt;`,mention.user.displayAvatarURL) 33 | .setDescription(``+"```js"+` 34 | XP; ${xp[mention.user.id].xp} 35 | Level; ${xp[mention.user.id].level} 36 | Yens; ${xp[mention.user.id].yens} 37 | Dislikes; ${xp[mention.user.id].Dislikes} 38 | Followers; ${xp[mention.user.id].Followers}`+"```") 39 | message.channel.send(embed) 40 | } 41 | module.exports.help = { 42 | name: "profile" 43 | } -------------------------------------------------------------------------------- /commands/register.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const sm = require("string-similarity"); 3 | const moment = require("moment"); 4 | const botconfig = require("../data/botconfig.json"); 5 | const fs = require("file-system") 6 | 7 | module.exports.run = async (client, message, args) => { 8 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 9 | let idenities = JSON.parse(fs.readFileSync("./data/idenities.json", "utf8")); 10 | const color = colors[message.guild.id].color || botconfig.color 11 | var name = ''; 12 | var region = ''; 13 | var gender = ''; 14 | var age = ''; 15 | var filter = m => m.author.id === message.author.id; 16 | var me = message.guild.members.get(client.user.id) 17 | var loal = message.member.displayHexColor 18 | if(loal === "#000000") loal = me.displayHexColor 19 | if(loal === "#000000") loal = color 20 | let embed = new Discord.RichEmbed() 21 | .setAuthor(message.author.username,message.author.avatarURL || message.author.defaultAvatarURL) 22 | .setTimestamp() 23 | 24 | .setColor(loal) 25 | .setFooter(client.user.username,client.user.avatarURL || client.user.defaultAvatarURL) 26 | .setDescription(`**${message.author} | Please Type Ur RealName , For Privacy Use Nickname .**`) 27 | message.channel.send(embed).then(msgS => { 28 | message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ['time'] }).then(collected => { 29 | name = collected.first().content; 30 | collected.first().delete(); 31 | .setDescription(`**${message.author} | Type Ur RegionName Please **`) 32 | msgS.edit(embed).then(msgS => { 33 | message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ['time'] }).then(collected => { 34 | region = collected.first().content; 35 | collected.first().delete(); 36 | .setDescription(`**${message.author} | Type ur Gender Please , For Privacy Type \`\`Unlisted\`\` <:images:555556262545326094>.**`) 37 | msgS.edit(embed).then(msgS => { 38 | message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ['time'] }).then(collected => { 39 | gender = collected.first().content; 40 | collected.first().delete(); 41 | .setDescription(`**${message.author} | Type Ur Age RightNow <:as:555556284599107584> .**`) 42 | msgS.edit(embed).then(msgS => { 43 | message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ['time'] }).then(collected => { 44 | age = collected.first().content; 45 | collected.first().delete(); 46 | .setDescription(`** Thanks Alot! Ur Request Will Accepted By Staff Soon! , **.`) 47 | msgS.edit(embed) 48 | var acceptroom = client.channels.get("557595795239600165") 49 | var me = message.guild.members.get(client.user.id) 50 | var loal = message.member.displayHexColor 51 | if(loal === "#000000") loal = me.displayHexColor 52 | if(loal === "#000000") loal = color 53 | let ed = new Discord.RichEmbed() 54 | .setColor(loal) 55 | .setAuthor(`${message.author.username} Request idenity;`,message.author.avatarURL || message.author.defaultAvatarURL) 56 | .setFooter(client.user.username,client.user.avatarURL) 57 | .setDescription("```js"+` 58 | ID; ${message.author.id} 59 | RealName; ${name} 60 | Region; ${region} 61 | Gender; ${gender} 62 | Age; ${age}`+"```") 63 | acceptroom.send(ed).then(msgS => { 64 | msgS.react('✅').then(() => msgS.react('❎')) 65 | 66 | let yesSure = (reaction, user) => reaction.emoji.name === '✅' && user.id != client.user.id 67 | let no = (reaction, usera) => reaction.emoji.name === '❎' && usera.id != client.user.id 68 | 69 | let yesSend = msgS.createReactionCollector(yesSure); 70 | let dontSend = msgS.createReactionCollector(no); 71 | 72 | yesSend.on('collect', r => { 73 | msgS.delete() 74 | 75 | 76 | message.author.send(`**Congratulations :warning: ${message.author} Ur Idenity Request was Accepted By Staff ✅ **. `) 77 | 78 | var me = message.guild.members.get(client.user.id) 79 | var loal = message.member.displayHexColor 80 | if(loal === "#000000") loal = me.displayHexColor 81 | if(loal === "#000000") loal = color 82 | let edwarda = new Discord.RichEmbed() 83 | edwarda.setColor(loal) 84 | edwarda.setAuthor(`${message.author.username} Idenity Card;`,message.author.avatarURL || message.author.defaultAvatarURL) 85 | edwarda.setDescription("||------------------------------------------------------||```js"+` 86 | ID; ${message.author.id} 87 | RealName; '${name}' 88 | Region; ${region} 89 | Gender; ${gender} 90 | Age; ${age}`+"```") 91 | edwarda.setTimestamp() 92 | edwarda.setFooter(`Registerd At;`,client.user.avatarURL || client.user.defaultAvatarURL) 93 | if(message.author.avatarURL){ 94 | edwarda.setThumbnail(message.author.avatarURL) 95 | } 96 | message.author.send(edwarda) 97 | let chs = client.channels.get("557728608882393108") 98 | chs.send(ed) 99 | chs.send(`Accepted [ ${message.author} ]`) 100 | 101 | idenities[message.author.id] = { 102 | name: name, 103 | region: region, 104 | gender: gender, 105 | age: age, 106 | rgtime: msgS.createdTimestamp 107 | }; 108 | 109 | fs.writeFile("./data/idenities.json", JSON.stringify(idenities), (err) => { 110 | if (err) console.log(err) 111 | }); 112 | 113 | }) 114 | dontSend.on('collect', r => { 115 | msgS.delete() 116 | message.author.send(`** :warning: | Ur Idenity Request was Denied By Staff .**`) 117 | 118 | })})})})})})})})})})} 119 | 120 | 121 | module.exports.help = { 122 | name: "register" 123 | } -------------------------------------------------------------------------------- /commands/role.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | exports.run = (client, message, args) => { 5 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 6 | const color = colors[message.guild.id].color || botconfig.color 7 | if(!message.member.hasPermission('ADMINISTRATOR')) return; 8 | let please = client.emojis.get("555556306346573838") 9 | if(!args[0]) return message.channel.send(`**${please} | Type Something Please . **`) 10 | const guild = message.guild; 11 | let params = message.content.split(" ").slice(1).join(" "); 12 | let role = message.mentions.roles.first(); 13 | 14 | if (role === undefined) { 15 | role = guild.roles.find("name", params); 16 | let sorry = client.emojis.get("555556287589515274") 17 | if (!role) return message.channel.send(`**${sorry} | Sorry I Cant Find Any Result; `+"``"+args+"``"+` **.`); 18 | } 19 | let hoist = "null"; 20 | if (role.hoist) { 21 | hoist = "Yes"; 22 | }else { 23 | hoist = "No"; 24 | } 25 | let mention = "null"; 26 | if (role.mentionable) { 27 | mention = "Yes"; 28 | }else { 29 | mention = "No"; 30 | } 31 | let botrole = "null"; 32 | if (role.managed) { 33 | botrole = "Yes"; 34 | }else { 35 | botrole = "No"; 36 | } 37 | let m_map = role.members.map(m=>m).join(";"); 38 | 39 | if (m_map.length > 80) m_map = "" 40 | if(role.hasPermission("ADMINISTRATOR")) return message.channel.send(`**:lock: | Sorry , `+"``"+`${role.name}`+"``"+` Have `+"``"+`ADMINISTRATOR`+"``"+` Permissions **.`) 41 | const me = message.guild.members.get(client.user.id) 42 | var loal = role.hexColor 43 | if(loal === "#000000") loal = color 44 | const embed = new Discord.RichEmbed() 45 | .setColor(loal) 46 | .setAuthor(`${role.name} Informations;`,message.guild.iconURL) 47 | 48 | .setDescription("```js"+` 49 | ID; ${role.id} 50 | Color; ${role.hexColor} 51 | BotRole; ${role.managed} 52 | Postion; ${role.position}`+"```") 53 | if (m_map) { 54 | .addField(`❯ Role Members;`,m_map,true) 55 | } 56 | 57 | .setFooter("Role CreatedAt;", client.user.avatarURL) 58 | .setTimestamp(role.createdTimestamp); 59 | message.channel.send({embed}); 60 | 61 | 62 | } 63 | 64 | 65 | 66 | module.exports.help = { 67 | name: "roleinfo" 68 | } -------------------------------------------------------------------------------- /commands/roles.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | exports.run = (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | const me = message.guild.members.get(client.user.id) 9 | var loal = message.member.displayHexColor 10 | if(loal === "#000000") loal = me.displayHexColor 11 | if(loal === "#000000") loal = color 12 | let rolesarray = message.guild.roles.filter(role => !role.managed) 13 | let roles = rolesarray.map(r => `${r} `+"``["+`${r.members.size}`+"]``"+`.`).join(" \n") 14 | let embed = new Discord.RichEmbed() 15 | .setAuthor(`${message.guild.name}`,message.guild.iconURL || message.author.avatarURL) 16 | .setColor(loal) 17 | .setThumbnail(message.author.avatarURL) 18 | .setFooter(client.user.username,client.user.avatarURL) 19 | .setTimestamp() 20 | .addField(`All;`,`${roles}`,false) 21 | 22 | message.channel.send(embed) 23 | } 24 | 25 | 26 | module.exports.help = { 27 | name: "roles" 28 | } -------------------------------------------------------------------------------- /commands/server.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | let prefix = botconfig.prefix; 4 | const fs = require("file-system") 5 | 6 | module.exports.run = async (client, message, args) => { 7 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 8 | if(!message.channel.guild) return 9 | const color = colors[message.guild.id].color || botconfig.color 10 | if(!message.member.hasPermission('ADMINISTRATOR')) return; 11 | const me = message.guild.members.get(client.user.id) 12 | var lol = message.guild.verificationLevel 13 | var loal = message.member.displayHexColor 14 | if(loal === "#000000") loal = me.displayHexColor 15 | if(loal === "#000000") loal = color 16 | const on = message.guild.members.filter(r => r.presence.status === "online").size 17 | const idle = message.guild.members.filter(r => r.presence.status === "idle").size 18 | const dnd = message.guild.members.filter(r => r.presence.status === "dnd").size 19 | const online = dnd + idle + on 20 | const hype = client.emojis.get("555235162041090049") 21 | const discordicon = client.emojis.get("555234055365459969") 22 | const owner = client.users.get(message.guild.owner.id) 23 | const ownerbadage = client.emojis.get("555502796473106502") 24 | const roles = message.guild.roles.map(r => `${r}`).sort((a, b) => a > b) 25 | const emojis = message.guild.emojis.map(r => `${r}`).sort((a, b) => a > b) 26 | let embed = new Discord.RichEmbed() 27 | .setThumbnail(message.guild.iconURL || message.author.avatarURL) 28 | .setColor(loal) 29 | .setDescription("```js"+` 30 | ID; ${message.guild.id} 31 | Large; ${message.guild.large} 32 | Region; ${message.guild.region}`+"```") 33 | .addField(`❯ Guild Owner ${ownerbadage};`,`${owner} ID; \n`+"``{"+`${owner.id}`+"}``",true) 34 | .addField(`❯ Members Count ${discordicon};`,`Many; ${message.guild.memberCount} \n Active; ${online}`,true) 35 | //.addField(`❯ CreatedAt :date:;`,`${moment(message.guild.createdAt).locale('EN-us').fromNow()} \n`+"``["+`${moment(message.guild.createdAt).format('D/M/YYYY h:m A')}]`+"``",true) 36 | if(message.guild.roles.size != 2){ 37 | .addField(`❯ Guild Roles :atom:;`,`Many; ${message.guild.roles.size} 38 | Bot Roles; ${message.guild.roles.filter(role => role.bot).size} 39 | :leaves: More? ${prefix}roles`,true) 40 | } 41 | if(message.guild.emojis.size){ 42 | .addField(`❯ Emojis :coffee:;`,`Many; ${message.guild.emojis.size} 43 | Animated; ${message.guild.emojis.filter(emoji => emoji.animated).size} 44 | :leaves: More? ${prefix}emojis`,true) 45 | } 46 | .setAuthor(`${message.guild.name} Server Information; `,(message.guild.iconURL || message.author.avatarURL)) 47 | .setTimestamp(message.guild.createdTimestamp) 48 | .setFooter("Server CreatedAt ;",client.user.avatarURL) 49 | message.channel.send(embed) 50 | 51 | } 52 | 53 | module.exports.help = { 54 | name: "server" 55 | } -------------------------------------------------------------------------------- /commands/set-prefix.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const fs = require("fs"); 3 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 4 | const botconfig = require("../data/botconfig.json"); 5 | module.exports.run = async (client , message, args) => { 6 | const color = colors[message.guild.id].color || botconfig.color 7 | let role = message.guild.roles.find("name", "Admin"); 8 | if(role && !message.member.roles.has(role.id)) 9 | return message.reply("You do not have permission for that command!") 10 | if(!args[0] || args[0 == "help"]) return message.reply("Usage: setprefix (prefix)"); 11 | const me = message.guild.members.get(client.user.id) 12 | var loal = message.member.displayHexColor 13 | if(loal === "#000000") loal = me.displayHexColor 14 | if(loal === "#000000") loal = color 15 | let prefixes = JSON.parse(fs.readFileSync("./data/prefixes.json", "utf8")); 16 | 17 | prefixes[message.guild.id] = { 18 | prefixes: args[0] 19 | }; 20 | 21 | fs.writeFile("./data/prefixes.json", JSON.stringify(prefixes), (err) => { 22 | if (err) console.log(err) 23 | }); 24 | 25 | let Embed = new Discord.RichEmbed() 26 | .setColor(`${loal}`) 27 | .setTitle("Changed Prefix") 28 | .setDescription(`Prefix has been set to **${args[0]}**`); 29 | 30 | message.channel.send(Embed); 31 | 32 | } 33 | 34 | module.exports.help = { 35 | name: "set-prefix" 36 | } -------------------------------------------------------------------------------- /commands/support.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | const me = message.guild.members.get(client.user.id) 9 | var loal = message.member.displayHexColor 10 | if(loal === "#000000") loal = me.displayHexColor 11 | if(loal === "#000000") loal = color 12 | let inviteEmbed = new Discord.RichEmbed() 13 | .setTitle("Invite Link") 14 | .setDescription(`[Click Here](https://discord.gg/ZeFUEpn)`) 15 | .setColor(loal); 16 | 17 | message.channel.send(inviteEmbed).catch(); 18 | } 19 | module.exports.help = { 20 | name: "support" 21 | } -------------------------------------------------------------------------------- /commands/test.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | module.exports.run = async (client, message, args) => { 6 | 7 | 8 | 9 | 10 | } 11 | module.exports.help = { 12 | name: "test" 13 | } -------------------------------------------------------------------------------- /commands/unmute.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | 4 | module.exports.run = async (client, message, args) => { 5 | 6 | if(!message.guild.member(message.author).hasPermission("MANAGE_MESSAGES")) return message.reply("**You Dont Have Permission**").then(msg => msg.delete(5000)); 7 | let tounmute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0])); 8 | if(!tounmute) return message.reply("Couldn't find user."); 9 | let muterole = message.guild.roles.find(`name`, "Muted"); 10 | 11 | 12 | await(tounmute.removeRole(muterole.id)); 13 | message.channel.send(`<@${tounmute.id}> has been unmuted!`); 14 | } 15 | 16 | module.exports.help = { 17 | name: "unmute" 18 | } -------------------------------------------------------------------------------- /commands/uptime.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const botconfig = require("../data/botconfig.json"); 3 | const fs = require("file-system") 4 | 5 | exports.run = (client, message) => { 6 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 7 | const color = colors[message.guild.id].color || botconfig.color 8 | let ms = client.uptime; 9 | let cd = 24 * 60 * 60 * 1000; // Calc days 10 | let ch = 60 * 60 * 1000; // Calc hours 11 | let cm = 60 * 1000; // Calc minutes 12 | let cs = 1000; // Calc seconds 13 | let days = Math.floor(ms / cd); 14 | let dms = days * cd; // Days, in ms 15 | let hours = Math.floor((ms - dms) / ch); 16 | let hms = hours * ch; // Hours, in ms 17 | let minutes = Math.floor((ms - dms - hms) / cm); 18 | let mms = minutes * cm; // Minutes, in ms 19 | let seconds = Math.round((ms - dms - hms - mms) / cs); 20 | if (seconds === 60) { 21 | minutes++; // Increase by 1 22 | seconds = 0; 23 | } 24 | if (minutes === 60) { 25 | hours++; // Inc by 1 26 | minutes = 0; 27 | } 28 | if (hours === 24) { 29 | days++; // Increase by 1 30 | hours = 0; 31 | } 32 | let dateStrings = []; 33 | if (days === 1) { 34 | dateStrings.push('**1** day'); 35 | } else if (days > 1) { 36 | dateStrings.push('**' + String(days) + '** days'); 37 | } 38 | if (hours === 1) { 39 | dateStrings.push('**1** hour'); 40 | } else if (hours > 1) { 41 | dateStrings.push('**' + String(hours) + '** hours'); 42 | } 43 | if (minutes === 1) { 44 | dateStrings.push('**1** minute'); 45 | } else if (minutes > 1) { 46 | dateStrings.push('**' + String(minutes) + '** minutes'); 47 | } 48 | if (seconds === 1) { 49 | dateStrings.push('**1** second'); 50 | } else if (seconds > 1) { 51 | dateStrings.push('**' + String(seconds) + '** seconds'); 52 | } 53 | let dateString = ''; 54 | for (let i = 0; i < dateStrings.length - 1; i++) { 55 | dateString += dateStrings[i]; 56 | dateString += ', '; 57 | } 58 | if (dateStrings.length >= 2) { 59 | dateString = dateString.slice(0, dateString.length - 2) + dateString.slice(dateString.length - 1); 60 | dateString += 'and '; 61 | } 62 | dateString += dateStrings[dateStrings.length - 1]; 63 | const me = message.guild.members.get(client.user.id) 64 | var loal = message.member.displayHexColor 65 | if(loal === "#000000") loal = me.displayHexColor 66 | if(loal === "#000000") loal = color 67 | const embed = new Discord.RichEmbed() 68 | .setAuthor(message.author.username, message.author.avatarURL || message.author.defaultAvatarURL) 69 | .setThumbnail(message.author.iconURL) 70 | .addField('❯ uptime',`${days}d. ${hours}h. ${minutes}m . ${seconds}s`, true) 71 | .addField('❯ Active for:', dateString, true) 72 | .setColor(loal) 73 | .setFooter(client.user.username,client.user.avatarURL) 74 | .setTimestamp() 75 | message.channel.send({embed}) 76 | .catch(console.error); 77 | }; 78 | module.exports.help = { 79 | name: 'uptime' 80 | }; -------------------------------------------------------------------------------- /commands/user.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const sm = require("string-similarity"); 3 | const moment = require("moment"); 4 | const botconfig = require("../data/botconfig.json"); 5 | const fs = require("file-system") 6 | 7 | module.exports.run = async (client, message, args) => { 8 | let yaw = client.emojis.get("555235020306907146") 9 | const mention = message.mentions.members.first() || message.member 10 | var color = botconfig.color 11 | var memberA = client.users.get(mention.id) 12 | message.guild.fetchInvites().then(invs => { 13 | let personalInvites = invs.filter(i => i.inviter.id === mention.id); 14 | let f = personalInvites.reduce((p, v) => v.uses + p, 0) 15 | const trueemoji = client.emojis.get("555167922276925460") 16 | const me = message.guild.members.get(client.user.id) 17 | var lol = message.guild.verificationLevel 18 | var loal = mention.displayHexColor 19 | if(loal === "#000000") loal = me.displayHexColor 20 | if(loal === "#000000") loal = color 21 | var presence = mention.presence 22 | var st = presence.status 23 | if(presence.game == undefined) 24 | presence.game = "Nothing" 25 | let idle = client.emojis.get("555540481048838167") 26 | let dnd = client.emojis.get("555540479257739275") 27 | let online = client.emojis.get("555540475449442304") 28 | let stream = client.emojis.get("555540478616141834") 29 | let offline = client.emojis.get("555540478339186688") 30 | if(st == "offline") 31 | st = `${offline}` 32 | if(st == "idle") 33 | st = `${idle}` 34 | if(st == "dnd") 35 | st = `${dnd}` 36 | if(st == "online") 37 | st = `${online}` 38 | var gn = presence.game 39 | if(gn == undefined) 40 | gn = "NOTHING" 41 | var gt = presence.game.type 42 | if(gt == undefined) 43 | gt = '**NOTHING**' 44 | if(gt == "0") 45 | gt = "Playing" 46 | 47 | if(gt == "2") 48 | gt = "Listening To" 49 | if(gt == "1"){ 50 | gt = "Streaming" 51 | st = `${stream}`} 52 | if(gt == "3") 53 | gt = "Watching" 54 | let nitro = "" 55 | if(mention.premium) 56 | nitro = client.emojis.get("556179161195216896") 57 | let embed = new Discord.RichEmbed() 58 | .setColor(`${loal}`) 59 | .setTimestamp(mention.joinedTimestamp) 60 | .setFooter(`Member JoinedAt; `,mention.user.avatarURL || mention.user.defaultAvatarURL) 61 | if(!mention.user.bot){ 62 | .setAuthor(`${mention.user.username} User Information; `,mention.user.avatarURL || mention.user.defaultAvatarURL) 63 | } 64 | if(mention.user.bot){ 65 | .setAuthor(`${mention.user.username} Bot Information;`,mention.user.avatarURL) 66 | } 67 | //.addBlankField() 68 | if(!mention.user.bot){ 69 | .setDescription(" ```js"+` 70 | ID; ${mention.user.id} 71 | Creation; ${moment(mention.user.createdAt).locale('EN-us').fromNow()} 72 | Roles; ${mention.roles.size - 1}`+"```") 73 | } 74 | if(mention.user.bot){ 75 | .setDescription(" ```js"+` 76 | ID; ${mention.user.id} 77 | Creation; ${moment(mention.user.createdAt).locale('EN-us').fromNow()} 78 | Bot; true`+"```") 79 | } 80 | 81 | if(mention.voiceChannel){ 82 | 83 | if(mention.voiceChannel.members.size < 2) { 84 | .addField(`Currently VoiceChannel;`,`[${yaw}] ${mention.voiceChannel.name}`,true) 85 | 86 | } 87 | if(mention.voiceChannel.members.size > 1){ 88 | if(mention.voiceChannel.members.size < 5) { 89 | let em = client.emojis.get("555506446955970561") 90 | .addField(`Currently VoiceChannel;`,`[${yaw}] ${mention.voiceChannel.name} - \n${em} With ${mention.voiceChannel.members.size - 1} Members\n ${mention.voiceChannel.members.map(r => `${r};`).join("\n")}\n`,true) 91 | 92 | } 93 | 94 | 95 | } 96 | if(mention.voiceChannel.members.size > 4) { 97 | .addField(`Currently VoiceChannel;`,`[${yaw}] ${mention.voiceChannel.name} - `+"``"+`${mention.user.username}`+"``"+`\n With ${mention.voiceChannel.members.size - 1} Members`,true) 98 | }} 99 | if(presence.game != "Nothing") { 100 | if(presence.game == "Spotify"){ 101 | 102 | if (memberA.createdAt == 'undefined') var createdAt = memberA.createdAt; 103 | else var createdAt = memberA.createdAt; 104 | 105 | if(memberA.presence.status == "online") var statusIcon = "[Online]"; 106 | if(memberA.presence.status == "idle") var statusIcon = "[Idle]"; 107 | if(memberA.presence.status == "dnd") var statusIcon = "[DnD]"; 108 | if(memberA.presence.game != null) if(memberA.presence.game.url != null) var statusIcon = "[Streaming]" 109 | if(statusIcon == null) var statusIcon = "[Offline]" 110 | 111 | 112 | 113 | 114 | if (memberA.presence.game != undefined && statusIcon == "[Streaming]" && memberA.presence.game.timestamps != null && memberA.presence.game.url != null) var game = {name: `Title: ${memberA.presence.game.name} \n streaming at ${memberA.presence.game.url}` , time: ""} 115 | else if (memberA.presence.game != undefined && statusIcon == "[Streaming]" && memberA.presence.game.url != null) var game = {name: `Title: ${memberA.presence.game.name} \n streaming at ${memberA.presence.game.url}` , time: ""} 116 | else if(memberA.presence.game != undefined && memberA.presence.game.timestamps.start != null && memberA.presence.game.name == "Spotify") var game = {name:memberA.presence.game.name, songName: memberA.presence.game.details, playlist: memberA.presence.game.assets.largeText, artist:memberA.presence.game.state ,time: moment(memberA.presence.game.timestamps.start).fromNow()} 117 | else if(memberA.presence.game != undefined && memberA.presence.game.timestamps.start != null) var game = {name:memberA.presence.game.name, time: moment(memberA.presence.game.timestamps.start).fromNow()} 118 | else if(memberA.presence.game != undefined)var game = {name:memberA.presence.game.name, time: "not defined"} 119 | else var game = {name: "", time: ""}; 120 | 121 | 122 | if(game.name.length > 0 && game.time.length > 0 && game.name != "Spotify") var gameF = `${game.name} playing Since ${game.time}`; 123 | else if(game.name == "Spotify" && memberA.presence.game.assets.largeImage.startsWith("spotify:")) var gameF = `**Listening To;** ${game.songName}\n **Artist;** ${game.artist}\n **Album;** ${game.playlist}`; 124 | else if(game.name.length > 0 && gameF == null) var gameF = `${game.name}`; 125 | else var gameF = "Nothing playing right now"; 126 | if(gameF == undefined) 127 | gameF = "" 128 | 129 | st = client.emojis.get("556169473254752296") 130 | 131 | //.setImage("https://cdn.discordapp.com/emojis/556169473254752296.png?v=1") 132 | // .addField('Status;',`${st} | ${gt} ${presence.game};\n${gameF}`,true) 133 | 134 | } 135 | //.addField(`Status;`,`${st} | ${gt} ${presence.game}`,true) 136 | 137 | 138 | } 139 | if(gameF == undefined) 140 | gameF = "" 141 | 142 | if(!presence.game) 143 | presence.game = "" 144 | if(gt == "**NOTHING**") 145 | gt = "" 146 | if(presence.game == "YouTube"){ 147 | let emoj = client.emojis.get("556284619117559839") 148 | var playing = client.emojis.get("557011651606478849") 149 | var playmode = presence.game.assets.smallText 150 | if(playmode == "Playback paused") playing = client.emojis.get("557013486924988416") 151 | .addField(`Status;`,`${emoj} | YouTube; \n**Watching;** ${presence.game.details}\n **ChannelName;** ${presence.game.state}\n **PlayMode;** ${playing}\n `,true) 152 | if(presence.game.assets) .setThumbnail(`${presence.game.assets.smallImageURL}`) 153 | } 154 | if(presence.game == "Fortnite"){ 155 | let emoj = client.emojis.get("556283321018089472") 156 | var lol = moment(presence.game.timestamps).locale("EN-us").fromNow()|| "" 157 | var gametime = "\n **Time;** " + lol 158 | if(lol != "Invalid date") lol = moment(presence.game.timestamps.start).locale("EN-us").fromNow() 159 | if(lol == "Invalid date") lol = "" 160 | if(lol == "") gametime = "" 161 | .addField(`Status;`,`${emoj} | Fortnite; \n**GameMode;** ${presence.game.details}\n **Team;** ${presence.game.state}\n **Tier;** ${presence.game.assets.smallText}\n ${gametime}`,true) 162 | if(presence.game.assets) .setThumbnail(`${presence.game.assets.largeImageURL}`) 163 | 164 | } 165 | if(presence.game == "Visual Studio Code"){ 166 | let emoj = client.emojis.get("556276044378800138") 167 | 168 | var lol = moment(presence.game.timestamps).locale("EN-us").fromNow() || "" 169 | var time = `**Edit Time;** ${lol}` 170 | if(lol != "Invalid date") lol = moment(presence.game.timestamps.start).locale("EN-us").fromNow() 171 | if(lol == "Invalid date") lol = "" 172 | if(lol == "") time = "" 173 | .addField(`Status;`,`${emoj} | Visual Studio Code;\n **File;** ${presence.game.details.slice(8)}\n **FileType;** ${presence.game.assets.largeText}\n **Workspace;** ${presence.game.state.slice(9)}\n ${time}`,true) 174 | if(presence.game.assets) .setThumbnail(`${presence.game.assets.largeImageURL}`) 175 | 176 | } 177 | if(presence.game == "Spotify"){ 178 | .addField('Status;',`${st} | **${presence.game}**;\n${gameF}\n`,true) 179 | .setThumbnail(`${mention.presence.game.assets.largeImageURL}?size=128`) 180 | } 181 | if(presence.game == "League of Legends"){ 182 | let emo = client.emojis.get("556254728258977792") 183 | //.setImage("https://cdn.discordapp.com/emojis/556254728258977792.png") 184 | var lol = moment(presence.game.timestamps).locale("EN-us").fromNow()|| "" 185 | var gametime = "\n GameTime; " + lol 186 | if(lol != "Invalid date") lol = moment(presence.game.timestamps.start).locale("EN-us").fromNow() 187 | if(lol == "Invalid date") lol = "" 188 | if(lol == "") gametime = "" 189 | var assets = presence.game.assets 190 | if(!assets) { 191 | if(!presence.game.timestamps){ 192 | .addField('Status;',`${st} | ${gt} **${presence.game}**\n${gameF}\n`,true) 193 | } 194 | 195 | if(presence.game.timestamps) gameF = gameF + `Started From; ${moment(presence.game.timestamps.start).locale("EN-us").fromNow()} .` 196 | .addField('Status;',`${st} | ${gt} **${presence.game}**\n${gameF}\n`,true) 197 | 198 | } 199 | if(assets){ 200 | var charcter = presence.game.assets.largeText 201 | var char = "\nCharacter; "+charcter 202 | if(!charcter) charcter = "" 203 | if(charcter == "") char = "" 204 | var gamemode = presence.game.details 205 | var gamem = "\n GameMode; "+gamemode 206 | if(!gamemode) gamemode = "" 207 | if(gamemode == "") gamem = "" 208 | .addField(`Status;`,`${emo} | League Of Legends;${gamem}\n GameStatus; ${presence.game.state}${gametime}${char}`,true) 209 | if(presence.game.assets) .setThumbnail(`${presence.game.assets.largeImageURL}`) 210 | }} 211 | if(presence.game != "Spotify"){ 212 | if(presence.game != "League of Legends") { 213 | if(presence.game != "Visual Studio Code"){ 214 | if(presence.game != "Fortnite"){ 215 | if(presence.game != "YouTube"){ 216 | .setThumbnail(mention.user.avatarURL || mention.user.defaultAvatarURL) 217 | if(presence.game.timestamps) gameF = gameF + `Started From; ${moment(presence.game.timestamps.start).locale("EN-us").fromNow()} .` 218 | if(st != client.emojis.get("555540478339186688")){ 219 | .addField('Status;',`${st} | ${gt} **${presence.game}**\n${gameF}\n`,true) 220 | } 221 | 222 | }}}}} 223 | 224 | 225 | if(mention.nickname) { 226 | .addField(`Currently Nickname;`,`${mention.nickname} `,true) 227 | } 228 | //console.log(mention.user.username) 229 | message.channel.send(embed) 230 | })} 231 | module.exports.help = { 232 | name: "user" 233 | } -------------------------------------------------------------------------------- /data/botconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "plz but your token", 3 | "prefix": ".", 4 | "ownerID":["378575138444017665"], 5 | "color":"#ec8f8f" 6 | } 7 | -------------------------------------------------------------------------------- /data/colors.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /data/commands.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /data/idenities.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /data/prefixes.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /data/profile.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const botconfig = require("./data/botconfig.json"); 3 | const xp = require("./data/profile.json"); 4 | const fs = require("fs"); 5 | 6 | const bot = new Discord.Client 7 | bot.commands = new Discord.Collection(); 8 | let colors = JSON.parse(fs.readFileSync("./data/colors.json", "utf8")); 9 | fs.readdir("./commands/", (err, files) => { 10 | 11 | if(err) console.log(err); 12 | 13 | let jsfile = files.filter(f => f.split(".").pop() === "js") 14 | if(jsfile.length <= 0){ 15 | console.log("Couldn't find commands."); 16 | return; 17 | } 18 | 19 | jsfile.forEach((f, i) =>{ 20 | let props = require(`./commands/${f}`); 21 | console.log(`${f} loaded!`); 22 | bot.commands.set(props.help.name, props); 23 | 24 | }); 25 | 26 | }); 27 | 28 | bot.on("ready", async () => { 29 | loggedIN = 1; 30 | bot.user.setStatus("idle") 31 | console.log(`${bot.user.username} is online!`); 32 | var indexActivity = 1; 33 | setInterval(() => { 34 | if (indexActivity === 1) { 35 | bot.user.setActivity(` ${bot.guilds.size} Servers`, { 36 | type: "LISTENING" 37 | }).catch(); 38 | indexActivity = 2; 39 | return; 40 | } 41 | if (indexActivity === 2) { 42 | bot.user.setActivity(` ${bot.users.size -2} Users`, { 43 | type: "LISTENING" 44 | }).catch(); 45 | indexActivity = 3; 46 | return; 47 | } 48 | if (indexActivity ===3) { 49 | bot.user.setActivity("Type ;help", { 50 | type: "LISTENING" 51 | }).catch(); 52 | indexActivity = 1; 53 | return; 54 | } 55 | 56 | }, 15000); 57 | 58 | }); 59 | 60 | 61 | 62 | bot.on("message", async message => { 63 | if(message.author.bot) return; 64 | if(message.channel.type === "dm") return; 65 | 66 | 67 | let xpAdd = Math.floor(Math.random() * 5) + 5; 68 | //console.log(xpAdd); 69 | 70 | if(!xp[message.author.id]){ 71 | xp[message.author.id] = { 72 | xp: 0, 73 | level: 1, 74 | yens: 0, 75 | Dislikes: 0, 76 | Followers: 0 77 | }; 78 | } 79 | 80 | let curxp = xp[message.author.id].xp; 81 | let curlvl = xp[message.author.id].level; 82 | let nxtLvl = xp[message.author.id].level * 600; 83 | xp[message.author.id].xp = curxp + xpAdd; 84 | if(nxtLvl <= xp[message.author.id].xp){ 85 | xp[message.author.id].level = curlvl + 1; 86 | 87 | // let lvlup = new Discord.RichEmbed() 88 | //.setTitle("Level Up!") 89 | //.setColor("#ec8f8f") 90 | //.addField("New Level", curlvl + 1); 91 | 92 | //message.channel.send(lvlup).then(msg => {}); 93 | } 94 | let ncred = xp[message.author.id].level * 3; 95 | if(ncred <= xp[message.author.id].xp){ 96 | var curyens = xp[message.author.id].yens 97 | 98 | if (!xp[message.author.id].shit) xp[message.author.id].shit = 0; 99 | xp[message.author.id].shit+=1; 100 | if (xp[message.author.id].shit == 10) xp[message.author.id].yens+=parseInt(Math.floor(Math.random()*15)); 101 | fs.writeFile("./data/profile.json", JSON.stringify(xp), (err) => { 102 | if(err) console.log(err) 103 | }) 104 | } 105 | 106 | let prefix = botconfig.prefix 107 | let devs = botconfig.devs; 108 | let messageArray = message.content.split(" ") 109 | let cmd = messageArray[0]; 110 | let args = messageArray.slice(1).join("") 111 | if(!colors[message.guild.id]){ 112 | colors[message.guild.id] = { 113 | color: botconfig.color 114 | }; 115 | 116 | fs.writeFile("./data/colors.json", JSON.stringify(colors), (err) => { 117 | if (err) console.log(err)}) 118 | } 119 | if(message.content.startsWith(botconfig.prefix)){ 120 | let commandfile = bot.commands.get(cmd.slice(prefix.length)); 121 | if(commandfile) commandfile.run(bot, message, args); 122 | 123 | let xpAdd = Math.floor(Math.random() * 15) + 9; 124 | //console.log(xpAdd); 125 | 126 | if(!xp[message.author.id]){ 127 | xp[message.author.id] = { 128 | xp: 0, 129 | level: 1 130 | }; 131 | } 132 | 133 | let curxp = xp[message.author.id].xp; 134 | let curlvl = xp[message.author.id].level; 135 | let nxtLvl = xp[message.author.id].level * 600; 136 | xp[message.author.id].xp = curxp + xpAdd; 137 | fs.writeFile("./data/profile.json", JSON.stringify(xp), (err) => { 138 | if(err) console.log(err) 139 | }); 140 | 141 | } 142 | }); 143 | 144 | bot.login(botconfig.token); 145 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- 1 | node index.js 2 | pause --------------------------------------------------------------------------------