├── .glitch-assets ├── CODE_OF_CONDUCT ├── Impact.ttf ├── JSON ├── colours.json ├── fishes.json ├── horserace.json ├── motivational.json ├── musictrivia.json ├── roast.json ├── soundboard.json └── works.json ├── Korrina.otf ├── LICENSE ├── Procfile ├── RobotoRegular.ttf ├── Welcome2.png ├── assets ├── MusicHandling.js └── sounds │ ├── ahh.mp3 │ ├── jeff.mp3 │ ├── jeopardy.mp3 │ ├── moaning.mp3 │ ├── nani.mp3 │ ├── pikachu.mp3 │ ├── ree.mp3 │ ├── shutdown.mp3 │ ├── startup.mp3 │ └── yeet.mp3 ├── commands ├── backup │ ├── backup-create.js │ ├── backup-info.js │ ├── backup-load.js │ └── backup-remove.js ├── economy │ ├── addmoney.js │ ├── balance.js │ ├── beg.js │ ├── buy.js │ ├── daily.js │ ├── deposit.js │ ├── fish.js │ ├── leaderboard.js │ ├── pay.js │ ├── removemoney.js │ ├── roulette.js │ ├── sell.js │ ├── setbackground.js │ ├── setinfo.js │ ├── slots.js │ ├── store.js │ ├── weekly.js │ ├── withdraw.js │ └── work.js ├── emojis │ ├── baka.js │ ├── cuddle.js │ ├── feed.js │ ├── foxgirl.js │ ├── gecg.js │ ├── goose.js │ ├── holo.js │ ├── hug.js │ ├── kemonomimi.js │ ├── kiss.js │ ├── lizard.js │ ├── meow.js │ ├── neko.js │ ├── nekogif.js │ ├── poke.js │ ├── slap.js │ ├── smug.js │ ├── tickle.js │ ├── waifu.js │ └── woof.js ├── fun │ ├── advice.js │ ├── ascii.js │ ├── calculate.js │ ├── coinflip.js │ ├── fact.js │ ├── joke.js │ ├── meme.js │ ├── motivation.js │ ├── roast.js │ ├── say.js │ ├── soundboard.js │ ├── status.js │ ├── tts.js │ ├── urbandictionary.js │ └── why.js ├── games │ ├── akinator.js │ ├── blackjack.js │ ├── connectfour.js │ ├── duelquiz.js │ ├── gunfight.js │ ├── horserace.js │ ├── memory.js │ ├── poker.js │ ├── rps.js │ ├── russianroulette.js │ ├── tictactoe.js │ └── trivia.js ├── giveaway │ ├── end.js │ ├── giveaway.js │ └── reroll.js ├── image │ ├── avatar.js │ ├── avatarfusion.js │ ├── captcha.js │ ├── clyde.js │ ├── facepalm.js │ ├── gif.js │ ├── love.js │ ├── mcachievment.js │ ├── phcomment.js │ └── tweet.js ├── info │ ├── bot-info.js │ ├── channelinfo.js │ ├── credits.js │ ├── discordjs.js │ ├── feedback.js │ ├── help.js │ ├── instasearch.js │ ├── invites.js │ ├── level.js │ ├── myvouchs.js │ ├── news.js │ ├── ping.js │ ├── playstore.js │ ├── poll.js │ ├── rank.js │ ├── roleinfo.js │ ├── rolememberinfo.js │ ├── serverinfo.js │ ├── snipe.js │ ├── tiktok-search.js │ ├── translate.js │ ├── uptime.js │ ├── user-info.js │ ├── vouch.js │ ├── weather.js │ ├── whois.js │ └── wikipedia.js ├── moderation │ ├── addemoji.js │ ├── addrole.js │ ├── ban.js │ ├── disablemodlogchannel.js │ ├── disablemuterole.js │ ├── disableverification.js │ ├── disablewelcomechannel.js │ ├── disablexp.js │ ├── kick.js │ ├── lock.js │ ├── message.js │ ├── mute.js │ ├── nuke.js │ ├── purge.js │ ├── reactionroles.js │ ├── removerole.js │ ├── setmodlogchannel.js │ ├── setmuterole.js │ ├── setnick.js │ ├── setprefix.js │ ├── setverification.js │ ├── setwelcomechannel.js │ ├── setxp.js │ ├── unban.js │ ├── unlock.js │ ├── unmute.js │ └── warn.js ├── music │ ├── join.js │ ├── leave.js │ ├── loop.js │ ├── lyrics.js │ ├── musictrivia.js │ ├── nowplaying.js │ ├── pause.js │ ├── play.js │ ├── queue.js │ ├── remove.js │ ├── resume.js │ ├── search.js │ ├── shuffle.js │ ├── skip.js │ ├── skipall.js │ ├── skipto.js │ ├── stop.js │ ├── stopmusictrivia.js │ └── volume.js ├── owner │ ├── eval.js │ ├── forcemsg.js │ ├── getinvite.js │ ├── leaveserver.js │ ├── serverhastelist.js │ └── serverlist.js ├── phone │ ├── hangup.js │ ├── phonebook.js │ ├── phonecall.js │ └── setphonechannel.js └── ticket │ └── setup-ticket.js ├── config.js ├── config.yml ├── courbd.ttf ├── events ├── client │ └── ready.js ├── guild │ ├── message.js │ ├── messageReactionAdd.js │ └── messageReactionRemove.js └── message.js ├── functions.js ├── handler ├── command.js ├── console.js └── event.js ├── index.js ├── json.sqlite ├── package-lock.json ├── package.json ├── public ├── script.js └── style.css ├── server.js ├── shrinkwrap.yaml ├── structures ├── phone │ └── PhoneCall.js └── poker │ ├── Card.js │ └── Deck.js ├── util └── error.js ├── views └── index.html └── watch.json /.glitch-assets: -------------------------------------------------------------------------------- 1 | {"name":"Untitled.png","date":"2020-11-27T18:53:33.346Z","url":"https://cdn.glitch.com/c7245303-aa20-4a45-91f2-55866cf90f7f%2FUntitled.png","type":"image/png","size":23394,"imageWidth":1600,"imageHeight":1200,"thumbnail":"https://cdn.glitch.com/c7245303-aa20-4a45-91f2-55866cf90f7f%2Fthumbnails%2FUntitled.png","thumbnailWidth":330,"thumbnailHeight":248,"uuid":"efOpxbfWhNgd6Lfk"} 2 | {"name":"Screenshot 2020-10-14 172108.png","date":"2020-11-27T18:53:51.210Z","url":"https://cdn.glitch.com/c7245303-aa20-4a45-91f2-55866cf90f7f%2FScreenshot%202020-10-14%20172108.png","type":"image/png","size":151976,"imageWidth":1230,"imageHeight":1144,"thumbnail":"https://cdn.glitch.com/c7245303-aa20-4a45-91f2-55866cf90f7f%2Fthumbnails%2FScreenshot%202020-10-14%20172108.png","thumbnailWidth":330,"thumbnailHeight":307,"uuid":"1ayshp9U88HaXwUH"} 3 | {"name":"2db11b29-027b-4a9c-be6c-b046fc413b0f.image.png","date":"2020-11-28T11:13:46.463Z","url":"https://cdn.glitch.com/c7245303-aa20-4a45-91f2-55866cf90f7f%2F2db11b29-027b-4a9c-be6c-b046fc413b0f.image.png","type":"image/png","size":8811,"imageWidth":366,"imageHeight":105,"thumbnail":"https://cdn.glitch.com/c7245303-aa20-4a45-91f2-55866cf90f7f%2Fthumbnails%2F2db11b29-027b-4a9c-be6c-b046fc413b0f.image.png","thumbnailWidth":330,"thumbnailHeight":95,"uuid":"9mcSyJM41d3BmGAv"} 4 | -------------------------------------------------------------------------------- /Impact.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/Impact.ttf -------------------------------------------------------------------------------- /JSON/colours.json: -------------------------------------------------------------------------------- 1 | { 2 | "purpledark": "#6a006a", 3 | "purplemedium": "#a958a5", 4 | "purplelight": "#c481fb", 5 | "orange": "#ffa500", 6 | "gold": "#daa520", 7 | "reddark": "#8e2430", 8 | "redlight": "#ff0000", 9 | "bluedark": "#3b5998", 10 | "cyan": "#5780cd", 11 | "bluelight": "#ace9e7", 12 | "aqua": "#33a1ee", 13 | "pink": "#ff9dbb", 14 | "greendark": "#2ac075", 15 | "greenlight": "#a1ee33", 16 | "white": "#f9f9f6", 17 | "cream": "#ffdab9" 18 | } -------------------------------------------------------------------------------- /JSON/fishes.json: -------------------------------------------------------------------------------- 1 | { 2 | "junk": { 3 | "symbol": "🔧", 4 | "max": 30, 5 | "min": 10 6 | }, 7 | "common": { 8 | "symbol": "🐟", 9 | "max": 70, 10 | "min": 30 11 | }, 12 | "uncommon": { 13 | "symbol": "🐠", 14 | "max": 90, 15 | "min": 50 16 | }, 17 | "rare": { 18 | "symbol": "🦑", 19 | "max": 175, 20 | "min": 130 21 | }, 22 | "legendary": { 23 | "symbol": "🐋", 24 | "max": 500, 25 | "min": 100 26 | } 27 | } -------------------------------------------------------------------------------- /JSON/soundboard.json: -------------------------------------------------------------------------------- 1 | [ 2 | "ahh", 3 | "pikachu", 4 | "jeff", 5 | "moaning", 6 | "nani", 7 | "reee", 8 | "shutdown", 9 | "startup", 10 | "yeet" 11 | ] -------------------------------------------------------------------------------- /JSON/works.json: -------------------------------------------------------------------------------- 1 | [ 2 | "You work as a flatulence smell reduction underwear maker and earn", 3 | "You work at Grandma's restaurant as a cook and earn", 4 | "You work as a professional smuggler and earn", 5 | "You work as a pumpkin painter and earn", 6 | "You work as a engineer and earn", 7 | "You work as a meerkat behaviour consultant and earn", 8 | "Your job as a fart collector is very interesting and earns you", 9 | "You work as a penguinologist and earn", 10 | "You work as a ear cleaner and earn", 11 | "You develop games and earn", 12 | "You work as a personal shopper and earn", 13 | "You work as a dog surfing instructor and earn", 14 | "You work as a beefeater and earn", 15 | "You work as a comedian and earn", 16 | "You work as the head of elephants and earn", 17 | "You work as an elementary school teacher and earn", 18 | "You worked as a voice actor for Spongebob and managed to gain", 19 | "You had a fruitful day at the office today and earned", 20 | "You actually finished the plate of vegetables that your parents made you eat! You were awarded", 21 | "You work as child birth educator and earn", 22 | "You work as a body pillow factory salesman on the Internet for real weebs, the weebs gave you", 23 | "You work as a vibration consultant and earn", 24 | "Work at the icecream shop of your childhood dreams and earn", 25 | "You work as a professional minecraft hacker. You manage to rake in", 26 | "You dabbed so hard that even your mother is proud! You make", 27 | "You work as a professional cleaner. After hiding the body, you're handed", 28 | "You got cloned for sciene. You earned", 29 | "You work as a police officer and earn", 30 | "You work as a bush pruner for Donald Trump and earn", 31 | "You work as a paper towel sniffer and earn", 32 | "You work as a water slide tester and earn", 33 | "You milk a cow for" 34 | ] -------------------------------------------------------------------------------- /Korrina.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/Korrina.otf -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | worker: node index.js 2 | -------------------------------------------------------------------------------- /RobotoRegular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/RobotoRegular.ttf -------------------------------------------------------------------------------- /Welcome2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/Welcome2.png -------------------------------------------------------------------------------- /assets/sounds/ahh.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/ahh.mp3 -------------------------------------------------------------------------------- /assets/sounds/jeff.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/jeff.mp3 -------------------------------------------------------------------------------- /assets/sounds/jeopardy.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/jeopardy.mp3 -------------------------------------------------------------------------------- /assets/sounds/moaning.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/moaning.mp3 -------------------------------------------------------------------------------- /assets/sounds/nani.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/nani.mp3 -------------------------------------------------------------------------------- /assets/sounds/pikachu.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/pikachu.mp3 -------------------------------------------------------------------------------- /assets/sounds/ree.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/ree.mp3 -------------------------------------------------------------------------------- /assets/sounds/shutdown.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/shutdown.mp3 -------------------------------------------------------------------------------- /assets/sounds/startup.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/startup.mp3 -------------------------------------------------------------------------------- /assets/sounds/yeet.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/assets/sounds/yeet.mp3 -------------------------------------------------------------------------------- /commands/backup/backup-create.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const db = require("quick.db") 3 | const fs = require('fs') 4 | const yaml = require("js-yaml"); 5 | const backup = require("discord-backup") 6 | const { attention, permission, messagesfetchlimts, yes, arrowhere, botlog, no, load } = yaml.load(fs.readFileSync("./config.yml")); 7 | 8 | module.exports = { 9 | config: { 10 | name: "backup-create", 11 | description: "Create Backup For Your Guild", 12 | accessableby: "Administrator", 13 | category: "backup", 14 | aliases: [], 15 | usage: '' 16 | }, 17 | run: async (client, message, args) => { 18 | 19 | if(!message.member.hasPermission("ADMINISTRATOR", "MANAGE_GUILD")){ 20 | let permissionsembed = new Discord.MessageEmbed() 21 | .setTitle(`${attention} **Missing Permissions**`) 22 | .setDescription(`${permission} You Must Have [ADMINISTRATOR, MANAGE_GUILD] Perms To Use This Command!`) 23 | .setFooter(message.guild.name, client.user.displayAvatarURL()) 24 | message.channel.send(permissionsembed) 25 | return; 26 | } 27 | message.channel.send(`${load} Creating Backup... `) 28 | backup.create(message.guild, { 29 | jsonBeautify: true, 30 | saveImages: "base64", 31 | maxMessagesPerChannel: messagesfetchlimts, 32 | }).then((backupData) => { 33 | let guildicon = message.guild.iconURL() 34 | let datacreated = new Discord.MessageEmbed() 35 | .setAuthor(message.author.username, message.author.displayAvatarURL()) 36 | .setDescription(`${yes} New Backup Created\n ${arrowhere} **Backup ID**: ${backupData.id}\n ${arrowhere} **Guild Name**: ${message.guild.name} `) 37 | .setFooter(message.guild.name, guildicon) 38 | message.author.send(datacreated); 39 | let created = new Discord.MessageEmbed() 40 | .setAuthor(message.author.username, message.author.displayAvatarURL()) 41 | .setDescription(`${yes} Backup Has Been Created `) 42 | .setFooter(message.guild.name, guildicon) 43 | client.channels.cache.get(botlog).send(`** NEW BACKUP CREATED **\nBackup ID: ${backupData.id} \nBackup Author: ${message.author.username} \nGuild: ${message.guild.name}`) 44 | 45 | message.channel.send(created); 46 | }); 47 | } 48 | } -------------------------------------------------------------------------------- /commands/backup/backup-info.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const db = require("quick.db") 3 | const fs = require('fs') 4 | const yaml = require("js-yaml"); 5 | const backup = require("discord-backup") 6 | const { attention, permission, messagesfetchlimts, yes, arrowhere, botlog, no } = yaml.load(fs.readFileSync("./config.yml")); 7 | 8 | module.exports = { 9 | config: { 10 | name: "backup-info", 11 | description: "Show You List Of Your Guilds Backups", 12 | accessableby: "Administrator", 13 | category: "backup", 14 | aliases: [], 15 | usage: '' 16 | }, 17 | run: async (client, message, args) => { 18 | let backupID = args[0]; 19 | // backupIDl = args[0] 20 | if(!backupID){ 21 | let notvaild = new Discord.MessageEmbed() 22 | .setAuthor(client.user.username, client.user.displayAvatarURL) 23 | .setDescription(`${arrowhere} You must specify a valid backup ID ${no}`) 24 | .setFooter(message.author.username, message.author.displayAvatarURL()) 25 | 26 | return message.channel.send(notvaild); 27 | } 28 | backup.fetch(backupID).then((backupInfos) => { 29 | const date = new Date(backupInfos.data.createdTimestamp); 30 | const yyyy = date.getFullYear().toString(), mm = (date.getMonth()+1).toString(), dd = date.getDate().toString(); 31 | const formatedDate = `${yyyy}/${(mm[1]?mm:"0"+mm[0])}/${(dd[1]?dd:"0"+dd[0])}`; 32 | let backups = new Discord.MessageEmbed() 33 | .setAuthor(message.author.username, message.author.displayAvatarURL()) 34 | .setDescription(`** BACKUP INFO **\n ${arrowhere} Backup ID: ${backupInfos.id} \n ${arrowhere} Server ID: ${backupInfos.data.guildID} \n ${arrowhere} Backup Size: ${backupInfos.size} mb \n ${arrowhere} Backup Created At: ${formatedDate}`) 35 | .setFooter(`${attention} Vilon`, client.user.displayAvatarURL()) 36 | message.channel.send(backups) 37 | }).catch((err) => { 38 | let nobackupfound = new Discord.MessageEmbed() 39 | .setAuthor(client.user.username, client.user.displayAvatarURL) 40 | .setDescription(`No Backup Found For ${backupID} ${attention}`) 41 | .setFooter(message.author.username, message.author.displayAvatarURL()) 42 | return message.channel.send(nobackupfound); 43 | }); 44 | } 45 | } -------------------------------------------------------------------------------- /commands/backup/backup-remove.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const db = require("quick.db") 3 | const fs = require('fs') 4 | const yaml = require("js-yaml"); 5 | const backup = require("discord-backup") 6 | const { attention, permission, messagesfetchlimts, yes, arrowhere, botlog, no } = yaml.load(fs.readFileSync("./config.yml")); 7 | 8 | module.exports = { 9 | config: { 10 | name: "backup-remove", 11 | description: "Remove Backup.", 12 | accessableby: "Administrator", 13 | category: "backup", 14 | aliases: [], 15 | usage: '' 16 | }, 17 | run: async (client, message, args) => { 18 | 19 | let backupID = args[0]; 20 | if(!backupID){ 21 | let notvaild = new Discord.MessageEmbed() 22 | .setAuthor(client.user.username, client.user.displayAvatarURL) 23 | .setDescription(`${arrowhere} You must specify a valid backup ID To Remove ${no}`) 24 | .setFooter(message.author.username, message.author.displayAvatarURL()) 25 | 26 | return message.channel.send(notvaild); 27 | } 28 | backup.fetch(backupID).then((backupInfos) => { 29 | backup.remove(backupID) 30 | let backups = new Discord.MessageEmbed() 31 | .setAuthor(message.author.username, message.author.displayAvatarURL()) 32 | .setDescription(`** BACKUP DELETE**`) 33 | .setFooter(client.user.username, client.user.displayAvatarURL()) 34 | client.channels.cache.get(botlog).send(`** NEW BACKUP DELETED**\n Author: ${message.author.username}`) 35 | message.channel.send(backups) 36 | }).catch((err) => { 37 | let nobackupfound = new Discord.MessageEmbed() 38 | .setAuthor(client.user.username, client.user.displayAvatarURL) 39 | .setDescription(`No Backup Found For ${backupID} ${attention}`) 40 | .setFooter(message.author.username, message.author.displayAvatarURL()) 41 | return message.channel.send(nobackupfound); 42 | }); 43 | } 44 | } -------------------------------------------------------------------------------- /commands/economy/addmoney.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require("quick.db"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "addmoney", 7 | aliases: ["am"], 8 | category: "economy", 9 | description: "Adds Money to a user", 10 | usage: "[ mention | ID]", 11 | accessableby: "Administrator, Owner" 12 | }, 13 | run: async (bot, message, args) => { 14 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("❌ You Do Not Have Permissions To Add Money! - [ADMINISTRATOR]"); 15 | if (!args[0]) return message.channel.send("**Please Enter A User!**") 16 | 17 | let user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args[0].toLocaleLowerCase()); 18 | if (!user) return message.channel.send("**Enter A Valid User!**") 19 | if (!args[1]) return message.channel.send("**Please Enter A Amount!**") 20 | if (isNaN(args[1])) return message.channel.send(`**❌ Your Amount Is Not A Number!**`); 21 | if (args[0] > 10000) return message.channel.send("**Cannot Add That Much Amount!**") 22 | db.add(`money_${user.id}`, args[1]) 23 | let bal = db.fetch(`money_${user.id}`) 24 | 25 | let moneyEmbed = new MessageEmbed() 26 | .setColor("GREEN") 27 | .setDescription(`✅ Added ${args[1]} coins\n\nNew Balance: ${bal}`); 28 | message.channel.send(moneyEmbed) 29 | 30 | } 31 | } -------------------------------------------------------------------------------- /commands/economy/balance.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require("quick.db"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "balance", 7 | aliases: ["bal"], 8 | category: "economy", 9 | description: "Shows Current Balance", 10 | usage: "[username | nickname | mention | ID](optional)", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let user = 15 | message.mentions.members.first() || 16 | message.guild.members.cache.get(args[0]) || 17 | message.guild.members.cache.find( 18 | r => 19 | r.user.username.toLowerCase() === args.join(" ").toLocaleLowerCase() 20 | ) || 21 | message.guild.members.cache.find( 22 | r => r.displayName.toLowerCase() === args.join(" ").toLocaleLowerCase() 23 | ) || 24 | message.member; 25 | 26 | let bal = db.fetch(`money_${user.id}`); 27 | 28 | if (bal === null) bal = 0; 29 | 30 | let bank = await db.fetch(`bank_${user.id}`); 31 | 32 | if (bank === null) bank = 0; 33 | 34 | if (user) { 35 | let moneyEmbed = new MessageEmbed() 36 | .setColor("GREEN") 37 | .setDescription( 38 | `**${user.user.username}'s Balance**\n\nPocket: ${bal}\nBank: ${bank}` 39 | ); 40 | message.channel.send(moneyEmbed); 41 | } else { 42 | return message.channel.send("**Enter A Valid User!**"); 43 | } 44 | } 45 | }; -------------------------------------------------------------------------------- /commands/economy/beg.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require("quick.db"); 3 | const ms = require("parse-ms"); 4 | 5 | module.exports = { 6 | config: { 7 | name: "beg", 8 | noalias: [""], 9 | category: "economy", 10 | description: "Beg for money", 11 | usage: " ", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | let user = message.author; 16 | 17 | let timeout = 120000; 18 | let amount = 20; 19 | 20 | let beg = await db.fetch(`beg_${user.id}`); 21 | 22 | if (beg !== null && timeout - (Date.now() - beg) > 0) { 23 | let time = ms(timeout - (Date.now() - beg)); 24 | 25 | let timeEmbed = new MessageEmbed() 26 | .setColor("GREEN") 27 | .setDescription(`❌ You've already begged recently\n\nBeg again in ${time.minutes}m ${time.seconds}s `); 28 | message.channel.send(timeEmbed) 29 | } else { 30 | let moneyEmbed = new MessageEmbed() 31 | .setColor("GREEN") 32 | .setDescription(`✅ You've begged and received ${amount} coins`); 33 | message.channel.send(moneyEmbed) 34 | db.add(`money_${user.id}`, amount) 35 | db.add(`begs_${user.id}`, 1) 36 | db.set(`beg_${user.id}`, Date.now()) 37 | 38 | 39 | } 40 | } 41 | }; -------------------------------------------------------------------------------- /commands/economy/daily.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require("quick.db"); 3 | const ms = require("parse-ms"); 4 | 5 | module.exports = { 6 | config: { 7 | name: "daily", 8 | aliases: ["coins-system"], 9 | category: "economy", 10 | description: "Gives You 200 per day", 11 | usage: " ", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | let user = message.author; 16 | 17 | let timeout = 86400000; 18 | let amount = 200; 19 | 20 | let daily = await db.fetch(`daily_${user.id}`); 21 | 22 | if (daily !== null && timeout - (Date.now() - daily) > 0) { 23 | let time = ms(timeout - (Date.now() - daily)); 24 | 25 | let timeEmbed = new MessageEmbed() 26 | .setColor("GREEN") 27 | .setDescription(`❌ You've already collected your daily reward\n\nCollect it again in ${time.hours}h ${time.minutes}m ${time.seconds}s `); 28 | message.channel.send(timeEmbed) 29 | } else { 30 | let moneyEmbed = new MessageEmbed() 31 | .setColor("GREEN") 32 | .setDescription(`✅ You've collected your daily reward of ${amount} coins`); 33 | message.channel.send(moneyEmbed) 34 | db.add(`money_${user.id}`, amount) 35 | db.set(`daily_${user.id}`, Date.now()) 36 | 37 | 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /commands/economy/leaderboard.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "leaderboard", 7 | aliases: ['lb'], 8 | category: 'economy', 9 | description: 'Shows Server\'s Top 10 Users of Economy Leaderboard', 10 | usage: ' ', 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let money = db.all().filter(data => data.ID.startsWith(`money_`)).sort((a, b) => b.data - a.data); 15 | if (!money.length) { 16 | let noEmbed = new MessageEmbed() 17 | .setAuthor(message.member.displayName, message.author.displayAvatarURL()) 18 | .setColor("GREEN") 19 | .setFooter("Nothing To See Here Yet!") 20 | return message.channel.send(noEmbed) 21 | }; 22 | 23 | money.length = 10; 24 | var finalLb = ""; 25 | for (var i in money) { 26 | if (money[i].data === null) money[i].data = 0 27 | finalLb += `**${money.indexOf(money[i]) + 1}. ${bot.users.cache.get(money[i].ID.split('_')[1]) ? bot.users.cache.get(money[i].ID.split('_')[1]).tag : "Unknown User#0000"}** - ${money[i].data} :dollar:\n`; 28 | }; 29 | 30 | const embed = new MessageEmbed() 31 | .setTitle(`Leaderboard Of ${message.guild.name}`) 32 | .setColor("GREEN") 33 | .setDescription(finalLb) 34 | .setFooter(bot.user.tag, bot.user.displayAvatarURL()) 35 | .setTimestamp() 36 | message.channel.send(embed); 37 | } 38 | }; -------------------------------------------------------------------------------- /commands/economy/pay.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require("quick.db"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "pay", 7 | noalias: [""], 8 | category: "economy", 9 | description: "Pay to Somebody", 10 | usage: "[mention | ID] ", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | try { 15 | let user2 = message.author 16 | if (!args[0]) return message.channel.send("**Please Enter A User!**"); 17 | let user = 18 | message.mentions.members.first() || 19 | message.guild.members.cache.get(args[0]) || 20 | message.guild.members.cache.find( 21 | r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase() 22 | ) || 23 | message.guild.members.cache.find( 24 | r => r.displayName.toLowerCase() === args[0].toLocaleLowerCase() 25 | ); 26 | if (!user) return message.channel.send("**Enter A Valid User!**"); 27 | 28 | let member = db.fetch(`money_${user2.id}`); 29 | 30 | let embed1 = new MessageEmbed() 31 | .setColor("GREEN") 32 | .setDescription(`❌ Mention someone to pay`); 33 | 34 | if (!args[0]) { 35 | return message.channel.send(embed1); 36 | } 37 | let embed2 = new MessageEmbed() 38 | .setColor("GREEN") 39 | .setDescription(`❌ You cannot pay yourself`); 40 | 41 | if (user.user.id === message.author.id) { 42 | return message.channel.send(embed2); 43 | } 44 | 45 | let embed3 = new MessageEmbed() 46 | .setColor("GREEN") 47 | .setDescription(`❌ Specify an amount to pay`); 48 | 49 | if (!args[1]) { 50 | return message.channel.send(embed3); 51 | } 52 | let embed4 = new MessageEmbed() 53 | .setColor("GREEN") 54 | .setDescription(`❌ Enter A Valid Amount!`); 55 | 56 | if (isNaN(args[1])) { 57 | return message.channel.send(embed4); 58 | } 59 | let embed5 = new MessageEmbed() 60 | .setColor("GREEN") 61 | .setDescription(`❌ You don't have that much money`); 62 | 63 | if (member < args[1]) { 64 | return message.channel.send(embed5); 65 | } 66 | 67 | let embed6 = new MessageEmbed() 68 | .setColor("GREEN") 69 | .setDescription(`✅ You have payed ${user.displayName} ${args[1]} coins`); 70 | 71 | message.channel.send(embed6); 72 | db.add(`money_${user.id}`, args[1]); 73 | db.subtract(`money_${user2.id}`, args[1]); 74 | } catch { 75 | 76 | } 77 | } 78 | }; -------------------------------------------------------------------------------- /commands/economy/removemoney.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed }= require("discord.js"); 2 | const db = require("quick.db"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "removemoney", 7 | aliases: ["rm"], 8 | category: "economy", 9 | description: "Removes money from a user", 10 | usage: "[ mention | ID]", 11 | accessableby: "Administrator, Owner" 12 | }, 13 | run: async (bot, message, args) => { 14 | if (!message.member.hasPermission("ADMINISTRATOR", "MANAGE_GUILD")) return message.channel.send("❌ You do not have permissions to remove money!"); 15 | if (!args[0]) return message.channel.send("**Please Enter A User!**") 16 | 17 | let user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args[0].toLocaleLowerCase()); 18 | if (!user) return message.channel.send("**Enter A Valid User!**") 19 | 20 | if (!args[1]) return message.channel.send("**Please Enter A Amount!**") 21 | if (isNaN(args[1])) return message.channel.send("**Enter Valid Amount!**"); 22 | let bal = await db.fetch(`money_${user.id}`) 23 | 24 | if (args[0] > bal) return message.channel.send("**Cannot Remove That Much Money!**") 25 | db.subtract(`money_${user.id}`, args[1]) 26 | let bal2 = await db.fetch(`money_${user.id}`) 27 | 28 | let moneyEmbed = new MessageEmbed() 29 | .setColor("GREEN") 30 | .setDescription(`✅ Removed ${args[1]} coins\n\nNew Balance: ${bal2}`); 31 | message.channel.send(moneyEmbed) 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /commands/economy/setbackground.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const { PREFIX } = require('../../config') 4 | 5 | module.exports = { 6 | config: { 7 | name: "setbackground", 8 | aliases: ['setbg'], 9 | category: "economy", 10 | description: 'Sets Profile Background', 11 | usage: "[upload Image]", 12 | accessableby: 'everyone' 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let prefix; 17 | let fetched = await db.fetch(`prefix_${message.guild.id}`); 18 | 19 | if (fetched === null) { 20 | prefix = PREFIX 21 | } else { 22 | prefix = fetched 23 | } 24 | let user = message.author; 25 | let amount = 250; 26 | let bal = await db.fetch(`money_${user.id}`) 27 | 28 | let newBg = message.attachments.first() 29 | let fetchBg = await db.fetch(`bg_${user.id}`); 30 | if (!newBg) { 31 | if (fetchBg) { 32 | return message.channel.send(`**Profile Background Already Set As - \`${fetchBg}\`**`) 33 | } else { 34 | return message.channel.send("**You Need To Upload The Image To Set New Background!**") 35 | } 36 | } 37 | 38 | if (bal < amount) return message.channel.send(`**You Do Not Have Sufficient Money!\nPrice To Change Background - ${amount}**`) 39 | db.subtract(`money_${user.id}`, amount) 40 | db.set(`bg_${user.id}`, newBg.url) 41 | 42 | let embed = new MessageEmbed() 43 | .setColor("GREEN") 44 | .setAuthor(`Your Background Image Has Been Set`, user.displayAvatarURL()) 45 | .setDescription(`**\`${amount}\` Has Been Deducted And Profile Background Has Been Set\nLink - \`${newBg.url}\`!**`) 46 | .setFooter(`To Check Background Type ${prefix}profile`) 47 | return message.channel.send(embed) 48 | } 49 | } -------------------------------------------------------------------------------- /commands/economy/setinfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const db = require('quick.db'); 3 | const { chunk } = require('../../functions'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "setinfo", 8 | aliases: ['setbio'], 9 | description: "Set Profile Description", 10 | category: 'economy', 11 | usage: '[info]', 12 | accessableby: 'everyone' 13 | }, 14 | run: async (bot, message, args) => { 15 | let user = message.author; 16 | if (!args[0]) { 17 | let fetchInfo = await db.fetch(`info_${user.id}`) 18 | if (fetchInfo) { 19 | let embed = new MessageEmbed() 20 | .setColor("GREEN") 21 | .setAuthor('Info Is Already Set', message.author.displayAvatarURL()) 22 | .setDescription(`**${fetchInfo}**`) 23 | .setFooter(message.guild.name, message.guild.iconURL()) 24 | return message.channel.send(embed) 25 | } 26 | } 27 | let newInfo = args.join(' '); 28 | if (!newInfo) return message.channel.send('**Please Enter Your Info!**'); 29 | if (newInfo.length > 165) return message.channel.send(`**Max \`165\` Characters Allowed!**`); 30 | let newsInfo = chunk(newInfo, 42).join('\n'); 31 | db.set(`info_${user.id}`, newsInfo); 32 | 33 | let notesEmbed = new MessageEmbed() 34 | .setColor("GREEN") 35 | .setAuthor(`Your Info Box Has Been Set`, message.author.displayAvatarURL()) 36 | .setDescription(newsInfo) 37 | .setFooter(message.guild.name, message.guild.iconURL()) 38 | message.channel.send(notesEmbed); 39 | } 40 | }; -------------------------------------------------------------------------------- /commands/economy/slots.js: -------------------------------------------------------------------------------- 1 | const slotItems = ["🍇", "🍉", "🍌", "🍎", "🍒"]; 2 | const db = require("quick.db"); 3 | const { MessageEmbed } = require('discord.js'); 4 | 5 | module.exports = { 6 | config: { 7 | name:"slots", 8 | aliases: ["sl"], 9 | category: "economy", 10 | description: "Slot game | 9x - rare | 3x - common", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let user = message.author; 17 | let moneydb = await db.fetch(`money_${user.id}`) 18 | let money = parseInt(args[0]); 19 | let win = false; 20 | 21 | let moneymore = new MessageEmbed() 22 | .setColor("GREEN") 23 | .setDescription(`❌ You are betting more than you have`); 24 | 25 | let moneyhelp = new MessageEmbed() 26 | .setColor("GREEN") 27 | .setDescription(`❌ Specify an amount`); 28 | 29 | if (!money) return message.channel.send(moneyhelp); 30 | if (money > moneydb) return message.channel.send(moneymore); 31 | 32 | let number = [] 33 | for (let i = 0; i < 3; i++) { number[i] = Math.floor(Math.random() * slotItems.length); } 34 | 35 | if (number[0] == number[1] && number[1] == number[2]) { 36 | money *= 9 37 | win = true; 38 | } else if (number[0] == number[1] || number[0] == number[2] || number[1] == number[2]) { 39 | money *= 3 40 | win = true; 41 | } 42 | if (win) { 43 | let slotsEmbed1 = new MessageEmbed() 44 | .setDescription(`${slotItems[number[0]]} | ${slotItems[number[1]]} | ${slotItems[number[2]]}\n\nYou won ${money} coins`) 45 | .setColor("GREEN") 46 | message.channel.send(slotsEmbed1) 47 | db.add(`money_${user.id}`, money) 48 | } else { 49 | let slotsEmbed = new MessageEmbed() 50 | .setDescription(`${slotItems[number[0]]} | ${slotItems[number[1]]} | ${slotItems[number[2]]}\n\nYou lost ${money} coins`) 51 | .setColor("GREEN") 52 | message.channel.send(slotsEmbed) 53 | db.subtract(`money_${user.id}`, money) 54 | } 55 | 56 | } 57 | } -------------------------------------------------------------------------------- /commands/economy/store.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const { PREFIX } = require('../../config'); 3 | const db = require('quick.db'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "store", 8 | noalias: [""], 9 | category: "economy", 10 | description: "Shows list of items", 11 | usage: " ", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | let prefix; 16 | let fetched = await db.fetch(`prefix_${message.guild.id}`); 17 | 18 | if (fetched === null) { 19 | prefix = PREFIX 20 | } else { 21 | prefix = fetched 22 | } 23 | 24 | let embed = new MessageEmbed() 25 | .setDescription(`**VIP Ranks**\n\nBronze: 200 Coins [${prefix}buy/${prefix}sell bronze]\n\n**Lifestyle Items**\n\nFresh Nikes: 600 [${prefix}buy/${prefix}sell nikes]\nCar: 800 [${prefix}buy/${prefix}sell car]\nMansion: 1200 [${prefix}buy/${prefix}sell mansion]`) 26 | .setColor("GREEN") 27 | message.channel.send(embed) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/economy/weekly.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require("quick.db"); 3 | const ms = require("parse-ms"); 4 | 5 | module.exports = { 6 | config: { 7 | name: "coins-system", 8 | aliases: ["week"], 9 | category: "economy", 10 | description: "Gives You 5000 per Day", 11 | usage: " ", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let user = message.author; 17 | let timeout = 604800000; 18 | let amount = 5000; 19 | 20 | let weekly = await db.fetch(`weekly_${user.id}`); 21 | 22 | if (weekly !== null && timeout - (Date.now() - weekly) > 0) { 23 | let time = ms(timeout - (Date.now() - weekly)); 24 | 25 | let timeEmbed = new MessageEmbed() 26 | .setColor("GREEN") 27 | .setDescription(`❌ You have already collected your weekly reward\n\nCollect it again in ${time.days}d ${time.hours}h ${time.minutes}m ${time.seconds}s `); 28 | message.channel.send(timeEmbed) 29 | } else { 30 | let moneyEmbed = new MessageEmbed() 31 | .setColor("GREEN") 32 | .setDescription(`✅ You've collected your weekly reward of ${amount} coins`); 33 | message.channel.send(moneyEmbed) 34 | db.add(`money_${user.id}`, amount) 35 | db.set(`weekly_${user.id}`, Date.now()) 36 | 37 | 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /commands/economy/withdraw.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require("quick.db"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "withdraw", 7 | aliases: ["wd"], 8 | category: "economy", 9 | description: "Withdraws Money From Bank", 10 | usage: "" 11 | }, 12 | run: async (bot, message, args) => { 13 | let user = message.author; 14 | 15 | let member2 = db.fetch(`bank_${user.id}`) 16 | 17 | if (args.join(' ').toLocaleLowerCase() == 'all') { 18 | let money = await db.fetch(`bank_${user.id}`) 19 | let embed = new MessageEmbed() 20 | .setColor("GREEN") 21 | .setDescription(`❌**You Do Not Have Any Money To Withdraw!**`) 22 | if (!money) return message.channel.send(embed) 23 | db.subtract(`bank_${user.id}`, money) 24 | db.add(`money_${user.id}`, money) 25 | let embed5 = new MessageEmbed() 26 | .setColor("GREEN") 27 | .setDescription(`✅ You have withdrawn all your coins from your bank`); 28 | message.channel.send(embed5) 29 | 30 | } else { 31 | 32 | let embed2 = new MessageEmbed() 33 | .setColor("GREEN") 34 | .setDescription(`❌ Specify an amount to withdraw!`); 35 | 36 | if (!args[0]) { 37 | return message.channel.send(embed2) 38 | } 39 | let embed6 = new MessageEmbed() 40 | .setColor("GREEN") 41 | .setDescription(`❌ Your Amount Is Not A Number!`) 42 | 43 | if(isNaN(args[0])) { 44 | return message.channel.send(embed6) 45 | } 46 | let embed3 = new MessageEmbed() 47 | .setColor("GREEN") 48 | .setDescription(`❌ You can't withdraw negative money!`); 49 | 50 | if (message.content.includes('-')) { 51 | return message.channel.send(embed3) 52 | } 53 | let embed4 = new MessageEmbed() 54 | .setColor("GREEN") 55 | .setDescription(`❌ You don't have that much money in the bank!`); 56 | 57 | if (member2 < args[0]) { 58 | return message.channel.send(embed4) 59 | } 60 | 61 | let embed5 = new MessageEmbed() 62 | .setColor("GREEN") 63 | .setDescription(`✅ You have withdrawn ${args[0]} coins from your bank!`); 64 | 65 | message.channel.send(embed5) 66 | db.subtract(`bank_${user.id}`, args[0]) 67 | db.add(`money_${user.id}`, args[0]) 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /commands/economy/work.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db') 2 | const { MessageEmbed } = require('discord.js') 3 | const ms = require("parse-ms"); 4 | const Jwork = require('../../JSON/works.json'); 5 | const JworkR = Jwork[Math.floor(Math.random() * Jwork.length)]; 6 | 7 | module.exports = { 8 | config: { 9 | name: "work", 10 | aliases: ["wr"], 11 | category: "economy", 12 | description: "Work to Earn Money", 13 | usage: " ", 14 | accessableby: "everyone" 15 | }, 16 | run: async (bot, message, args) => { 17 | 18 | let user = message.author; 19 | let author = await db.fetch(`work_${user.id}`) 20 | 21 | let timeout = 1800000; 22 | 23 | if (author !== null && timeout - (Date.now() - author) > 0) { 24 | let time = ms(timeout - (Date.now() - author)); 25 | 26 | let timeEmbed = new MessageEmbed() 27 | .setColor("GREEN") 28 | .setDescription(`❌ You have already worked recently\n\nTry again in ${time.minutes}m ${time.seconds}s `); 29 | message.channel.send(timeEmbed) 30 | } else { 31 | let amount = Math.floor(Math.random() * 80) + 1; 32 | let embed1 = new MessageEmbed() 33 | .setColor("GREEN") 34 | .setDescription(`✅ **${JworkR} ${amount}**`) 35 | message.channel.send(embed1) 36 | 37 | db.add(`works_${user.id}`, 1) 38 | db.add(`money_${user.id}`, amount) 39 | db.set(`work_${user.id}`, Date.now()) 40 | }; 41 | } 42 | }; -------------------------------------------------------------------------------- /commands/emojis/baka.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-baka", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random baka image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/baka"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("BAKA! 🤦") 22 | .setDescription(`${victim} got instructed by ${message.author}`) 23 | .setImage(body.url) 24 | .setTimestamp() 25 | .setFooter('© Dark Global'); 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/emojis/cuddle.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-cuddle", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random cuddle image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/cuddle"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Cuddle Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/feed.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-feed", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random feed image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/feed"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Feed Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/foxgirl.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-foxgirl", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random foxgirl image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/foxgirl"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your FoxGirl Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/gecg.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-gecg", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random gecg image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/gecg"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Gecg Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/goose.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-goose", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random goose image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/goose"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Goose Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/holo.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-holo", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random holo image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/holo"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Holo Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/hug.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-hug", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random hug image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/hug"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Hug 🤗") 22 | .setDescription(`${victim} is hugged by ${message.author}`) 23 | .setImage(body.url) 24 | .setTimestamp() 25 | .setFooter('© Dark Global'); 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/emojis/kemonomimi.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-kemonomimi", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random kemonomimi image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/kemonomimi"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Kemonomimi Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/kiss.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-kiss", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random kiss image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/kiss"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Kiss 😘") 22 | .setDescription(`${victim} is kissed by ${message.author}`) 23 | .setImage(body.url) 24 | .setTimestamp() 25 | .setFooter('© Dark Global'); 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/emojis/lizard.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-lizard", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random lizard image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/lizard"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your LIZARD 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/meow.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-meow", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random meow image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/meow"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your MEOW 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/neko.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-neko", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random neko image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/neko"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Neko Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/nekogif.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-nekogif", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random neko gif", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/nekogif"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Neko Gif 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/poke.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-poke", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random poke image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/poke"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Pokie, Pokie! 😂") 22 | .setDescription(`${victim} got poked by ${message.author}`) 23 | .setImage(body.url) 24 | .setTimestamp() 25 | .setFooter('© Dark Global'); 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/emojis/slap.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-slap", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random slap image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/slap"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Slapped! 😔") 22 | .setDescription(`${victim} got slapped by ${message.author}`) 23 | .setImage(body.url) 24 | .setTimestamp() 25 | .setFooter('© Dark Global'); 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/emojis/smug.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-smug", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random smug image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/smug"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Smug 😏") 22 | .setDescription(`${victim} smugged by ${message.author}`) 23 | .setImage(body.url) 24 | .setTimestamp() 25 | .setFooter('© Dark Global'); 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/emojis/tickle.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-tickle", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random tickle image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/tickle"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Tickle Tickle! 😂") 22 | .setDescription(`${victim} tickled by ${message.author}`) 23 | .setImage(body.url) 24 | .setTimestamp() 25 | .setFooter('© Dark Global'); 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/emojis/waifu.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-waifu", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random waifu image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/waifu"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Waifu Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/emojis/woof.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "emoji-woof", 8 | noalias: [''], 9 | category: "emojis", 10 | description: "Shows random woof image", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | 16 | let victim = message.mentions.users.first() || (args.length > 0 ? message.users.cache.filter(e => e.username.toLowerCase().includes(args.join(" ").toLowerCase())).first(): message.author) || message.author; 17 | const { body } = await superagent 18 | .get("https://nekos.life/api/v2/img/woof"); 19 | const embed = new MessageEmbed() 20 | .setColor("FF0000") 21 | .setTitle("Here's your Woof Image 🤗") 22 | .setImage(body.url) 23 | .setTimestamp() 24 | .setFooter('© Dark Global'); 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/fun/advice.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const Random = require("srod-v2"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "advice", 7 | category: "fun", 8 | noalias: [''], 9 | description: "Sending random advice", 10 | usage: "[text]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let Advice = await Random.GetAdvice("BLUE"); 15 | message.channel.send(Advice); 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /commands/fun/ascii.js: -------------------------------------------------------------------------------- 1 | const figlet = require('figlet'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "ascii", 6 | category: "fun", 7 | noalias: "No Aliases", 8 | usage: " ", 9 | description: "Sends an ascii font", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | if(!args[0]) return message.channel.send('Please provide some text'); 14 | 15 | msg = args.join(" "); 16 | 17 | figlet.text(msg, function (err, data){ 18 | if(err){ 19 | console.log('Something went wrong'); 20 | console.dir(err); 21 | } 22 | if(data.length > 2000) return message.channel.send('Please provide text shorter than 2000 characters') 23 | 24 | message.channel.send('```' + data + '```') 25 | }) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /commands/fun/calculate.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const math = require('mathjs'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "calculate", 7 | aliases: ['calc', 'calculator'], 8 | description: "Shows Calculated Answers Of User's Query", 9 | usage: "[query](mathematical)", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | 14 | if (!args[0]) return message.channel.send("**Enter Something To Calculate**"); 15 | 16 | let result; 17 | try { 18 | result = math.evaluate(args.join(" ").replace(/[x]/gi, "*").replace(/[,]/g, ".").replace(/[÷]/gi, "/")); 19 | } catch (e) { 20 | return message.channel.send("**Enter Valid Calculation!**\n\n**List of Calculations** - \n1. **sqrt equation** - `sqrt(3^2 + 4^2) = 5`\n2. **Units to Units** - `2 inch to cm = 0.58`\n3. **Complex Expressions Like** - `cos(45 deg) = 0.7071067811865476`\n4. **Basic Maths Expressions** - `+, -, ^, /, decimals` = **2.5 - 2 = 0.5**"); 21 | } 22 | 23 | let embed = new Discord.MessageEmbed() 24 | .setColor("GREEN") 25 | .setAuthor(`${bot.user.username} Calculator`, message.author.displayAvatarURL({ dynamic: true })) 26 | .addField("**Operation**", `\`\`\`Js\n${args.join("").replace(/[x]/gi, "*").replace(/[,]/g, ".").replace(/[÷]/gi, "/")}\`\`\``) 27 | .addField("**Result**", `\`\`\`Js\n${result}\`\`\``) 28 | .setFooter(message.guild.name, message.guild.iconURL()); 29 | message.channel.send(embed); 30 | } 31 | } -------------------------------------------------------------------------------- /commands/fun/coinflip.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "coinflip", 6 | aliases: ['cf', 'coin', 'flip'], 7 | category: 'fun', 8 | description: 'flips a coin', 9 | usage: ' ', 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | const n = Math.floor(Math.random() * 2); 14 | let result; 15 | if (n === 1) result = 'Heads'; 16 | else result = 'Tails'; 17 | const embed = new MessageEmbed() 18 | .setColor("GREEN") 19 | .setDescription(`**${message.member.displayName} Flipped ${result}**!`) 20 | message.channel.send(embed); 21 | } 22 | }; -------------------------------------------------------------------------------- /commands/fun/fact.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const Random = require("srod-v2"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "fact", 7 | category: "fun", 8 | noalias: [''], 9 | description: "Sending random fact", 10 | usage: "[text]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let Fact = await Random.GetFact("BLUE"); 15 | message.channel.send(Fact); 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /commands/fun/joke.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const Random = require("srod-v2"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "joke", 7 | category: "fun", 8 | noalias: [''], 9 | description: "Sending random joke", 10 | usage: "[text]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let Joke = await Random.GetJoke("BLUE"); 15 | message.channel.send(Joke); 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /commands/fun/meme.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const randomPuppy = require("random-puppy"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "meme", 7 | category: "fun", 8 | noalias: "No Aliases", 9 | usage: " ", 10 | description: "Sends an epic meme", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | const subReddits = ["dankmeme", "meme", "me_irl"]; 16 | const random = subReddits[Math.floor(Math.random() * subReddits.length)]; 17 | 18 | const img = await randomPuppy(random); 19 | const embed = new MessageEmbed() 20 | .setColor("RANDOM") 21 | .setImage(img) 22 | .setTitle("meme!") 23 | .setURL(`https://reddit.com/r/${random}`); 24 | 25 | message.channel.send(embed); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /commands/fun/motivation.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const jsonQuotes = require('../../JSON/motivational.json') 3 | 4 | module.exports = { 5 | config: { 6 | name: 'motivation', 7 | aliases: ['motivate', 'motivational'], 8 | description: 'Get a random motivation quote', 9 | category: "fun", 10 | usage: "[username | nickname | mention | ID](optional)", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.member; 15 | 16 | const randomQuote = jsonQuotes.quotes[Math.floor((Math.random() * jsonQuotes.quotes.length))]; 17 | if (!args[0]) { 18 | const quoteEmbed = new MessageEmbed() 19 | .setAuthor(message.guild.name, message.guild.iconURL()) 20 | .setTitle(randomQuote.author) 21 | .setDescription(randomQuote.text) 22 | .setColor('GREEN') 23 | .setFooter(member.displayName, member.user.displayAvatarURL()) 24 | .setTimestamp() 25 | return message.channel.send(quoteEmbed); 26 | } 27 | else if (args[0]) { 28 | const embed = new MessageEmbed() 29 | .setAuthor(message.guild.name, message.guild.iconURL()) 30 | .setColor("GREEN") 31 | .setTitle(`${randomQuote.author} -`) 32 | .setDescription(`**${randomQuote.text}** \n\nBy ${message.member.displayName} to ${member.displayName}`) 33 | .setFooter(member.displayName, member.user.displayAvatarURL()) 34 | .setTimestamp() 35 | message.channel.send(embed) 36 | } 37 | } 38 | }; -------------------------------------------------------------------------------- /commands/fun/roast.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const roasts = require('../../JSON/roast.json'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "roast", 7 | category: "fun", 8 | noalias: [''], 9 | description: "Roasts people", 10 | usage: "[username | nickname | mention | ID]", 11 | accesableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()); 16 | 17 | let roast = roasts.roast[Math.floor((Math.random() * roasts.roast.length))]; 18 | 19 | if(!args[0]) { 20 | const sembed = new MessageEmbed() 21 | .setAuthor(message.guild.name, message.guild.iconURL()) 22 | .setColor("GREEN") 23 | .setDescription("**Do You Really Want To Roast Yourself?**") 24 | .setFooter(message.member.displayName, message.author.displayAvatarURL()) 25 | .setTimestamp() 26 | message.channel.send(sembed); 27 | } 28 | else if (args[0]) { 29 | const embed = new MessageEmbed() 30 | .setAuthor(message.guild.name, message.guild.iconURL()) 31 | .setTitle(`${message.author.username}-`) 32 | .setColor("GREEN") 33 | .setDescription(`${roast}`) 34 | .setFooter(member.displayName, member.user.displayAvatarURL()) 35 | .setTimestamp() 36 | message.channel.send(embed); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /commands/fun/say.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const { greenlight } = require("../../JSON/colours.json") 3 | 4 | module.exports = { 5 | config: { 6 | name: "say", 7 | category: "fun", 8 | noalias: [''], 9 | description: "Says your input via the bot", 10 | usage: "[text]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | try { 15 | if (args.length === 0) 16 | return message.channel.send("**Enter Some Text!**") 17 | message.delete({ timeout: 1000 }) 18 | 19 | const embed = new MessageEmbed() 20 | .setDescription(args.join(" ")) 21 | .setColor(greenlight); 22 | 23 | message.channel.send(embed) 24 | } catch (e) { 25 | throw e; 26 | }; 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /commands/fun/tts.js: -------------------------------------------------------------------------------- 1 | const request = require("node-superfetch"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "tts", 6 | aliases: ["texttospeech"], 7 | category: "fun", 8 | usage: "Converts Text To Speech", 9 | description: "Convert Text-to-Speech", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args, ops) => { 13 | if (!args[0]) 14 | return message.channel.send( 15 | "**Please Enter Something To Convert To Speech!**" 16 | ); 17 | let text = args.join(" "); 18 | let serverQueue = ops.queue.get(message.guild.id) 19 | if (text.length > 1024) 20 | return message.channel.send( 21 | "**Please Enter Text Between 0 And 1024 Characters!**" 22 | ); 23 | const voiceChannel = message.member.voice.channel; 24 | if (!voiceChannel) 25 | return message.channel.send("**Please Join A Voice Channel First!**"); 26 | if ( 27 | !voiceChannel 28 | .permissionsFor(message.client.user) 29 | .has(["CONNECT", "SPEAK"]) 30 | ) { 31 | return message.channel.send( 32 | "**Missing Permissions For The Voice Channel! - [CONNECT, SPEAK]**" 33 | ); 34 | } 35 | if (serverQueue) return message.channel.send("**Cannot Play TTS While Music Is Being Played!**") 36 | if (!voiceChannel.joinable) 37 | return message.channel.send("**Cannot Join Voice Channel!**"); 38 | if (bot.voice.connections.has(voiceChannel.guild.id)) 39 | return message.channel.send("**I Am Already Converting TTS!**"); 40 | try { 41 | const connection = await voiceChannel.join(); 42 | const { url } = await request 43 | .get("http://tts.cyzon.us/tts") 44 | .query({ text }); 45 | const dispatcher = connection.play(url); 46 | await message.react("🔉"); 47 | dispatcher.once("finish", () => voiceChannel.leave()); 48 | dispatcher.once("error", () => voiceChannel.leave()); 49 | return null; 50 | } catch (err) { 51 | voiceChannel.leave(); 52 | console.log(err) 53 | return message.channel.send( 54 | `**Oh No, An Error Occurred: Try Again Later!**` 55 | ); 56 | } 57 | } 58 | }; 59 | -------------------------------------------------------------------------------- /commands/fun/urbandictionary.js: -------------------------------------------------------------------------------- 1 | const urban = require('relevant-urban'); 2 | const { MessageEmbed } = require('discord.js'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "urbandictionary", 7 | aliases: ["ud", "urban"], 8 | category: "fun", 9 | description: "Give information about urban words!", 10 | usage: "[word]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | if(!args[0]) 15 | return message.channel.send("Please Enter Something To Search"); 16 | 17 | let image = "http://cdn.marketplaceimages.windowsphone.com/v8/images/5c942bfe-6c90-45b0-8cd7-1f2129c6e319?imageType=ws_icon_medium"; 18 | try { 19 | let res = await urban(args.join(' ')) 20 | if (!res) return message.channel.send("No results found for this topic, sorry!"); 21 | let { word, urbanURL, definition, example, thumbsUp, thumbsDown, author } = res; 22 | 23 | let embed = new MessageEmbed() 24 | .setColor("GREEN") 25 | .setAuthor(`Word - ${word}`) 26 | .setThumbnail(image) 27 | .setDescription(`**Defintion:**\n*${definition || "No definition"}*\n\n**Example:**\n*${example || "No Example"}*`) 28 | .addField('**Rating:**', `**\`Upvotes: ${thumbsUp} | Downvotes: ${thumbsDown}\`**`) 29 | .addField("**Link**", `[link to ${word}](${urbanURL})`) 30 | .addField("**Author:**", `${author || "unknown"}`) 31 | .setTimestamp() 32 | 33 | message.channel.send(embed) 34 | 35 | } catch (e) { 36 | console.log(e) 37 | return message.channel.send("looks like i've broken! Try again") 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /commands/fun/why.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const Random = require("srod-v2"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "why", 7 | category: "fun", 8 | noalias: [''], 9 | description: "Sending random why", 10 | usage: "[text]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let Why = await Random.GetWhy("BLUE"); 15 | message.channel.send(Why); 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /commands/games/memory.js: -------------------------------------------------------------------------------- 1 | const { stripIndents } = require('common-tags'); 2 | const { delay } = require('../../functions'); 3 | const directions = ['up', 'down', 'left', 'right']; 4 | const colors = ['red', 'blue', 'green', 'yellow']; 5 | const fruits = ['apple', 'orange', 'pear', 'banana']; 6 | 7 | module.exports = { 8 | config: { 9 | name: 'memory', 10 | noalias: [''], 11 | category: 'games', 12 | usage: '[number](1 - 20)', 13 | description: 'Test Your Memory', 14 | accessableby: 'everyone' 15 | }, 16 | run: async (bot, message, args, ops) => { 17 | if (!args[0]) return message.channel.send('**How Many Directions Do You Want To Have To Memorize?**'); 18 | let level = args[0]; 19 | if (level < 1 || level > 20) return message.channel.send('**You Can Only Select Between 1 - 20!**'); 20 | const current = ops.games.get(message.channel.id); 21 | if (current) return message.channel.send(`**Please Wait Until The Current Game of \`${current.name}\` is Finished!**`); 22 | ops.games.set(message.channel.id, { name: 'memory' }); 23 | try { 24 | const memorize = genArray(level); 25 | const memorizeDisplay = memorize.map(word => `\`${word.toUpperCase()}\``).join(' '); 26 | const memorizemessage = await message.channel.send(stripIndents` 27 | **You Have 10 Seconds To Memorize -** 28 | ${memorizeDisplay} 29 | `); 30 | await delay(10000); 31 | await memorizemessage.edit('**Type What You Saw, Just The Words!**'); 32 | const memorizeType = memorize.join(' '); 33 | const messages = await message.channel.awaitMessages(res => message.author.id === res.author.id, { 34 | max: 1, 35 | time: 30000 36 | }); 37 | ops.games.delete(message.channel.id); 38 | if (!messages.size) return message.channel.send(`**Time Uup! It Was ${memorizeDisplay}!**`); 39 | const answer = messages.first().content.toLowerCase(); 40 | if (answer !== memorizeType) return message.channel.send(`**You Typed It Wrong, It Was ${memorizeDisplay}!**`); 41 | return message.channel.send('**You Won!**'); 42 | } catch (err) { 43 | ops.games.delete(message.channel.id); 44 | throw err; 45 | }; 46 | function genArray(level) { 47 | const sourceArr = [colors, directions, fruits][Math.floor(Math.random() * 3)]; 48 | const arr = []; 49 | for (let i = 0; i < level; i++) arr.push(sourceArr[Math.floor(Math.random() * sourceArr.length)]); 50 | return arr; 51 | }; 52 | } 53 | }; -------------------------------------------------------------------------------- /commands/games/rps.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const { promptMessage } = require("../../functions"); 3 | 4 | const chooseArr = ["🗻", "📰", "✂"]; 5 | 6 | module.exports = { 7 | config: { 8 | name: "rps", 9 | category: "games", 10 | aliases: ['rockpaperscissors'], 11 | description: "Rock Paper Scissors Game. React to one of the emojis to play the game.", 12 | usage: " ", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | try 17 | { const embed = new MessageEmbed() 18 | .setColor("GREEN") 19 | .setAuthor(message.member.displayName, message.author.displayAvatarURL()) 20 | .setFooter(message.guild.me.displayName, bot.user.displayAvatarURL()) 21 | .setDescription("**Play A Game of RPS Against The Bot!\nSelect Reactions To Play!**") 22 | .setTimestamp(); 23 | 24 | const m = await message.channel.send(embed); 25 | const reacted = await promptMessage(m, message.author, 30, chooseArr); 26 | 27 | const botChoice = chooseArr[Math.floor(Math.random() * chooseArr.length)]; 28 | 29 | const result = await getResult(reacted, botChoice); 30 | await m.reactions.removeAll(); 31 | 32 | embed 33 | .setDescription("") 34 | .addField(`**${result}**`, `${reacted} vs ${botChoice}`); 35 | 36 | m.edit(embed); 37 | 38 | } catch { 39 | return message.channel.send('**Missing Permissions - [MANAGE_MESSAGES]!**') 40 | } 41 | function getResult(me, botChosen) { 42 | if ((me === "🗻" && botChosen === "✂") || 43 | (me === "📰" && botChosen === "🗻") || 44 | (me === "✂" && botChosen === "📰")) { 45 | return "You won!"; 46 | } else if (me === botChosen) { 47 | return "Its a tie!"; 48 | } else { 49 | return "You lost!"; 50 | } 51 | 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /commands/giveaway/end.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js') 2 | const ms = require('ms'); 3 | module.exports = { 4 | config: { 5 | name: "end", 6 | description: "Ending giveaway", 7 | accessableby: "Administrator", 8 | category: "giveaway", 9 | aliases: ["giveaway-end"], 10 | usage: '' 11 | }, 12 | run: async (bot, message, args) => { 13 | if(!message.member.hasPermission('MANAGE_MESSAGES') && !message.member.roles.cache.some((r) => r.name === "Giveaways")){ 14 | return message.channel.send(':x: You need to have the manage messages permissions to reroll giveaways.'); 15 | } 16 | 17 | // If no message ID or giveaway name is specified 18 | if(!args[0]){ 19 | return message.channel.send(':x: You have to specify a valid message ID!'); 20 | } 21 | 22 | // try to found the giveaway with prize then with ID 23 | let giveaway = 24 | // Search with giveaway prize 25 | bot.giveawaysManager.giveaways.find((g) => g.prize === args.join(' ')) || 26 | // Search with giveaway ID 27 | bot.giveawaysManager.giveaways.find((g) => g.messageID === args[0]); 28 | 29 | // If no giveaway was found 30 | if(!giveaway){ 31 | return message.channel.send('Unable to find a giveaway for `'+ args.join(' ') + '`.'); 32 | } 33 | 34 | // Edit the giveaway 35 | bot.giveawaysManager.edit(giveaway.messageID, { 36 | setEndTimestamp: Date.now() 37 | }) 38 | // Success message 39 | .then(() => { 40 | // Success message 41 | message.channel.send('Giveaway will end in less than '+(bot.giveawaysManager.options.updateCountdownEvery/1000)+' seconds...'); 42 | }) 43 | .catch((e) => { 44 | if(e.startsWith(`Giveaway with message ID ${giveaway.messageID} is already ended.`)){ 45 | message.channel.send('This giveaway is already ended!'); 46 | } else { 47 | console.error(e); 48 | message.channel.send('An error occured...'); 49 | } 50 | }); 51 | } 52 | } -------------------------------------------------------------------------------- /commands/giveaway/reroll.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js') 2 | const ms = require('ms'); 3 | module.exports = { 4 | config: { 5 | name: "reroll", 6 | description: "Rerolling giveaway winner", 7 | accessableby: "Administrator", 8 | category: "giveaway", 9 | aliases: ["giveaway-reroll"], 10 | usage: '' 11 | }, 12 | run: async (bot, message, args) => { 13 | if(!message.member.hasPermission('MANAGE_MESSAGES') && !message.member.roles.cache.some((r) => r.name === "Giveaways")){ 14 | return message.channel.send(':x: You need to have the manage messages permissions to reroll giveaways.'); 15 | } 16 | 17 | // If no message ID or giveaway name is specified 18 | if(!args[0]){ 19 | return message.channel.send(':x: You have to specify a valid message ID!'); 20 | } 21 | 22 | // try to found the giveaway with prize then with ID 23 | let giveaway = 24 | // Search with giveaway prize 25 | bot.giveawaysManager.giveaways.find((g) => g.prize === args.join(' ')) || 26 | // Search with giveaway ID 27 | bot.giveawaysManager.giveaways.find((g) => g.messageID === args[0]); 28 | 29 | // If no giveaway was found 30 | if(!giveaway){ 31 | return message.channel.send('Unable to find a giveaway for `'+ args.join(' ') +'`.'); 32 | } 33 | 34 | // Reroll the giveaway 35 | bot.giveawaysManager.reroll(giveaway.messageID) 36 | .then(() => { 37 | // Success message 38 | message.channel.send('Giveaway rerolled!'); 39 | }) 40 | .catch((e) => { 41 | if(e.startsWith(`Giveaway with message ID ${giveaway.messageID} is not ended.`)){ 42 | message.channel.send('This giveaway is not ended!'); 43 | } else { 44 | console.error(e); 45 | message.channel.send('An error occured...'); 46 | } 47 | }); 48 | 49 | } 50 | } -------------------------------------------------------------------------------- /commands/image/avatar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "avatar", 4 | aliases: ["av"], 5 | category: "image", 6 | description: "Shows Avatar", 7 | usage: "[username | nickname | mention | ID](optional)", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args) => { 11 | 12 | let user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.member; 13 | 14 | if (args[0]) { 15 | message.channel.send({ 16 | embed: { 17 | 18 | title: `${user.user.username}'s Avatar`, 19 | 20 | color: 0xFFEFD5, 21 | 22 | image: { 23 | url: `${user.user.displayAvatarURL({dynamic: true})}` + '?size=4096' 24 | }, 25 | 26 | timestamp: new Date(), 27 | 28 | footer: { 29 | text: message.guild.name, 30 | icon_url: message.guild.iconURL() 31 | } 32 | } 33 | }) 34 | } 35 | else if (!args[0]) { 36 | message.channel.send({ 37 | embed: { 38 | 39 | title: `${user.user.username}'s Avatar`, 40 | 41 | color: 0xFFEFD5, 42 | 43 | image: { 44 | url: `${user.user.displayAvatarURL({ dynamic: true })}` + '?size=4096' 45 | }, 46 | 47 | timestamp: new Date(), 48 | 49 | footer: { 50 | text: message.guild.name, 51 | icon_url: message.guild.iconURL() 52 | } 53 | 54 | } 55 | }) 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /commands/image/captcha.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const fetch = require('node-fetch'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "captcha", 7 | noalias: [''], 8 | category: "image", 9 | description: "Shows Captcha Image Of An User", 10 | usage: "[username | nickname | mention | ID](optional)", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | let user = await message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.member; 16 | let m = await message.channel.send("**Please Wait...**"); 17 | try { 18 | let res = await fetch(encodeURI(`https://nekobot.xyz/api/imagegen?type=captcha&username=${user.user.username}&url=${user.user.displayAvatarURL({ format: "png", size: 512 })}`)); 19 | let json = await res.json(); 20 | let attachment = new Discord.MessageAttachment(json.message, "captcha.png"); 21 | message.channel.send(attachment); 22 | m.delete({ timeout: 5000 }); 23 | } catch (e) { 24 | console.log(e); 25 | m.edit("Error, Try Again! Mention Someone"); 26 | } 27 | } 28 | }; -------------------------------------------------------------------------------- /commands/image/clyde.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const fetch = require('node-fetch'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "clyde", 7 | noalias: [''], 8 | category: "image", 9 | description: "Shows Embed Send By Clyde Bot", 10 | usage: "", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | let text = args.join(" "); 16 | 17 | if (!text) { 18 | return message.channel.send("**Enter Text**"); 19 | } 20 | 21 | let m = await message.channel.send("**Please Wait...**"); 22 | try { 23 | let res = await fetch(encodeURI(`https://nekobot.xyz/api/imagegen?type=clyde&text=${text}`)); 24 | let json = await res.json(); 25 | let attachment = new Discord.MessageAttachment(json.message, "clyde.png"); 26 | message.channel.send(attachment); 27 | m.delete({ timeout: 5000 }); 28 | } catch (e) { 29 | m.edit(e.message); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /commands/image/facepalm.js: -------------------------------------------------------------------------------- 1 | const Canvas = require("canvas"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "facepalm", 7 | aliases: ['fp'], 8 | category: 'image', 9 | description: "Shows Facepalmed User", 10 | usage: "[username | nickname | mention | ID] (optional)", 11 | accessableby: "everyones" 12 | }, 13 | run: async (bot, message, args) => { 14 | let user = await message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.member, 15 | m = await message.channel.send("**Please Wait...**"), 16 | canvas = Canvas.createCanvas(632, 357), 17 | ctx = canvas.getContext("2d"); 18 | 19 | ctx.fillStyle = "black"; 20 | ctx.fillRect(0, 0, 632, 357); 21 | 22 | let avatar = await Canvas.loadImage(user.user.displayAvatarURL({ format: "png", size: 512 })); 23 | ctx.drawImage(avatar, 199, 112, 235, 235); 24 | 25 | let layer = await Canvas.loadImage('https://raw.githubusercontent.com/Androz2091/AtlantaBot/master/assets/img/facepalm.png'); 26 | ctx.drawImage(layer, 0, 0, 632, 357); 27 | 28 | let attachment = new Discord.MessageAttachment(canvas.toBuffer(), "facepalm.png"); 29 | 30 | m.delete({ timeout: 5000 }); 31 | message.channel.send(attachment); 32 | } 33 | }; -------------------------------------------------------------------------------- /commands/image/gif.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const { giphy_API } = require('../../config.js'); 3 | const giphy = require('giphy-api')(giphy_API); 4 | 5 | module.exports = { 6 | config: { 7 | name: 'gif', 8 | category: 'image', 9 | aliases: ['search-gif', 'search-gifs'], 10 | description: 'Provide a query and I will return a gif!', 11 | usage: "[query]", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | if (!args[0]) { 16 | const embed = new MessageEmbed() 17 | .setColor("GREEN") 18 | .setDescription("**Please Enter A Search Query!**") 19 | return message.channel.send(embed) 20 | } 21 | try { 22 | giphy.search(args.join(' ')).then(function (res) { 23 | let id = res.data[0].id; 24 | let url = `https://media.giphy.com/media/${id}/giphy.gif`; 25 | const embed = { 26 | color: 'GREEN', 27 | timestamp: new Date(), 28 | footer: { 29 | text: message.guild.name, 30 | icon_url: message.guild.iconURL() 31 | }, 32 | image: { 33 | url: url 34 | } 35 | }; 36 | message.channel.send({ embed }); 37 | }); 38 | } catch { 39 | return message.channel.send("**Not Found!**") 40 | } 41 | } 42 | }; -------------------------------------------------------------------------------- /commands/image/love.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "love", 7 | noalias: [''], 8 | category: "image", 9 | description: "Shows Image of 2 Lovers, 3 persons!", 10 | usage: "[mention(1) | ID(1) | name(1) | nickname(1)] [mention(2) | ID(2) | name(2) | nickname(2)]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | let user = await message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(m => m.user.username.toLowerCase() === args[0].toLocaleLowerCase()) || message.guild.members.cache.find(mp => mp.displayName.toLowerCase() === args[0].toLocaleLowerCase()); 16 | let user2 = await message.mentions.members.array()[1] || message.guild.members.cache.get(args[1]) || message.guild.members.cache.find(m => m.user.username.toLowerCase() === args[1].toLocaleLowerCase()) || message.guild.members.cache.find(mp => mp.displayName.toLowerCase() === args[1].toLocaleLowerCase()); 17 | if(!args[0]) return message.channel.send("**Enter Name Of Lover!**") 18 | if(!args[1]) return message.channel.send("**Enter Name Of Another Lover!**") 19 | 20 | if (!user) return message.channel.send("**Please Enter A Valid User!**") 21 | if (!user2) return message.channel.send("**Please Enter A Valid User!**") 22 | 23 | let m = await message.channel.send("**Please Wait..**"); 24 | try { 25 | let res = await fetch(encodeURI(`https://nekobot.xyz/api/imagegen?type=ship&user1=${user.user.displayAvatarURL({ format: "png", size: 512 })}&user2=${user2.user.displayAvatarURL({ format: "png", size: 512 })}`)); 26 | let json = await res.json(); 27 | let attachment = new Discord.MessageAttachment(json.message, "love.png"); 28 | message.channel.send(attachment); 29 | m.delete({ timeout: 5000 }); 30 | } catch(e){ 31 | m.edit("Error, Please Try Again! Mention Someone"); 32 | } 33 | } 34 | }; -------------------------------------------------------------------------------- /commands/image/mcachievment.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const Random = require("srod-v2"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'minecraftachievment', 7 | category: 'image', 8 | aliases: ['mcachievment'], 9 | description: 'Provide a text and I will return a mcachievment!', 10 | usage: "[text]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | if (!args[0]) return message.channel.send("Please Give Achievement Text!"); 15 | let MinecraftAchievementEmbed = await Random.MinecraftAchievement(args.join(" ")); 16 | return message.channel.send(MinecraftAchievementEmbed); 17 | } 18 | }; -------------------------------------------------------------------------------- /commands/image/phcomment.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "phcomment", 7 | aliases: ['phc'], 8 | category: "image", 9 | description: "Shows PH Comment", 10 | usage: '[text]', 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | let user = await message.mentions.members.first() 16 | let text = args.join(" "); 17 | 18 | if(user){ 19 | text = args.slice(1).join(" "); 20 | } else { 21 | user = message.author; 22 | } 23 | 24 | if(!text){ 25 | return message.channel.send("**Enter Text!**"); 26 | } 27 | 28 | let m = await message.channel.send("**Please Wait...**"); 29 | try { 30 | let res = await fetch(encodeURI(`https://nekobot.xyz/api/imagegen?type=phcomment&username=${user.username}&image=${user.displayAvatarURL({ format: "png", size: 512 })}&text=${text}`)); 31 | let json = await res.json(); 32 | let attachment = new Discord.MessageAttachment(json.message, "phcomment.png"); 33 | message.channel.send(attachment); 34 | m.delete({ timeout: 5000 }); 35 | } catch(e){ 36 | m.edit("Error, Try Again! Mention Someone"); 37 | } 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /commands/image/tweet.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "tweet", 7 | noalias: [''], 8 | category: "image", 9 | description : "Sends A Tweet", 10 | usage: "[username] ", 11 | accessableby: "everyone" 12 | }, 13 | run: async(bot, message, args) => { 14 | 15 | let user = args[0]; 16 | let text = args.slice(1).join(" "); 17 | 18 | let m = await message.channel.send("**Please wait...**"); 19 | 20 | if(!user){ 21 | return m.edit("**You Have To Enter Someone's Twitter Nickname!**"); 22 | } 23 | 24 | if(!text){ 25 | return m.edit("**You must enter a message!**"); 26 | } 27 | 28 | try { 29 | let res = await fetch(encodeURI(`https://nekobot.xyz/api/imagegen?type=tweet&username=${user}&text=${text}`)); 30 | let json = await res.json(); 31 | let attachment = new Discord.MessageAttachment(json.message, "tweet.png"); 32 | await message.channel.send(`**New tweet published by ${user}**`, attachment); 33 | m.delete({ timeout: 5000}); 34 | } catch(e){ 35 | m.edit("Error, Try Again! Mention Someone"); 36 | } 37 | } 38 | }; -------------------------------------------------------------------------------- /commands/info/bot-info.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed }= require('discord.js'); 2 | const moment = require('moment'); 3 | const { mem, cpu, os } = require('node-os-utils'); 4 | const { stripIndent } = require('common-tags'); 5 | 6 | module.exports = { 7 | config: { 8 | name: "stats", 9 | aliases: ['bot-info'], 10 | category: "info", 11 | description: "Shows Bot Statistics", 12 | usage: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const d = moment.duration(message.client.uptime); 17 | const days = (d.days() == 1) ? `${d.days()} day` : `${d.days()} days`; 18 | const hours = (d.hours() == 1) ? `${d.hours()} hour` : `${d.hours()} hours`; 19 | const clientStats = stripIndent` 20 | Servers :: ${message.client.guilds.cache.size} 21 | Users :: ${message.client.users.cache.size} 22 | Channels :: ${message.client.channels.cache.size} 23 | WS Ping :: ${Math.round(message.client.ws.ping)}ms 24 | Uptime :: ${days} and ${hours} 25 | `; 26 | const { totalMemMb, usedMemMb } = await mem.info(); 27 | const serverStats = stripIndent` 28 | OS :: ${await os.oos()} 29 | CPU :: ${cpu.model()} 30 | Cores :: ${cpu.count()} 31 | CPU Usage :: ${await cpu.usage()} % 32 | RAM :: ${totalMemMb} MB 33 | RAM Usage :: ${usedMemMb} MB 34 | `; 35 | 36 | const embed = new MessageEmbed() 37 | .setTitle('Bot\'s Statistics') 38 | .addField('Commands', `\`${message.client.commands.size}\` commands`, true) 39 | .addField('Aliases', `\`${message.client.aliases.size}\` aliases`, true) 40 | .addField('Client', `\`\`\`asciidoc\n${clientStats}\`\`\``) 41 | .addField('Server', `\`\`\`asciidoc\n${serverStats}\`\`\``) 42 | .addField( 43 | 'Links:', 44 | '**[Invite Me](https://www.discord.ly/vilon)**' 45 | ) 46 | .setFooter(message.member.displayName, message.author.displayAvatarURL({ dynamic: true })) 47 | .setTimestamp() 48 | .setColor(message.guild.me.displayHexColor); 49 | message.channel.send(embed); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /commands/info/channelinfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "channelinfo", 6 | aliases: ['ci', 'channeli', 'cinfo'], 7 | category: "info", 8 | description: "Shows Channel Info", 9 | usage: "[ channel mention | channel name | ID] (optional)", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | let channel = message.mentions.channels.first() || bot.guilds.cache.get(message.guild.id).channels.cache.get(args[0]) || message.guild.channels.cache.find(r => r.name.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.channel; 14 | if (!channel) return message.channel.send("**Channel Not Found!**"); 15 | 16 | let channelembed = new MessageEmbed() 17 | .setTitle(`Channel Information for ${channel.name}`) 18 | .setThumbnail(message.guild.iconURL()) 19 | .addField("**NSFW**", channel.nsfw, true) 20 | .addField("**Channel ID**", channel.id, true) 21 | .addField("**Channel Type**", channel.type) 22 | .addField("**Channel Description**", `${channel.topic || "No Description"}`) 23 | .addField("**Channel Created At**", channel.createdAt) 24 | .setColor("GREEN") 25 | message.channel.send(channelembed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/info/credits.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "credits", 6 | aliases: [''], 7 | category: 'info', 8 | description: 'Shows credits', 9 | usage: '', 10 | accessableby: 'everyone' 11 | }, 12 | run: async (bot, message, args) => { 13 | const embed = new MessageEmbed() 14 | .setTitle(`Vilon Credits`) 15 | .setColor("GREEN") 16 | .setDescription(`**Bot Vilon** is a bot created by **Lebyy_Dev And Epicer#0001**!`) 17 | .setFooter(message.guild.name, message.guild.iconURL()) 18 | message.channel.send(embed) 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /commands/info/discordjs.js: -------------------------------------------------------------------------------- 1 | const fetch = require("node-fetch"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "discordjs", 6 | aliases: ['docs'], 7 | category: "info", 8 | description: "Fast access to discord docs", 9 | usage: "", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | const search = args[0]; 14 | if (!search) return message.channel.send({ 15 | embed: { 16 | "color": 0x4D5E94, 17 | "description": "❌ **What are you searching?**" 18 | 19 | } 20 | }); 21 | let version = args[1]; 22 | if (!version) version = `stable`; 23 | 24 | fetch(`https://djsdocs.sorta.moe/v2/embed?src=${encodeURIComponent(version)}&q=${encodeURIComponent(search)}`) 25 | .then(res => res.json()) 26 | .then(body => { 27 | if (body === null) return message.channel.send({ 28 | embed: { 29 | "color": 0x4D5E94, 30 | "author": { 31 | "name": "Discord.js Docs (master)", 32 | "url": "https://discord.js.org/#/docs/main/master", 33 | "icon_url": "https://discord.js.org/favicon.ico" 34 | }, 35 | "title": "Search results:", 36 | "description": "❌ **No results.**" 37 | } 38 | }); 39 | body.color = 0x4D5E94; 40 | message.channel.send({ embed: body }); 41 | }) 42 | .catch(e => { 43 | message.channel.send({ 44 | embed: { "color": 0x4D5E94, "author": { "name": "Discord.js Docs (master)", "url": "https://discord.js.org/#/docs/main/master", "icon_url": "https://discord.js.org/favicon.ico" }, "title": "Search results:", "description": "No results." } 45 | }); 46 | }); 47 | } 48 | } -------------------------------------------------------------------------------- /commands/info/feedback.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "feedback", 6 | aliases: [], 7 | category: "info", 8 | description: "Sends Feedback", 9 | usage: "", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | let feedbackchannel = bot.channels.cache.get("774586422455435307"); 14 | let feednumber = message.content.split(" ").slice(1) 15 | let feedstr = message.content.split(" ").slice(2).join(" "); 16 | let feednumber1 = parseInt(feednumber) 17 | if(!feedstr) return message.channel.send(`:x: u need to type how many stars`) 18 | if (!feednumber1 || isNaN(parseInt(feednumber)) || parseInt(feednumber)<=0 || parseInt(feednumber)>5) return message.channel.send(`:x:`) 19 | if(feednumber1>5) return message.channel.send(`:x: u need to chose between 1-5`) 20 | let stararray = [] 21 | for(i=0; i { 14 | const name = args.join(" "); 15 | 16 | if (!name) { 17 | return message.reply("Maybe it's useful to actually search for someone...!") 18 | .then(m => m.delete(5000)); 19 | } 20 | 21 | const url = `https://instagram.com/${name}/?__a=1`; 22 | 23 | let res; 24 | 25 | try { 26 | res = await fetch(url).then(url => url.json()); 27 | } catch (e) { 28 | return message.reply("I couldn't find that account... :(") 29 | .then(m => m.delete(5000)); 30 | } 31 | 32 | const account = res.graphql.user; 33 | 34 | const embed = new MessageEmbed() 35 | .setColor("GREEN") 36 | .setTitle(account.full_name) 37 | .setURL(`https://instagram.com/${name}`) 38 | .setThumbnail(account.profile_pic_url_hd) 39 | .setDescription("Profile information") 40 | .addField("**Username**", `${account.username}`) 41 | .addField("**Full name**", `${account.full_name}`) 42 | .addField("**Biography**", `${account.biography.length == 0 ? "none" : account.biography}`) 43 | .addField("**Posts**", `${account.edge_owner_to_timeline_media.count}`) 44 | .addField("**Followers**", `${account.edge_followed_by.count}`) 45 | .addField("**Following**", `${account.edge_follow.count}`) 46 | .addField("**Private account**", `${account.is_private ? "Yes 🔐" : "Nope 🔓"}`); 47 | 48 | message.channel.send(embed); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /commands/info/invites.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "invitations", 6 | aliases: ['invites'], 7 | category: "info", 8 | description: "Shows Users Joined Through Someone's Invites", 9 | usage: "[name | nickname | mention | ID] (optional)", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | try { 14 | let member = await message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.member; 15 | 16 | let invites = await message.guild.fetchInvites() 17 | 18 | let memberInvites = invites.filter(i => i.inviter && i.inviter.id === member.user.id); 19 | 20 | if (memberInvites.size <= 0) { 21 | return message.channel.send(`**${member.displayName} didn't invite anyone to the server!**`, (member === message.member ? null : member)); 22 | {} } 23 | 24 | let content = memberInvites.map(i => i.code).join("\n"); 25 | let index = 0; 26 | memberInvites.forEach(invite => index += invite.uses); 27 | 28 | let embed = new Discord.MessageEmbed() 29 | .setColor("GREEN") 30 | .setFooter(message.guild.name, message.guild.iconURL()) 31 | .setAuthor(`Invite Tracker for ${message.guild.name}`) 32 | .setDescription(`Information on Invites of ${member.displayName}`) 33 | .addField("**No. Invited Persons**", index) 34 | .addField("Invitation Codes\n\n", content); 35 | message.channel.send(embed); 36 | } catch (e) { 37 | return message.channel.send(e.message) 38 | } 39 | } 40 | }; -------------------------------------------------------------------------------- /commands/info/level.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const db = require('quick.db'); 3 | const { PREFIX } = require('../../config'); 4 | 5 | module.exports = { 6 | config: { 7 | name: "level", 8 | aliases: ['xp'], 9 | category: 'info', 10 | description: 'Shows A User\'s Current XP Level', 11 | usage: '[mention | username | nickname | ID] (optional)', 12 | accessableby: 'everyone' 13 | }, 14 | run: async (bot, message, args) => { 15 | try { 16 | let prefix; 17 | let fetched = await db.fetch(`prefix_${message.guild.id}`) 18 | if (fetched === null) { 19 | prefix = PREFIX 20 | } else { 21 | prefix = fetched 22 | } 23 | let user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.member; 24 | if (!user) return message.channel.send('**Please Enter A Valid User!**') 25 | if (user.user.bot) return message.channel.send(`**Bot's Dont Have XP Level!**`); 26 | 27 | let guildMessages = db.fetch(`guildMessages_${message.guild.id}`) 28 | if (guildMessages === null) return message.channel.send(`**Level Up Messages Are Currently Disabled!\n\`${prefix}setxp\` To Enable**`); 29 | 30 | let xp = db.fetch(`messages_${message.guild.id}_${user.id}`) 31 | let lvl = db.fetch(`level_${message.guild.id}_${user.id}`) 32 | 33 | if (lvl === null) lvl = 0 34 | if (xp === null) xp = 0 35 | 36 | let curxp = xp; 37 | let curlvl = lvl; 38 | let nxtLvlXp = curlvl * 100; 39 | let difference2 = nxtLvlXp + 100 - curxp; 40 | 41 | const embed = new MessageEmbed() 42 | .setTitle(`**${user.displayName}'s Level Information**`) 43 | .setColor("GREEN") 44 | .setDescription(`**Current Level - \`${curlvl}\` | Total XP - \`${curxp - 1}\` 45 | Needed XP To Reach Next Level - \`${difference2 + 1}\`** 46 | `) 47 | .setFooter(message.guild.name, message.guild.iconURL()) 48 | message.channel.send(embed) 49 | 50 | } catch { 51 | message.channel.send(`**Oh No! An Error Occurred!**`); 52 | } 53 | } 54 | }; 55 | -------------------------------------------------------------------------------- /commands/info/myvouchs.js: -------------------------------------------------------------------------------- 1 | const ms = require("parse-ms") 2 | const db = require('quick.db') 3 | const Discord = require('discord.js'); 4 | const { MessageEmbed } = require('discord.js'); 5 | const { PREFIX } = require('../../config'); 6 | 7 | module.exports = { 8 | config: { 9 | name: "myvouchs", 10 | aliases: [''], 11 | category: 'info', 12 | description: 'Showing u total vouchs', 13 | usage: '[mention]', 14 | accessableby: 'everyone' 15 | }, 16 | run: async (bot, message, args) => { 17 | let user = message.mentions.users.first() || message.author 18 | let thanks = await db.get(`userthanks_${user.id}`) 19 | let thanksl = await db.get(`userthanks_${user.id}`) 20 | 21 | if(thanks > 10) thanks = "Level 1" 22 | if(thanks > 0) thanks = "Level 0" 23 | if(thanks > 20) thanks = "Level 2" 24 | if(thanks > 30) thanks = "Level 3" 25 | if(thanks > 40) thanks = "Level 4" 26 | if(thanks > 50) thanks = "Level 5" 27 | if(thanks > 60) thanks = "Level 6" 28 | if(thanks > 70) thanks = "Level 7" 29 | if(thanks > 80) thanks = "Level 8" 30 | if(thanks > 90) thanks = "Level 9" 31 | if(thanks > 100) thanks = "Level MAX" 32 | if(thanks === null) thanks = "New" 33 | let embed = new Discord.MessageEmbed() 34 | .setAuthor(user.username || user.user.username , user.displayAvatarURL() || user.user.displayAvatarURL()) 35 | .addField(`User Level`, thanks || 'New', true) 36 | .addField(`User Total Vouchs`, thanksl || '0', true) 37 | .setTimestamp() 38 | .setFooter(message.guild.name , message.guild.iconURL()) 39 | message.channel.send(embed) 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /commands/info/news.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const fetch = require('node-fetch'); 3 | const { news_API } = require('../../config'); 4 | 5 | module.exports = { 6 | config: { 7 | name: 'news', 8 | aliases: ['globalnews', 'reuters'], 9 | description: 'Replies with the 5 latest world news headlines', 10 | category: "info", 11 | usage: " ", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | try { 16 | const response = await fetch( 17 | `https://newsapi.org/v2/top-headlines?sources=reuters&pageSize=5&apiKey=${news_API}` 18 | ); 19 | const json = await response.json(); 20 | const articleArr = json.articles; 21 | let processArticle = article => { 22 | const embed = new MessageEmbed() 23 | .setColor('GREEN') 24 | .setTitle(article.title) 25 | .setURL(article.url) 26 | .setAuthor(article.author) 27 | .setDescription(article.description) 28 | .setThumbnail(article.urlToImage) 29 | .setTimestamp(article.publishedAt) 30 | .setFooter(message.guild.name, message.guild.iconURL()); 31 | return embed; 32 | }; 33 | async function processArray(array) { 34 | for (const article of array) { 35 | const msg = await processArticle(article); 36 | message.channel.send(msg); 37 | } 38 | } 39 | await processArray(articleArr); 40 | } catch (e) { 41 | message.channel.send('Something failed along the way'); 42 | } 43 | } 44 | }; -------------------------------------------------------------------------------- /commands/info/ping.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "ping", 6 | description: "Displays User And Bot Latency", 7 | usage: " ", 8 | noalias: "No Aliases", 9 | category: "info", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | 14 | message.channel.send("**Pinging...**").then(m => { 15 | let ping = m.createdTimestamp - message.createdTimestamp 16 | const embed = new MessageEmbed() 17 | .setColor("GREEN") 18 | .setDescription(`<:hourglass_flowing_sand:699128011743690794> ${ping}\n\n💓 ${Math.round(bot.ws.ping)}`) 19 | message.channel.send(embed) 20 | m.delete() 21 | }) 22 | } 23 | }; -------------------------------------------------------------------------------- /commands/info/playstore.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const PlayStore = require("google-play-scraper"); 3 | const EmbedColor = ``; 4 | 5 | module.exports = { 6 | config: { 7 | name: "playstore", 8 | aliases: ["googleplaystore", "googleps"], 9 | category: "info", 10 | description: "Show Playstore Application Information Of Your Given Name!", 11 | usage: "", 12 | accessableby: "everyone" 13 | }, 14 | run: async (bot, message, args) => { 15 | if (!args[0]) 16 | return message.channel.send( 17 | `Please Give Something To Search - ${message.author.username}` 18 | ); 19 | 20 | PlayStore.search({ 21 | term: args.join(" "), 22 | num: 1 23 | }).then(Data => { 24 | let App; 25 | 26 | try { 27 | App = JSON.parse(JSON.stringify(Data[0])); 28 | } catch (error) { 29 | return message.channel.send( 30 | `No Application Found - ${message.author.username}!` 31 | ); 32 | } 33 | 34 | let Embed = new Discord.MessageEmbed() 35 | .setColor(EmbedColor || "RANDOM") 36 | .setThumbnail(App.icon) 37 | .setURL(App.url) 38 | .setTitle(`${App.title}`) 39 | .setDescription(App.summary) 40 | .addField(`Price`, App.priceText, true) 41 | .addField(`Developer`, App.developer, true) 42 | .addField(`Score`, App.scoreText, true) 43 | .setFooter(`Requested By ${message.author.username}`) 44 | .setTimestamp(); 45 | 46 | return message.channel.send(Embed); 47 | }); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /commands/info/poll.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "poll", 6 | description: "polling", 7 | category: "info", 8 | usage: "[question]", 9 | noalias: "No Aliases", 10 | accessableby: "Administrator", 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send("**You Do Not Have Sufficient Permissions! - [MANAGE_GUILD]**"); 14 | 15 | if (!args[0]) 16 | return message.channel.send("**Please Enter A Query!**"); 17 | 18 | const embed = new MessageEmbed() 19 | .setColor("GREEN") 20 | .setTitle(`Poll For ${message.guild.name} Sever`) 21 | .setFooter(message.member.displayName, message.author.displayAvatarURL()) 22 | .setDescription(args.join(' ')) 23 | var msg = await message.channel.send(embed); 24 | 25 | await msg.react('✅'); 26 | await msg.react('❌'); 27 | 28 | message.delete({ timeout: 1000 }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /commands/info/rank.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "rank", 7 | aliases: ['rank'], 8 | category: 'info', 9 | description: 'Shows User Profile', 10 | usage: '[mention | username | nickname | ID]', 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | let embed = new Discord.MessageEmbed() 16 | .setColor("RANDOM") 17 | .setAuthor(message.author.tag,message.author.avatarURL()) 18 | .setDescription(`LeveL: ${db.fetch(`level_${message.guild.id}_${message.author.id}`) || "0"}\nXP: ${db.fetch(`messages_${message.guild.id}_${message.author.id}`) || "0"}`) 19 | 20 | message.channel.send(embed) 21 | } 22 | } -------------------------------------------------------------------------------- /commands/info/roleinfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: 'roleinfo', 6 | category: "info", 7 | aliases: ["rinfo"], 8 | description: "shows stats of the mentioned role", 9 | usage: "[role name | role mention | ID]", 10 | accessableby: 'everyone' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!args[0]) return message.channel.send("**Please Enter A Role!**") 14 | let role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]) || message.guild.roles.cache.find(r => r.name.toLowerCase() === args.join(' ').toLocaleLowerCase()); 15 | if (!role) return message.channel.send("**Please Enter A Valid Role!**"); 16 | 17 | const status = { 18 | false: "No", 19 | true: "Yes" 20 | } 21 | 22 | let roleembed = new MessageEmbed() 23 | .setColor("#00ff00") 24 | .setAuthor("Role Info") 25 | .setThumbnail(message.guild.iconURL()) 26 | .addField("**ID**", `\`${role.id}\``, true) 27 | .addField("**Name**", role.name, true) 28 | .addField("**Hex**", role.hexColor) 29 | .addField("**Members**", role.members.size) 30 | .addField("**Position**", role.position) 31 | .addField("**Mentionable**", status[role.mentionable]) 32 | .setFooter(message.member.displayName, message.author.displayAvatarURL()) 33 | .setTimestamp() 34 | 35 | message.channel.send(roleembed); 36 | } 37 | } -------------------------------------------------------------------------------- /commands/info/rolememberinfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "rolememberinfo", 6 | aliases: ['rolemembers', 'rmi'], 7 | category: "info", 8 | description: "Shows List Of Members Having A Role", 9 | usage: "[role name | role mention | ID]", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args) => { 13 | if (args.includes("@everyone")) return; 14 | 15 | if (args.includes("@here")) return; 16 | 17 | if (!args[0]) return message.channel.send("**Please Enter A Role!**") 18 | 19 | let role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]) || message.guild.roles.cache.find(r => r.name.toLowerCase() === args.join(' ').toLocaleLowerCase()); 20 | 21 | if (!role) return message.channel.send("**Please Enter A Valid Role!**"); 22 | 23 | let membersWithRole = message.guild.members.cache.filter(member => { 24 | return member.roles.cache.find(r => r.name === role.name); 25 | }).map(member => { 26 | return member.user.tag; 27 | }) 28 | if (membersWithRole > 2048) return message.channel.send('**List Is Too Long!**') 29 | 30 | let roleEmbed = new MessageEmbed() 31 | .setColor("GREEN") 32 | .setThumbnail(message.guild.iconURL()) 33 | .setTitle(`Users With The ${role.name} Role!`) 34 | .setDescription(membersWithRole.join("\n")); 35 | message.channel.send(roleEmbed); 36 | } 37 | } -------------------------------------------------------------------------------- /commands/info/serverinfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | const { greenlight } = require("../../JSON/colours.json") 3 | 4 | module.exports = { 5 | config: { 6 | name: "serverinfo", 7 | description: "Pulls the serverinfo of the guild!", 8 | usage: " ", 9 | category: "info", 10 | accessableby: "everyone", 11 | aliases: ["sinfo"] 12 | }, 13 | run: async (bot, message, args) => { 14 | 15 | const online = message.guild.members.cache.filter(m => 16 | m.presence.status === 'online' 17 | ).size 18 | 19 | const idle = message.guild.members.cache.filter(m => 20 | m.presence.status === 'idle' 21 | ).size 22 | 23 | const offline = message.guild.members.cache.filter(m => 24 | m.presence.status === 'offline' 25 | ).size 26 | 27 | const dnd = message.guild.members.cache.filter(m => 28 | m.presence.status === 'dnd' 29 | ).size 30 | 31 | const text = message.guild.channels.cache.filter(r => r.type === "text").size 32 | const voice = message.guild.channels.cache.filter(r => r.type === "voice").size 33 | const chs = message.guild.channels.cache.size 34 | 35 | const roles = message.guild.roles.cache.size 36 | 37 | let owner = []; 38 | await bot.users.fetch(message.guild.ownerID).then(o => owner.push(o.tag)) 39 | try { 40 | let embed = new MessageEmbed() 41 | .setColor("BLACK") 42 | .setTitle("Server Info") 43 | .setThumbnail(message.guild.iconURL()) 44 | .setAuthor(`${message.guild.name} Info`, message.guild.iconURL()) 45 | .addField(":crown: Guild Owner", `${owner}`, false) 46 | .addField(":id: Server ID", `${message.guild.id}`) 47 | .addField(":calendar: Created At", message.guild.createdAt.toLocaleString(), false) 48 | .addField(`:speech_balloon: Channels **(${chs})**`, ` \`\`\`\**${text}** Text \n **${voice}** Voice \`\`\`\ `, false) 49 | .addField(`:busts_in_silhouette: Members (${message.guild.memberCount})**`, ` \`\`\`\ **${online}** Online \n **${idle}** Idle \n **${dnd}** Dnd \n> **${offline}** Offline \n **${message.guild.premiumSubscriptionCount}** Boosts \`\`\`\ `, false) 50 | .addField(`Roles (${roles})`, `To view all roles use command **serverroles**`, false) 51 | .setTimestamp() 52 | .setFooter(`Requested by: ${message.author.username}`, message.author.avatarURL); 53 | message.channel.send(embed); 54 | } 55 | catch { 56 | return message.channel.send('Something Went Wrong!') 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /commands/info/snipe.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js") 2 | const config = require("../../config.js") 3 | const db = require("quick.db") 4 | 5 | module.exports = { 6 | config: { 7 | name: "snipe", 8 | description: "Snipe last deleted command", 9 | usage: " ", 10 | category: "info", 11 | accessableby: "everyone", 12 | aliases: [""] 13 | }, 14 | run: async (bot, message, args) => { 15 | let prefix = await db.fetch(`prefix_${message.guild.id}`) 16 | if(prefix == null) { 17 | prefix = config.DEFAULT_PREFIX 18 | } 19 | 20 | 21 | const msg = bot.snipes.get(message.channel.id) 22 | if(!msg) return message.channel.send("there is no deleted messages") 23 | const embed = new discord.MessageEmbed() 24 | .setAuthor(msg.author, message.author.displayAvatarURL({ dynamic: true })) 25 | .setDescription(`**Deleted Message:** ${msg.content}`) 26 | .setColor('RANDOM') 27 | .setTimestamp() 28 | if(msg.image)embed.setImage(msg.image) 29 | message.channel.send(embed) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /commands/info/tiktok-search.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const TikTok = require("tiktok-search"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "tiktok-search", 7 | noalias: "", 8 | category: "info", 9 | description: "Shows tiktok accounts statistics", 10 | usage: "[username]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | if (!args[0]) { 15 | return message.channel.send(`<:No_:765603443472597012> **| Please provide me a valid TikTok username!**`) 16 | } 17 | TikTok.getUser(args[0]) 18 | .then((out) => { 19 | console.log(out); 20 | const embed = new Discord.MessageEmbed() 21 | .setAuthor(`Requested by ${message.author.tag}`, message.author.displayAvatarURL({ 22 | dynamic: true 23 | })) 24 | .setColor("RANDOM") 25 | .setTitle(`${out.displayName} Tiktok Profile`) 26 | .setURL(out.profile) 27 | .setThumbnail(out.avatars.medium) 28 | .setDescription(` 29 | ** Username :** ${out.username} 30 | ** Display name :** ${out.displayName} 31 | **<:Jwel2:765606426378240040> Followers :** ${out.followers} followers 32 | **<:Jwel2:765606426378240040> Following :** ${out.following} following 33 | ** Uploads :** ${out.videos || 0} uploads 34 | ** Hearts :** ${out.hearts || 0} :hearts: 35 | ** Private :** ${out.private ? "Yes :closed_lock_with_key:" : "Nope :unlock:"} 36 | **<:17310:760566466763817031> Verified :** ${out.verified ? "Yes <:yes_:765603416360747028>" : "Nope <:No_:765603443472597012>"} 37 | **<:ping:765235529582379008> Signature :** ${out.signature || "No Bio"}`) 38 | message.channel.send(embed) 39 | }) 40 | .catch(e => { 41 | console.log(e) 42 | return message.channel.send("<:No_:765603443472597012> **| No results were found!**"); 43 | }); 44 | } 45 | } 46 | 47 | -------------------------------------------------------------------------------- /commands/info/uptime.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js') 2 | 3 | module.exports = { 4 | config: { 5 | name: "uptime", 6 | description: "Shows Uptime of bot", 7 | aliases: ["up"], 8 | category: "info", 9 | usage: " ", 10 | accessableby: "everyone" 11 | }, 12 | run: async(bot, message, args) => { 13 | let days = Math.floor(bot.uptime / 86400000); 14 | let hours = Math.floor(bot.uptime / 3600000) % 24; 15 | let minutes = Math.floor(bot.uptime / 60000) % 60; 16 | let seconds = Math.floor(bot.uptime / 1000) % 60; 17 | 18 | const embed = new MessageEmbed() 19 | .setTitle("Uptime") 20 | .setColor("GREEN") 21 | .setDescription(`${days} days ${hours} hours ${minutes} minutes ${seconds} seconds`) 22 | .setThumbnail(bot.user.displayAvatarURL()) 23 | .setFooter(message.guild.name, message.guild.iconURL()) 24 | .setAuthor(bot.user.username, bot.user.displayAvatarURL()) 25 | message.channel.send(embed); 26 | } 27 | } -------------------------------------------------------------------------------- /commands/info/vouch.js: -------------------------------------------------------------------------------- 1 | const ms = require("parse-ms") 2 | const db = require('quick.db') 3 | const Discord = require('discord.js'); 4 | const { MessageEmbed } = require('discord.js'); 5 | const { PREFIX } = require('../../config'); 6 | 7 | module.exports = { 8 | config: { 9 | name: "vouch", 10 | aliases: [''], 11 | category: 'info', 12 | description: 'Vouching a user', 13 | usage: '[mention]', 14 | accessableby: 'everyone' 15 | }, 16 | run: async (bot, message, args) => { 17 | let timeout = 43200000; 18 | let prefix; 19 | let fetched = await db.fetch(`prefix_${message.guild.id}`) 20 | if (fetched === null) { 21 | prefix = PREFIX 22 | } else { 23 | prefix = fetched 24 | } 25 | let bump = await db.fetch(`cooldown_${message.author.id}`) 26 | if (bump !== null && timeout - (Date.now() - bump) > 0) { 27 | let time = ms(timeout - (Date.now() - bump)); 28 | return message.channel.send(new Discord.MessageEmbed().setAuthor(message.author.username , message.author.displayAvatarURL()).setDescription(`**You're On Cooldown**\nTime Left: ${time.hours}H , ${time.minutes}M , ${time.seconds}S`).setFooter(message.guild.name , message.guild.iconURL())) } 29 | let user = message.mentions.users.first() 30 | if(!user) {return message.channel.send(new Discord.MessageEmbed().setAuthor(message.author.username , message.author.displayAvatarURL()).setDescription(`**${prefix}vouch @user**`).setFooter(message.guild.name , message.guild.iconURL()))} 31 | if(user.id === message.author.id) return message.channel.send(new Discord.MessageEmbed().setAuthor(message.author.username , message.author.displayAvatarURL()).setDescription(`:clown: you cant vouch yourself!`).setFooter(message.guild.name , message.guild.iconURL())) 32 | 33 | db.add(`userthanks_${user.id}`, 1) 34 | db.set(`cooldown_${message.author.id}`, Date.now()) 35 | return message.channel.send(new Discord.MessageEmbed().setAuthor(message.author.username , message.author.displayAvatarURL()).setDescription(`You Have Vouched ${user}`).setFooter(message.guild.name , message.guild.iconURL())) 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /commands/info/weather.js: -------------------------------------------------------------------------------- 1 | const weather = require('weather-js'); 2 | const { MessageEmbed } = require('discord.js'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "weather", 7 | noalias: "", 8 | category: "info", 9 | description: "Shows weather of a city", 10 | usage: "[city name]", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | if(!args[0]) return message.channel.send('**Please Enter A City Name!**') 15 | 16 | weather.find({search: args.join(" "), degreeType: 'C'}, function(err, result){ 17 | 18 | if(err) message.channel.send(err.message); 19 | 20 | if(result.length === 0) { 21 | message.channel.send('**Please Enter A Valid Location.**') 22 | return undefined; 23 | } 24 | 25 | var current = result[0].current; 26 | var location = result[0].location; 27 | 28 | const embed = new MessageEmbed() 29 | .setDescription(`**${current.skytext}**`) 30 | .setAuthor(`Weather for ${current.observationpoint}`) 31 | .setThumbnail(current.imageUrl) 32 | .setColor("GREEN") 33 | .addField('**Timezone**', `UTC ${location.timezone}`, true) 34 | .addField('**Degree Type**', `${location.degreetype}`, true) 35 | .addField('**Temperature**', `${current.temperature} Degrees`, true) 36 | .addField('**Feels Like**', `${current.feelslike} Degrees`, true) 37 | .addField('**Winds**', `${current.winddisplay}`, true) 38 | .addField('**Humidity**', `${current.humidity}%`, true) 39 | .addField('**Date**', `${current.date}`, true) 40 | .addField('**Day**', `${current.day}`, true) 41 | .setFooter(message.member.displayName, message.author.displayAvatarURL()) 42 | .setTimestamp() 43 | 44 | message.channel.send({embed}) 45 | 46 | }); 47 | } 48 | } 49 | 50 | -------------------------------------------------------------------------------- /commands/info/whois.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const { formatDate } = require("../../functions.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "whois", 7 | category: "info", 8 | aliases: ["who", "user", "userinfo"], 9 | description: "Returns user information", 10 | usage: "[name | nickname | mention | ID] (optional)", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | let member = await message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.member; 15 | 16 | if(!member) 17 | return message.channel.send("**Enter A Valid User!**"); 18 | 19 | const joined = formatDate(member.joinedAt); 20 | const roles = member.roles.cache 21 | .filter(r => r.id !== message.guild.id) 22 | .map(r => r.name).join(", ") || 'none'; 23 | const created = formatDate(member.user.createdAt); 24 | 25 | const embed = new MessageEmbed() 26 | .setTitle("User Info") 27 | .setFooter(message.guild.name, message.guild.iconURL()) 28 | .setThumbnail(member.user.displayAvatarURL({ dynamic: true})) 29 | .setColor("GREEN") 30 | .addField("**User information**", `${member.displayName}`) 31 | .addField("**ID**", `${member.user.id}`) 32 | .addField("**Username**",`${member.user.username}`) 33 | .addField("**Tag**", `${member.user.tag}`) 34 | .addField("**Created at**", `${created}`) 35 | .addField("**Joined at**", `${joined}`) 36 | .addField("**Roles**", `${roles}`, true) 37 | .setTimestamp() 38 | 39 | member.presence.activities.forEach((activity) => { 40 | if (activity.type === 'PLAYING') { 41 | embed.addField('Currently playing',`\n**${activity.name}**`) 42 | } 43 | }) 44 | 45 | message.channel.send(embed); 46 | } 47 | } -------------------------------------------------------------------------------- /commands/moderation/addemoji.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { parse } = require("twemoji-parser"); 3 | const { MessageEmbed } = require("discord.js"); 4 | const Color = `RANDOM`; 5 | 6 | module.exports = { 7 | config: { 8 | name: "addemoji", 9 | aliases: [""], 10 | description: "Adds emoji to serverr", 11 | category: "moderation", 12 | usage: " ", 13 | accessableby: "Administrator", 14 | }, 15 | run: async (client, message, args) => { 16 | if (!message.member.hasPermission(`MANAGE_EMOJIS`)) { 17 | return message.channel.send(`You Don't Have Permission To Use This Command! Manage Emojis`) 18 | } 19 | 20 | const emoji = args[0]; 21 | if (!emoji) return message.channel.send(`Please Give Me A Emoji!`); 22 | 23 | let customemoji = Discord.Util.parseEmoji(emoji); 24 | 25 | if (customemoji.id) { 26 | const Link = `https://cdn.discordapp.com/emojis/${customemoji.id}.${ 27 | customemoji.animated ? "gif" : "png" 28 | }`; 29 | const name = args.slice(1).join(" "); 30 | message.guild.emojis.create( 31 | `${Link}`, 32 | `${name || `${customemoji.name}`}` 33 | ); 34 | const Added = new MessageEmbed() 35 | .setTitle(`Emoji Added`) 36 | .setColor(`${Color}`) 37 | .setDescription( 38 | `Emoji Has Been Added! | Name : ${name || `${customemoji.name}`} | Preview : [Click Me](${Link})` 39 | ); 40 | return message.channel.send(Added); 41 | } else { 42 | let CheckEmoji = parse(emoji, { assetType: "png" }); 43 | if (!CheckEmoji[0]) 44 | return message.channel.send(`Please Give Me A Valid Emoji!`); 45 | message.channel.send( 46 | `You Can Use Normal Emoji Without Adding In Server!` 47 | ); 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /commands/moderation/disablemodlogchannel.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "disablemodlogchannel", 6 | aliases: ['dmc', 'disablem'], 7 | category: 'moderation', 8 | description: 'Disables Server Modlog Channel', 9 | usage: '[channel name | channel mention | channel ID]', 10 | accessableby: 'Administrators' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 14 | 15 | try { 16 | let a = db.fetch(`modlog_${message.guild.id}`) 17 | 18 | if (!a) { 19 | return message.channel.send('**There Is No Modlog Channel Set To Disable!**') 20 | } else { 21 | let channel = message.guild.channels.cache.get(a) 22 | bot.guilds.cache.get(message.guild.id).channels.cache.get(channel.id).send("**Welcome Channel Disabled!**") 23 | db.delete(`modlog_${message.guild.id}`) 24 | 25 | message.channel.send(`**Modlog Channel Has Been Successfully Disabled in \`${channel.name}\`**`) 26 | } 27 | return; 28 | } catch { 29 | return message.channel.send("**Error - `Missing Permissions or Channel Doesn't Exist`**") 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /commands/moderation/disablemuterole.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "disablemuterole", 6 | aliases: ['clearmuterole', 'dmr', 'disablemr', 'dmrole'], 7 | category: 'moderation', 8 | description: 'Disables Server Mute Role', 9 | usage: '[role name | role mention | role ID]', 10 | accessableby: 'Administrators' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 14 | 15 | try { 16 | let a = db.fetch(`muterole_${message.guild.id}`) 17 | 18 | if (!a) { 19 | return message.channel.send("**There Is No Muterole Set To Disable!**") 20 | } else { 21 | let role = message.guild.roles.cache.get(a) 22 | db.delete(`muterole_${message.guild.id}`) 23 | 24 | message.channel.send(`**\`${role.name}\` Has Been Successfully Disabled**`) 25 | } 26 | return; 27 | } catch { 28 | return message.channel.send("**Error - `Missing Permissions or Role Doesn't Exist`**") 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /commands/moderation/disableverification.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: 'disableverification', 6 | aliases: ['dv', 'disableverify'], 7 | category: 'moderation', 8 | description: 'Disable\'s Server Verification System', 9 | usage: ' ', 10 | accessableby: 'Administrators' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have Required Permissions! - [ADMINISTRATOR]!**"); 14 | 15 | let verifychannel = db.fetch(`verificationchannel_${message.guild.id}`); 16 | if (!verifychannel || verifychannel === null) return; 17 | if(!message.guild.channels.cache.has(verifychannel)) return; 18 | 19 | let verifiedchannel = message.guild.channels.cache.get(verifychannel); 20 | if (!verifiedchannel) return; 21 | 22 | let verifyrole = db.fetch(`verificationrole_${message.guild.id}`); 23 | if (!verifyrole || verifyrole === null) return; 24 | if(!message.guild.roles.cache.has(verifyrole)) return; 25 | 26 | let role = message.guild.roles.cache.get(verifyrole); 27 | if (!role) return; 28 | 29 | try { 30 | message.guild.channels.cache.forEach(channel => { 31 | if (channel.type === 'category' && channel.id === verifiedchannel.id) return; 32 | let r = channel.permissionOverwrites.get(role.id); 33 | if (!r) return; 34 | if (r.deny.has("VIEW_CHANNEL") || r.deny.has("SEND_MESSAGES")) return; 35 | 36 | channel.createOverwrite(message.guild.id, { 37 | VIEW_CHANNEL: true 38 | }); 39 | 40 | channel.updateOverwrite(role, { 41 | VIEW_CHANNEL: null, 42 | SEND_MESSAGES: null 43 | }); 44 | }); 45 | 46 | verifiedchannel.updateOverwrite(role, { 47 | SEND_MESSAGES: null, 48 | VIEW_CHANNEL: null 49 | }); 50 | 51 | verifiedchannel.delete(); 52 | db.delete(`verificationchannel_${message.guild.id}`); 53 | db.delete(`verificationrole_${message.guild.id}`); 54 | return message.channel.send(`**Disabled Verification System in ${message.guild.name}!**`); 55 | } catch { 56 | return message.channel.send('**Something Went Wrong!**') 57 | } 58 | } 59 | }; -------------------------------------------------------------------------------- /commands/moderation/disablewelcomechannel.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: 'disablewelcomechannel', 6 | aliases: ['dwc', 'dw', 'disablewc'], 7 | category: 'moderation', 8 | description: 'Disables Server Welcome Channel', 9 | usage: '[channel name | channel ID | channel mention]', 10 | accessableby: 'Administrators' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 14 | 15 | try { 16 | let a = db.fetch(`welcome_${message.guild.id}`) 17 | 18 | if (!a) { 19 | return message.channel.send("**There Is No Welcome Channel Set To Disable!**") 20 | } else { 21 | let channel = message.guild.channels.cache.get(a) 22 | bot.guilds.cache.get(message.guild.id).channels.cache.get(channel.id).send("**Welcome Channel Disabled!**") 23 | db.delete(`welcome_${message.guild.id}`) 24 | 25 | message.channel.send(`**Welcome Channel Has Been Successfully Disabled in \`${channel.name}\`**`) 26 | } 27 | return; 28 | } catch { 29 | return message.channel.send("**Error - `Missing Permissions or Channel Doesn't Exist`**") 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /commands/moderation/disablexp.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: 'disablexp', 6 | aliases: ['dxp'], 7 | category: 'moderation', 8 | description: 'Disables Server XP Messages', 9 | usage: ' ', 10 | accessableby: 'Administrators' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 14 | 15 | try { 16 | let a = await db.fetch(`guildMessages_${message.guild.id}`) 17 | 18 | if (!a) { 19 | return message.channel.send("**XP Messages Are Already Disabled In The Server!**") 20 | } else { 21 | db.delete(`guildMessages_${message.guild.id}`) 22 | 23 | message.channel.send("**XP Messages Are Disabled Successfully!**") 24 | } 25 | return; 26 | } catch { 27 | return message.channel.send("**Something Went Wrong!**") 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /commands/moderation/lock.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | 3 | module.exports = { 4 | config: { 5 | name: "lock", 6 | aliases: [""], 7 | description: "Lock Channels", 8 | category: "moderation", 9 | usage: "", 10 | accessableby: "Administrator", 11 | }, 12 | run: async (bot, message, args) => { 13 | if(!message.member.hasPermission("MANAGE_CHANNELS")) 14 | return message.channel.send( 15 | new MessageEmbed() 16 | .setDescription("You don't have enough permissions to use this command.") 17 | ) 18 | if(!message.mentions.channels.first()) return message.channel.send( 19 | new MessageEmbed() 20 | .setDescription("You didn't specify a channel to lock.") 21 | ) 22 | 23 | await message.mentions.channels.forEach(async channel => { 24 | 25 | if(channel.permissionsFor(message.guild.id).has("SEND_MESSAGES") === false) return message.channel.send("That channel is already locked."); 26 | try { 27 | await channel.updateOverwrite(message.guild.id, { 28 | SEND_MESSAGES: false 29 | }); 30 | message.channel.send(`<#${channel.id}> has been successfully locked.`) 31 | } catch(err) { 32 | console.log(err); 33 | } 34 | } 35 | ) 36 | } 37 | }; -------------------------------------------------------------------------------- /commands/moderation/message.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "message", 4 | aliases: [], 5 | category: "moderation", 6 | description: "Sending message to channel", 7 | usage: " ", 8 | accessableby: "Administrator" 9 | }, 10 | run: async (bot, message, args) => { 11 | let channel = message.mentions.channels.first() 12 | if(!channel) { 13 | return message.channel.send(`mention channel please!`); 14 | } 15 | 16 | var args = message.content.split(' ').slice(2).join(' '); 17 | if(!args) { 18 | return message.channel.send(`you must spefic the message u want to send!`) 19 | } 20 | message.channel.send(`Sent the message to ${channel}`) 21 | channel.send(args) 22 | } 23 | } -------------------------------------------------------------------------------- /commands/moderation/nuke.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "nuke", 4 | aliases: [], 5 | category: "moderation", 6 | description: "Nuking channel", 7 | usage: "", 8 | accessableby: "Administrator" 9 | }, 10 | run: async (bot, message, args) => { 11 | 12 | if (!message.member.hasPermission("MANAGE_CHANNELS")) { 13 | return message.channel.send("You Don't Have Permission!") 14 | } 15 | 16 | message.channel.send('**nuking...**') 17 | 18 | await message.channel.clone().then 19 | 20 | ((ch) =>{ch.setParent(message.channel.parent.id); 21 | 22 | ch.setPosition(message.channel.position); 23 | 24 | message.channel.delete().then 25 | 26 | (ch.send('**Channel Has Been Nuked** \n https://imgur.com/LIyGeCR')) 27 | 28 | }); 29 | } 30 | } -------------------------------------------------------------------------------- /commands/moderation/purge.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const { MessageEmbed } = require('discord.js'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "purge", 7 | aliases: ["delete", "clear", 'prune'], 8 | category: "moderation", 9 | description: "Deletes messages from a channel", 10 | usage: "delete [amount of messages]", 11 | accessableby: "Administrator" 12 | }, 13 | run: async (bot, message, args) => { 14 | if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("You Don't Have Sufficient Permissions!- [MANAGE_MESSAGES]") 15 | if (isNaN(args[0])) 16 | return message.channel.send('**Please Supply A Valid Amount To Delete Messages!**'); 17 | 18 | if (args[0] > 100) 19 | return message.channel.send("**Please Supply A Number Less Than 100!**"); 20 | 21 | if (args[0] < 1) 22 | return message.channel.send("**Please Supply A Number More Than 1!**"); 23 | 24 | message.channel.bulkDelete(args[0]) 25 | .then(messages => message.channel.send(`**Succesfully deleted \`${messages.size}/${args[0]}\` messages**`) 26 | .then(msg => msg.delete({ timeout: 2000 }))) 27 | .catch(() => null) 28 | let channel = db.fetch(`modlog_${message.guild.id}`) 29 | if (channel == null) return; 30 | 31 | if (!channel) return; 32 | 33 | const embed = new MessageEmbed() 34 | .setAuthor(`${message.guild.name} Modlogs`, message.guild.iconURL()) 35 | .setColor("#ff0000") 36 | .setThumbnail(message.author.displayAvatarURL({ dynamic: true })) 37 | .setFooter(message.guild.name, message.guild.iconURL()) 38 | .addField("Moderation", "Purge") 39 | .addField("Messages", `${args[0]}`) 40 | .addField("Channel ID", `${message.channel.id}`) 41 | .addField("Used by:", message.author.username) 42 | .addField("Date", message.createdAt.toLocaleString()) 43 | .setTimestamp(); 44 | 45 | var sChannel = message.guild.channels.cache.get(channel) 46 | if (!sChannel) return; 47 | sChannel.send(embed) 48 | } 49 | } -------------------------------------------------------------------------------- /commands/moderation/setmodlogchannel.js: -------------------------------------------------------------------------------- 1 | const db = require("quick.db") 2 | 3 | module.exports = { 4 | config: { 5 | name: "setmodlogchannel", 6 | category: "moderation", 7 | aliases: ['setm', 'sm', 'smc'], 8 | description: "Sets A Channel Where The Bot Can Send Moderation Logs!", 9 | usage: "[channel mention | channel ID | channel name]", 10 | accessableby: "Administrators" 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 14 | if (!args[0]) { 15 | let b = await db.fetch(`modlog_${message.guild.id}`); 16 | let channelName = message.guild.channels.cache.get(b); 17 | if (message.guild.channels.cache.has(b)) { 18 | return message.channel.send( 19 | `**Modlog Channel Set In This Server Is \`${channelName.name}\`!**` 20 | ); 21 | } else 22 | return message.channel.send( 23 | "**Please Enter A Channel Name or ID To Set!**" 24 | ); 25 | } 26 | let channel = message.mentions.channels.first() || bot.guilds.cache.get(message.guild.id).channels.cache.get(args[0]) || message.guild.channels.cache.find(c => c.name.toLowerCase() === args.join(' ').toLocaleLowerCase()); 27 | 28 | if (!channel || channel.type !== 'text') return message.channel.send("**Please Enter A Valid Text Channel!**"); 29 | 30 | try { 31 | let a = await db.fetch(`modlog_${message.guild.id}`) 32 | 33 | if (channel.id === a) { 34 | return message.channel.send("**This Channel is Already Set As Modlog Channel!**") 35 | } else { 36 | bot.guilds.cache.get(message.guild.id).channels.cache.get(channel.id).send("**Modlog Channel Set!**") 37 | db.set(`modlog_${message.guild.id}`, channel.id) 38 | 39 | message.channel.send(`**Modlog Channel Has Been Set Successfully in \`${channel.name}\`!**`) 40 | } 41 | } catch { 42 | return message.channel.send("**Error - `Missing Permissions Or Channel Is Not A Text Channel!`**"); 43 | } 44 | } 45 | }; -------------------------------------------------------------------------------- /commands/moderation/setmuterole.js: -------------------------------------------------------------------------------- 1 | const db = require("quick.db"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "setmuterole", 6 | category: "moderation", 7 | aliases: ["setmute", "smrole", "smr"], 8 | description: "Sets A Mute Role For Muted Users!", 9 | usage: "[role name | role mention | role ID]", 10 | accessableby: "Administrators" 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) 14 | return message.channel.send( 15 | "**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**" 16 | ); 17 | if (!args[0]) { 18 | let b = await db.fetch(`muterole_${message.guild.id}`); 19 | let roleName = message.guild.roles.cache.get(b); 20 | if (message.guild.roles.cache.has(b)) { 21 | return message.channel.send( 22 | `**Muterole Set In This Server Is \`${roleName.name}\`!**` 23 | ); 24 | } else 25 | return message.channel.send( 26 | "**Please Enter A Role Name or ID To Set!**" 27 | ); 28 | } 29 | 30 | let role = 31 | message.mentions.roles.first() || 32 | bot.guilds.cache.get(message.guild.id).roles.cache.get(args[0]) || 33 | message.guild.roles.cache.find( 34 | c => c.name.toLowerCase() === args.join(" ").toLocaleLowerCase() 35 | ); 36 | 37 | if (!role) 38 | return message.channel.send("**Please Enter A Valid Role Name or ID!**"); 39 | 40 | try { 41 | let a = await db.fetch(`muterole_${message.guild.id}`); 42 | 43 | if (role.id === a) { 44 | return message.channel.send( 45 | "**This Role is Already Set As Muterole!**" 46 | ); 47 | } else { 48 | db.set(`muterole_${message.guild.id}`, role.id); 49 | 50 | message.channel.send( 51 | `**\`${role.name}\` Has Been Set Successfully As Muterole!**` 52 | ); 53 | } 54 | } catch (e) { 55 | return message.channel.send( 56 | "**Error - `Missing Permissions or Role Doesn't Exist!`**", 57 | `\n${e.message}` 58 | ); 59 | } 60 | } 61 | }; 62 | -------------------------------------------------------------------------------- /commands/moderation/setprefix.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "setprefix", 6 | aliases: ['sp', 'prefix'], 7 | category: "moderation", 8 | description: "Sets Custom Prefix", 9 | usage: "[prefix]", 10 | accessableby: 'Administrators' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send("**You Do Not Have Sufficient Permissions! - [ADMINISTRATOR]**") 14 | 15 | if (!args[0]) { 16 | let b = await db.fetch(`prefix_${message.guild.id}`); 17 | if (b) { 18 | return message.channel.send( 19 | `**Prefix Of This Server is \`${b}\`**` 20 | ); 21 | } else return message.channel.send("**Please Enter A Prefix To Set!**"); 22 | } 23 | 24 | try { 25 | 26 | let a = args.join(' '); 27 | let b = await db.fetch(`prefix_${message.guild.id}`) 28 | 29 | if (a === b) { 30 | return message.channel.send('**This is Already The Server Prefix!**') 31 | } else { 32 | db.set(`prefix_${message.guild.id}`, a.toLowerCase()) 33 | 34 | return message.channel.send(`**Successfuly Set Server Prefix To \`${a}\`**`) 35 | } 36 | } catch (e) { 37 | console.log(e) 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /commands/moderation/setwelcomechannel.js: -------------------------------------------------------------------------------- 1 | const db = require("quick.db"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "setwelcomechannel", 6 | category: "moderation", 7 | aliases: ["enablewelcomechannel", "swc", "ewc", 'sw', 'ew'], 8 | description: "Sets A Channel Where The Bot Can Welcome Users!", 9 | usage: "[channel mention | channel ID | channel name]", 10 | accessableby: "Administrators" 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) 14 | return message.channel.send( 15 | "**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**" 16 | ); 17 | 18 | if (!args[0]) { 19 | let b = await db.fetch(`welcome_${message.guild.id}`); 20 | let channelName = message.guild.channels.cache.get(b); 21 | if (message.guild.channels.cache.has(b)) { 22 | return message.channel.send( 23 | `**Welcome Channel Set In This Server Is \`${channelName.name}\` Channel!**` 24 | ); 25 | } else return message.channel.send("**Please Enter Channel Name or ID To Set!**"); 26 | } 27 | 28 | let channel = 29 | message.mentions.channels.first() || 30 | bot.guilds.cache.get(message.guild.id).channels.cache.get(args[0]) || 31 | message.guild.channels.cache.find( 32 | c => c.name.toLowerCase() === args.join(" ").toLocaleLowerCase() 33 | ); 34 | 35 | if (!channel || channel.type !== 'text') return message.channel.send("**Please Enter A Valid Text Channel!**"); 36 | 37 | try { 38 | let a = await db.fetch(`welcome_${message.guild.id}`); 39 | 40 | if (a === channel.id) { 41 | return message.channel.send( 42 | "**This Channel is Already Set As Welcome Channel**" 43 | ); 44 | } else { 45 | bot.guilds.cache 46 | .get(message.guild.id) 47 | .channels.cache.get(channel.id) 48 | .send("**Welcome Channel Set!**"); 49 | db.set(`welcome_${message.guild.id}`, channel.id); 50 | 51 | message.channel.send( 52 | `**Welcome Channel Has Been Set Successfully in \`${channel.name}\`**` 53 | ); 54 | } 55 | return; 56 | } catch (e) { 57 | return message.channel.send("**Error - `Missing Permissions Or Channel Is Not A Text Channel!`**"); 58 | } 59 | } 60 | }; 61 | -------------------------------------------------------------------------------- /commands/moderation/setxp.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: 'setxp', 6 | aliases: ['enablexp'], 7 | category: 'moderation', 8 | description: 'Enables Server XP Messages', 9 | usage: ' ', 10 | accessableby: 'Administrators' 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 14 | 15 | try { 16 | let a = await db.fetch(`guildMessages_${message.guild.id}`) 17 | 18 | if (a) { 19 | return message.channel.send("**XP Messages Are Already Enabled In The Server!**") 20 | } else { 21 | db.set(`guildMessages_${message.guild.id}`, 1) 22 | 23 | message.channel.send("**XP Messages Are Enabled Successfully!**") 24 | } 25 | return; 26 | } catch (e) { 27 | console.log(e) 28 | return message.channel.send("**Something Went Wrong!**") 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /commands/moderation/unban.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "unban", 6 | aliases: ['ub'], 7 | category: "moderation", 8 | description: "un ban members", 9 | usage: "[ !unban [user id] ]", 10 | }, 11 | run: async (client, message, args) => { 12 | if (!message.member.hasPermission('BAN_MEMBERS')) { 13 | return message.channel.send(`You are unable to ban members`) 14 | } 15 | const member = args[0]; 16 | 17 | if (!member) { 18 | return message.channel.send(`Error do : !help unban`) 19 | } 20 | 21 | try { 22 | message.guild.fetchBans().then(bans => { 23 | message.guild.members.unban(member) 24 | }) 25 | await message.channel.send(`${member} has been unbanned!`) 26 | } catch (e) { 27 | return message.channel.send(`An error occured!`) 28 | } 29 | 30 | } 31 | } -------------------------------------------------------------------------------- /commands/moderation/unlock.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | 3 | module.exports = { 4 | config: { 5 | name: "unlock", 6 | aliases: [], 7 | description: "Unlock Channels", 8 | category: "moderation", 9 | usage: "", 10 | accessableby: "Administrator", 11 | }, 12 | run: async (bot, message, args) => { 13 | if(!message.member.hasPermission("MANAGE_CHANNELS")) 14 | return message.channel.send( 15 | new MessageEmbed() 16 | .setDescription("You don't have enough permissions to use this command.") 17 | ) 18 | if(!message.mentions.channels.first()) return message.channel.send( 19 | new MessageEmbed() 20 | .setDescription("You didn't specify a channel to unlock.") 21 | ) 22 | 23 | await message.mentions.channels.forEach(async channel => { 24 | 25 | if(channel.permissionsFor(message.guild.id).has("SEND_MESSAGES") === true) return message.channel.send("That channel is already unlocked."); 26 | try { 27 | await channel.updateOverwrite(message.guild.id, { 28 | SEND_MESSAGES: true 29 | }); 30 | message.channel.send(`<#${channel.id}> has been successfully unlocked.`) 31 | } catch(err) { 32 | console.log(err); 33 | } 34 | } 35 | ) 36 | } 37 | }; -------------------------------------------------------------------------------- /commands/music/join.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'join', 4 | aliases: ['joinvc'], 5 | category: 'music', 6 | description: 'Join The User\'s VC', 7 | usage: ' ', 8 | accessableby: 'everyone' 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | const serverQueue = ops.queue.get(message.guild.id); 13 | try { 14 | if (!channel) return message.channel.send('**You Need To Join A Voice Channel!**'); 15 | if (!channel.permissionsFor(bot.user).has(['CONNECT', 'SPEAK', 'VIEW_CHANNEL'])) { 16 | return message.channel.send("**Missing Voice Permissions!**"); 17 | }; 18 | if (message.guild.me.voice.channel) return message.channel.send('❌ **Bot is Already In The VC!**'); 19 | 20 | if (serverQueue || serverQueue.playing) { 21 | return message.channel.send("**Cannot Join Another VC While Playing!**") 22 | } 23 | await channel.join(); 24 | return message.channel.send("**✅ Joined The Voice Channel!**") 25 | } catch { 26 | serverQueue.connection.dispatcher.end(); 27 | return message.channel.send("**Something Went Wrong, Please Try Again!**"); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /commands/music/leave.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'leave', 4 | aliases: ['stop', 'dc'], 5 | category: 'music', 6 | description: 'Leaves The User\'s VC', 7 | usage: ' ', 8 | accessableby: 'everyone' 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | const serverQueue = ops.queue.get(message.guild.id); 13 | try { 14 | if (!channel) return message.channel.send('**You Need To Join A Voice Channel!**'); 15 | if (!channel.permissionsFor(bot.user).has(['CONNECT', 'SPEAK', 'VIEW_CHANNEL'])) { 16 | return message.channel.send("**Missing Voice Permissions!**"); 17 | }; 18 | if (!message.guild.me.voice.channel) return message.channel.send('❌ **Bot is Not In A VC!**'); 19 | 20 | if (serverQueue || serverQueue.playing) { 21 | serverQueue.connection.dispatcher.end(); 22 | await channel.leave(); 23 | return message.channel.send("**✅ Left The Voice Channel!**"); 24 | } else { 25 | await channel.leave(); 26 | return message.channel.send("**✅ Left The Voice Channel!**"); 27 | } 28 | } catch { 29 | serverQueue.connection.dispatcher.end(); 30 | await channel.leave(); 31 | return message.channel.send("**Something Went Wrong, Please Try Again!**"); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /commands/music/loop.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'loop', 4 | aliases: ["repeat"], 5 | category: "music", 6 | description: 'Repeats all songs in the queue', 7 | usage: " ", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to loop music!'); 13 | const serverQueue = ops.queue.get(message.guild.id); 14 | try { 15 | if (!serverQueue) return message.channel.send('There is nothing playing.'); 16 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 17 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 18 | } 19 | if (!serverQueue.loop) { 20 | serverQueue.loop = true; 21 | return message.channel.send('🔁 The queue repeat has been enabled.'); 22 | } else { 23 | serverQueue.loop = false; 24 | return message.channel.send('🔁 The queue repeat has been disabled.'); 25 | } 26 | } catch { 27 | serverQueue.connection.dispatcher.end(); 28 | await channel.leave(); 29 | return message.channel.send("**Something Went Wrong, Please Try Again!**"); 30 | } 31 | } 32 | }; -------------------------------------------------------------------------------- /commands/music/pause.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'pause', 4 | noalias: 'No Aliases', 5 | category: "music", 6 | description: 'Pause command.', 7 | usage: " ", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const serverQueue = ops.queue.get(message.guild.id); 12 | const { channel } = message.member.voice; 13 | try { 14 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to pause music!'); 15 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 16 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 17 | }; 18 | if (serverQueue && serverQueue.playing) { 19 | serverQueue.playing = false; 20 | serverQueue.connection.dispatcher.pause(true); 21 | return message.channel.send('**Paused** ⏸'); 22 | } 23 | return message.channel.send(':cross-mark: There is Nothing Playing!**'); 24 | } catch { 25 | serverQueue.connection.dispatcher.end(); 26 | await channel.leave(); 27 | } 28 | } 29 | }; -------------------------------------------------------------------------------- /commands/music/remove.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "remove", 4 | aliases: ["rs"], 5 | category: "music", 6 | description: "Remove Song In A Queue!", 7 | usage: "[song number]", 8 | acessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | if (!args[0]) return message.channel.send("**Please Enter A Song Number!**") 12 | 13 | const { channel } = message.member.voice; 14 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to remove a particular song number!'); 15 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 16 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 17 | }; 18 | const serverQueue = ops.queue.get(message.guild.id); 19 | if (!serverQueue) return message.channel.send('❌ **Nothing playing in this server**'); 20 | try { 21 | if (args[0] < 1 && args[0] >= serverQueue.songs.length) { 22 | return message.channel.send('**Please Enter A Valid Song Number!**'); 23 | } 24 | serverQueue.songs.splice(args[0] - 1, 1); 25 | return message.channel.send(`Removed song number ${args[0]} from queue`); 26 | } catch { 27 | serverQueue.connection.dispatcher.end(); 28 | return message.channel.send("**Something Went Wrong!**") 29 | } 30 | } 31 | }; -------------------------------------------------------------------------------- /commands/music/resume.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'resume', 4 | aliases: ["res"], 5 | category: "music", 6 | description: 'resumes music', 7 | usage: " ", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to resume music!'); 13 | const serverQueue = ops.queue.get(message.guild.id); 14 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 15 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 16 | } 17 | try { 18 | if (serverQueue && !serverQueue.playing) { 19 | serverQueue.playing = true; 20 | serverQueue.connection.dispatcher.resume(); 21 | return message.channel.send('▶ **Resumed**'); 22 | } 23 | return message.channel.send('**There is nothing to resume**.'); 24 | } catch { 25 | serverQueue.connection.dispatcher.end(); 26 | return message.channel.send("**Something Went Wrong!**") 27 | } 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /commands/music/shuffle.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "shuffle", 6 | noalias: "", 7 | category: "music", 8 | description: "Shuffles Music in Queue", 9 | usage: " ", 10 | accessableby: "everyone" 11 | }, 12 | run: async (bot, message, args, ops) => { 13 | const { channel } = message.member.voice; 14 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to shuffle music!'); 15 | 16 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 17 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 18 | } 19 | const serverQueue = ops.queue.get(message.guild.id); 20 | if (!serverQueue) return message.channel.send('❌ **Nothing playing in this server**'); 21 | 22 | if (!serverQueue.songs || serverQueue.songs.length === 1) 23 | return message.channel.send('**There Are No Songs In Queue**'); 24 | try { 25 | shuffleQueue(serverQueue.songs); 26 | 27 | const titleArray = []; 28 | serverQueue.songs.map(obj => { 29 | titleArray.push(obj.title); 30 | }); 31 | var queueEmbed = new MessageEmbed() 32 | .setColor('GREEN') 33 | .setTitle('New Music Queue'); 34 | for (let i = 0; i < titleArray.length; i++) { 35 | queueEmbed.addField(`${i + 1}:`, `${titleArray[i]}`); 36 | } 37 | return message.channel.send(queueEmbed); 38 | } catch { 39 | serverQueue.connection.dispatcher.end(); 40 | return message.channel.send("**Something Went Wrong!**") 41 | } 42 | } 43 | } 44 | 45 | 46 | function shuffleQueue(queue) { 47 | for (let i = queue.length - 1; i > 0; i--) { 48 | const j = Math.floor(Math.random() * (i + 1)); 49 | [queue[i], queue[j]] = [queue[j], queue[i]]; 50 | } 51 | } -------------------------------------------------------------------------------- /commands/music/skip.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'skip', 4 | description: 'Skip command.', 5 | category: "music", 6 | aliases: ["s"], 7 | usage: " ", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to skip music!'); 13 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 14 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 15 | } 16 | const serverQueue = ops.queue.get(message.guild.id); 17 | if (!serverQueue) return message.channel.send('❌ **Nothing playing in this server**'); 18 | try { 19 | serverQueue.connection.dispatcher.end(); 20 | return message.channel.send('⏩ Skipped') 21 | } catch { 22 | serverQueue.connection.dispatcher.end(); 23 | await channel.leave(); 24 | return message.channel.send("**Something Went Wrong!**") 25 | } 26 | } 27 | }; -------------------------------------------------------------------------------- /commands/music/skipall.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'skipall', 4 | aliases: ['skip-all'], 5 | category: "music", 6 | description: 'Skip all songs in queue', 7 | usage: " ", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to skip music!'); 13 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 14 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 15 | } 16 | const serverQueue = ops.queue.get(message.guild.id); 17 | if (!serverQueue) return message.channel.send('❌ **Nothing playing in this server**'); 18 | if (!serverQueue.songs) return message.channel.send('❌ **There are No Songs In The Queue!'); 19 | try { 20 | serverQueue.songs = []; 21 | serverQueue.connection.dispatcher.end(); 22 | return message.channel.send("**Skipped All Songs**"); 23 | } catch { 24 | serverQueue.connection.dispatcher.end(); 25 | await channel.leave(); 26 | return message.channel.send("**Something Went Wrong!**"); 27 | } 28 | } 29 | }; -------------------------------------------------------------------------------- /commands/music/skipto.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "skipto", 4 | noalias: "", 5 | category: "music", 6 | description: "Skips To A Particular Song In Queue", 7 | usage: "[song number](put acc. to distance between songs)", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | if (!args[0]) return message.channel.send("**Please Enter A Song Number!**") 12 | 13 | const { channel } = message.member.voice; 14 | if (!channel) return message.channel.send('**I\'m Sorry But You Need To Be In A Voice Channel To Skip To A Particular Song!**'); 15 | const serverQueue = ops.queue.get(message.guild.id); 16 | if (!serverQueue) return message.channel.send('❌ **Nothing playing in this server**'); 17 | 18 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 19 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 20 | } 21 | 22 | if (args[0] < 1 && args[0] >= serverQueue.songs.length) { 23 | return message.channel.send('**Please Enter A Valid Song Number!**'); 24 | } 25 | try { 26 | serverQueue.songs.splice(0, args[0] - 2); 27 | serverQueue.connection.dispatcher.end(); 28 | return; 29 | } catch { 30 | serverQueue.connection.dispatcher.end(); 31 | await channel.leave(); 32 | return message.channel.send("**Something Went Wrong!**"); 33 | } 34 | } 35 | }; 36 | -------------------------------------------------------------------------------- /commands/music/stop.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'stop', 4 | noalias: [''], 5 | category: "music", 6 | description: "stops the music playing", 7 | usage: ' ', 8 | acessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to stop music!'); 13 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 14 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 15 | } 16 | const serverQueue = ops.queue.get(message.guild.id); 17 | try { 18 | if (serverQueue) { 19 | serverQueue.songs = []; 20 | serverQueue.connection.dispatcher.end() 21 | message.guild.me.voice.channel.leave(); 22 | } else { 23 | channel.leave(); 24 | } 25 | return message.channel.send('👋 **Disconnected**') 26 | } catch { 27 | serverQueue.connection.dispatcher.end(); 28 | await channel.leave(); 29 | return message.channel.send("**Something Went Wrong!**"); 30 | } 31 | } 32 | }; -------------------------------------------------------------------------------- /commands/music/stopmusictrivia.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "stopmusictrivia", 4 | aliases: ["st", "smt"], 5 | category: "music", 6 | description: "Stops Current Trivia", 7 | usage: " ", 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const triviaData = ops.queue2.get(message.guild.id) 12 | try { 13 | if (!triviaData.isTriviaRunning) 14 | return message.channel.send('No trivia is currently running'); 15 | 16 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 17 | return message.channel.send("Join the trivia's channel and try again"); 18 | } 19 | 20 | if (!triviaData.triviaScore.has(message.author.username)) { 21 | return message.channel.send( 22 | 'You need to participate in the trivia in order to end it' 23 | ); 24 | } 25 | 26 | triviaData.triviaQueue.length = 0; 27 | triviaData.wasTriviaEndCalled = true; 28 | triviaData.triviaScore.clear(); 29 | message.guild.me.voice.channel.leave() 30 | return message.channel.send('⏩ Music Trivia Skipped'); 31 | } 32 | catch { 33 | return; 34 | } 35 | } 36 | }; -------------------------------------------------------------------------------- /commands/music/volume.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'volume', 4 | aliases: ["vol"], 5 | category: "music", 6 | description: 'Shows and changes volume.', 7 | usage: ', vol [volume]', 8 | accessableby: "everyone" 9 | }, 10 | run: async (bot, message, args, ops) => { 11 | const { channel } = message.member.voice; 12 | if (!channel) return message.channel.send('I\'m sorry but you need to be in a voice channel to change volume!'); 13 | if (message.guild.me.voice.channel !== message.member.voice.channel) { 14 | return message.channel.send("**You Have To Be In The Same Channel With The Bot!**"); 15 | } 16 | const serverQueue = ops.queue.get(message.guild.id); 17 | if (!serverQueue) return message.channel.send('There is nothing playing.'); 18 | if (!args[0]) return message.channel.send(`The current volume is: **${serverQueue.volume}**`); 19 | try { 20 | serverQueue.volume = args[0]; 21 | serverQueue.connection.dispatcher.setVolumeLogarithmic(args[0] / 5); 22 | return message.channel.send(`I have set the volume to **${args[0]}**`); 23 | } catch { 24 | return message.channel.send('**Something Went Wrong!**'); 25 | } 26 | } 27 | }; -------------------------------------------------------------------------------- /commands/owner/eval.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js') 2 | 3 | module.exports = { 4 | config: { 5 | name: "eval", 6 | description: "Evaluates js code", 7 | accessableby: "Bot Owner", 8 | category: "owner", 9 | aliases: ["e"], 10 | usage: 'eval ' 11 | }, 12 | run: async (bot, message, args) => { 13 | function clean(text) { 14 | if (typeof text === "string") 15 | return text 16 | .replace(/`/g, "`" + String.fromCharCode(8203)) 17 | .replace(/@/g, "@" + String.fromCharCode(8203)); 18 | else return text; 19 | } 20 | let owner = ['733996780823248956', '733996780823248956'] 21 | 22 | if (!owner.includes(message.author.id)) return; 23 | 24 | try { 25 | const code = args.join(" "); 26 | let evaled = eval(code); 27 | 28 | if (typeof evaled !== "string") evaled = require("util").inspect(evaled); 29 | 30 | message.react("✅"); 31 | var emb = new MessageEmbed() 32 | .setTitle('Result') 33 | .setDescription(`\`\`\`js` + '\n' + clean(evaled) + `\n` + `\`\`\``) 34 | .setFooter(bot.user.username, bot.user.displayAvatarURL({ dynamic: true })) 35 | .setColor(0xd26a0e) 36 | message.channel.send(emb); 37 | } catch (err) { 38 | message.react("⚠"); 39 | var emb = new MessageEmbed() 40 | .setTitle('Result') 41 | .setDescription(`\`\`\`js` + '\n' + clean(err) + `\n` + `\`\`\``) 42 | .setFooter(bot.user.username, bot.user.displayAvatarURL({ dynamic: true })) 43 | .setColor(0xd26a0e) 44 | message.channel.send(emb); 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /commands/owner/forcemsg.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const ownerid = ["733996780823248956"]; 3 | const ownerid2 = ["733996780823248956"]; 4 | const { MessageEmbed } = require('discord.js'); 5 | 6 | module.exports = { 7 | config: { 8 | name: "forcemessage", 9 | aliases: ["forcemsg"], 10 | category: "owner", 11 | description: "", 12 | usage: " ", 13 | accessableby: "Owner" 14 | }, 15 | run: async (bot, message, args) => { 16 | if (message.author.id == ownerid || ownerid2) { 17 | message.delete(); 18 | let channel = message.mentions.channels.first() 19 | if(!channel) { 20 | return message.channel.send(`mention channel please!`); 21 | } 22 | 23 | var args = message.content.split(' ').slice(2).join(' '); 24 | if(!args) { 25 | return message.channel.send(`you must spefic the message u want to send!`) 26 | } 27 | const embed = new MessageEmbed() 28 | .setColor("FF0000") 29 | .setTitle("Message From Bot Owner!") 30 | .setDescription(args) 31 | .setTimestamp() 32 | .setFooter('© Koni Bot Owner'); 33 | channel.send(embed) 34 | } 35 | } 36 | }; 37 | -------------------------------------------------------------------------------- /commands/owner/getinvite.js: -------------------------------------------------------------------------------- 1 | const ownerid = ["733996780823248956"]; 2 | const ownerid2 = ["733996780823248956"]; 3 | 4 | module.exports = { 5 | config: { 6 | name: "getinvite", 7 | aliases: ['getinv', 'gi'], 8 | category: "owner", 9 | description: "Generates an invitation to the server in question.", 10 | usage: "[ID]", 11 | accessableby: "Owner" 12 | }, 13 | run: async(bot, message, args) => { 14 | if (message.author.id == ownerid || ownerid2) { 15 | let guild = null; 16 | 17 | if (!args[0]) return message.channel.send("Enter An Name") 18 | 19 | if(args[0]){ 20 | let fetched = bot.guilds.cache.find(g => g.name === args.join(" ")); 21 | let found = bot.guilds.cache.get(args[0]); 22 | if(!found) { 23 | if(fetched) { 24 | guild = fetched; 25 | } 26 | } else { 27 | guild = found 28 | } 29 | } else { 30 | return message.channel.send("Invalid Name!"); 31 | } 32 | if(guild){ 33 | let tChannel = guild.channels.cache.find(ch => ch.type == "text" && ch.permissionsFor(ch.guild.me).has("CREATE_INSTANT_INVITE")); 34 | if(!tChannel) { 35 | return message.channel.send("An Error Has Occured Try Again!"); 36 | } 37 | let invite = await tChannel.createInvite({ temporary: false, maxAge: 0 }).catch(err => { 38 | return message.channel.send(`${err} has occured!`); 39 | }); 40 | message.channel.send(invite.url); 41 | } else { 42 | return message.channel.send(`\`${args.join(' ')}\` - Bot is Not in this server`); 43 | } 44 | } else { 45 | return; 46 | } 47 | } 48 | 49 | } -------------------------------------------------------------------------------- /commands/owner/leaveserver.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const ownerid = ["733996780823248956"]; 3 | const ownerid2 = ["733996780823248956"]; 4 | 5 | module.exports = { 6 | config: { 7 | name: "leaveserver", 8 | aliases: [""], 9 | category: "owner", 10 | description: "Displays the list of servers the bot is in!", 11 | usage: " ", 12 | accessableby: "Owner" 13 | }, 14 | run: async (bot, message, args) => { 15 | if (message.author.id == ownerid || ownerid2) { 16 | if (!message.guild.me.hasPermission("ADMINISTRATOR")) 17 | return message.channel 18 | .send("I Dont Have Permissions") 19 | .then(msg => msg.delete({ timeout: 5000 })); 20 | 21 | const guildId = args[0]; 22 | 23 | if (!guildId) { 24 | return message.channel.send("Please provide an id"); 25 | } 26 | 27 | const guild = bot.guilds.cache.find((g) => g.id === guildId); 28 | 29 | if (!guild) { 30 | return message.channel.send("That guild wasn't found"); 31 | } 32 | 33 | try { 34 | await guild.leave(); 35 | message.channel.send(`Successfully left guild: **${guild.name}**`); 36 | } catch (e) { 37 | console.error(e); 38 | return message.channel.send("An error occurred leaving that guild"); 39 | } 40 | } 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /commands/owner/serverhastelist.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const ownerid = ["733996780823248956"]; 3 | const ownerid2 = ["733996780823248956"]; 4 | const hastebin = require('hastebin.js'); 5 | const haste = new hastebin({ /* url: 'hastebin.com */ }); 6 | 7 | module.exports = { 8 | config: { 9 | name: "serverhastelist", 10 | aliases: ["shastelist"], 11 | category: "owner", 12 | description: "", 13 | usage: " ", 14 | accessableby: "Owner" 15 | }, 16 | run: async (bot, message, args) => { 17 | if (message.author.id == ownerid || ownerid2) { 18 | let arr = new Array(); 19 | bot.guilds.cache.forEach(async servers => { 20 | arr.push(` 21 | 22 | --> Server Info Of ${servers.name} <-- 23 | 24 | Server Name: ${servers.name} 25 | 26 | Member Count: ${servers.memberCount} 27 | 28 | Server ID: ${servers.id} 29 | 30 | ---> Info Of ${servers.name} Ends Here <--- 31 | 32 | `) 33 | }) 34 | console.log(arr) 35 | const link = haste.post(arr).then(link => { 36 | let upload = new Discord.MessageEmbed() 37 | .setAuthor(message.author.username , message.author.displayAvatarURL()) 38 | .setDescription(`[Uploaded](${link})`) 39 | .setFooter(message.guild.name , message.guild.iconURL()) 40 | message.channel.send(upload) 41 | }) 42 | } 43 | } 44 | }; 45 | -------------------------------------------------------------------------------- /commands/phone/hangup.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: 'hangup', 4 | category: 'phone', 5 | aliases: ['hungup', 'leavecall', 'endcall'], 6 | description: 'Hangs up the current phone call.', 7 | accessableby: 'everyone', 8 | usage: ' ' 9 | }, 10 | run: async (bot, message, args) => { 11 | const origin = bot.phone.find(call => call.origin.id === message.channel.id); 12 | const recipient = bot.phone.find(call => call.recipient.id === message.channel.id); 13 | if (!origin && !recipient) return message.channel.send('**☎️ This Channel Is Not In A Phone Call!**'); 14 | const call = origin || recipient; 15 | if (!call.active) return message.channel.send('**☎️ This Call Is Not Currently Active!**'); 16 | if (call.ownerOrigin && !bot.isOwner(message.author)) { 17 | return message.channel.send('**☎️ You Cannot Hang Up In An Admin Call!**'); 18 | } 19 | const nonQuitter = message.channel.id === call.origin.id ? call.recipient : call.origin; 20 | await call.hangup(nonQuitter); 21 | return null; 22 | } 23 | } -------------------------------------------------------------------------------- /commands/phone/phonebook.js: -------------------------------------------------------------------------------- 1 | const { stripIndents } = require('common-tags'); 2 | const db = require('quick.db'); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'phonebook', 7 | aliases: ['pb', 'pbook', 'phoneregister'], 8 | category: 'phone', 9 | usage: '[channel name | server name] (optional)', 10 | description: 'Searches For Phone-Enabled Servers!', 11 | accessableby: 'everyone' 12 | }, 13 | run: async (bot, message, args) => { 14 | let phoneid = db.fetch('pclist') 15 | if (!phoneid) return message.channel.send("**No Channels Are Currently Allowing Phone Calls!**") 16 | 17 | let phonelist = phoneid.sort((a, b) => b.ChannelID - a.ChannelID).map(r => r) 18 | .map(r => r.ChannelID); 19 | let query = args.join(' ') 20 | if (args[0]) { 21 | const channels = bot.channels.cache.filter(channel => { 22 | return channel.guild 23 | && phonelist.includes(channel.id) 24 | && (channel.guild.name.toLocaleLowerCase() == (query.toLocaleLowerCase()) || channel.name == (query.toLocaleLowerCase()) || channel.id == query) 25 | && !message.guild.channels.cache.has(channel.id); 26 | }); 27 | if (!channels.size) return message.channel.send('**Could Not Find Any Results!**'); 28 | return message.channel.send(stripIndents` 29 | **Results -** \`${channels.size}\` 30 | ${channels.map(c => `\`${c.id}\` - **#${c.name} in ${c.guild.name}**`).slice(0, 10).join('\n')} 31 | `); 32 | } else { 33 | const channels = bot.channels.cache.filter(channel => channel.guild 34 | && phonelist.includes(channel.id) == true 35 | && !message.guild.channels.cache.has(channel.id)); 36 | return message.channel.send(stripIndents` 37 | **Results -** \`${channels.size}\` 38 | ${channels.map(c => `\`${c.id}\` - **#${c.name} in ${c.guild.name}**`).slice(0, 10).join('\n')} 39 | `) 40 | } 41 | } 42 | }; -------------------------------------------------------------------------------- /commands/phone/setphonechannel.js: -------------------------------------------------------------------------------- 1 | const db = require("quick.db") 2 | 3 | module.exports = { 4 | config: { 5 | name: "setphonechannel", 6 | category: "phone", 7 | aliases: ['setp', 'spc', 'setpc'], 8 | description: "Sets A Channel For Phone Calls", 9 | usage: "[channel mention | channel ID | channel name]", 10 | accessableby: "Administrators" 11 | }, 12 | run: async (bot, message, args) => { 13 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 14 | if (!args[0]) { 15 | let b = await db.fetch(`pc_${message.guild.id}`); 16 | let channelName = message.guild.channels.cache.get(b); 17 | if (message.guild.channels.cache.has(b)) { 18 | return message.channel.send(`**Phone Call Channel Set In This Server Is \`${channelName.name}\`!**`); 19 | } else 20 | return message.channel.send("**Please Enter A Channel Name or ID To Set!**"); 21 | } 22 | let channel = message.mentions.channels.first() || bot.guilds.cache.get(message.guild.id).channels.cache.get(args[0]) || message.guild.channels.cache.find(c => c.name.toLowerCase() === args.join(' ').toLocaleLowerCase()); 23 | 24 | if (!channel) return message.channel.send("**Please Enter A Valid Channel Name or ID!**") 25 | 26 | try { 27 | let a = await db.fetch(`pc_${message.guild.id}`) 28 | 29 | if (channel.id === a) { 30 | return message.channel.send("**This Channel is Already Set As Phone Call Channel!**") 31 | } else { 32 | bot.guilds.cache.get(message.guild.id).channels.cache.get(channel.id).send("**Phone Call Channel Set!**") 33 | db.set(`pc_${message.guild.id}`, channel.id) 34 | db.push('pclist', { ChannelID: channel.id }); 35 | 36 | return message.channel.send(`**Phone Call Channel Has Been Set Successfully in \`${channel.name}\`!**`) 37 | } 38 | } catch { 39 | return message.channel.send("**Error - `Missing Permissions or Channel Doesn't Exist!`**") 40 | } 41 | } 42 | }; -------------------------------------------------------------------------------- /commands/ticket/setup-ticket.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const db = require('quick.db'); 3 | const rs = require('randomstring'); 4 | module.exports = { 5 | config: { 6 | name: 'setup-ticket', 7 | category: 'ticket', 8 | aliases: [''], 9 | description: 'Setup ticket system', 10 | accessableby: 'everyone', 11 | usage: ' ' 12 | }, 13 | run: async (bot, message, args) => { 14 | let ticketroom = message.mentions.channels.first(); 15 | let embed = new Discord.MessageEmbed() .setDescription(`Please Mention an vaild channel`) 16 | if(!ticketroom) return message.channel.send(embed); 17 | let sent = await ticketroom.send(new Discord.MessageEmbed() 18 | .setTitle("Ticket System") 19 | .setDescription("React With :tickets: To Open Ticket!") 20 | .setFooter(message.guild.name) 21 | ); 22 | sent.react('🎟️'); 23 | db.delete(`tickets_${message.guild.id}`) 24 | db.set(`tickets_${message.guild.id}`, sent.id) 25 | message.channel.send("Great Job Human! Ticket-System are ready to be used!") 26 | } 27 | } -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | exports.TOKEN = "BOT TOKEN HERE"; 2 | 3 | exports.DBL_API_KEY = "NONE"; 4 | 5 | exports.PREFIX = "&"; 6 | 7 | exports.GOOGLE_API_KEY = "AIzaSyDzKnUyDiDaZru7_zbAkPbIdqhhnjLvd8U"; 8 | 9 | exports.GENIUS_API_KEY = "VE-Hkn049y3FN2oYctEIL1Kc6eCaORIrNNaPXKqihSHTJqWjnvh4FFm67Upgo5Jj"; 10 | 11 | exports.yandex_API = "trnsl.1.1.20200524T161905Z.bfe2aa5a35ce8bd9.2e55fde04fbce222eb14506eba89f1dbfcfc973d"; 12 | 13 | exports.news_API = "ac620cf6a0aa49b398f8f071edcaa71f"; 14 | 15 | exports.giphy_API = "RmKm0HixW7lQ6F8cTSQpyWaj0bjT7laH"; 16 | 17 | exports.AME_API = "a0f7f1b61e152b375952b83d2b6a7ae64c32fdc2fcc7a4f6b6963dc4c447731745c451adabde6a070731bb99739c68350668074b7fcec856e8222a75ab7da555"; 18 | 19 | exports.blague_API = "r.00yqXn3KtkY41GNdGCB._JbaMPdqyAyLA6JLkCjftATM5QXTvdatalXNzvcBR-"; -------------------------------------------------------------------------------- /config.yml: -------------------------------------------------------------------------------- 1 | ## BOT SESSTINGS ## 2 | messagesfetchlimts: '50' 3 | botlog: '781857032231583764' 4 | 5 | 6 | ## EMOJIS ## 7 | attention: '<:warn:769094491998781450>' 8 | permission: '<:17325:760566397843144744>' 9 | yes: '<:check:769094491923415060>' 10 | arrowhere: '' 11 | no: '<:deny:769094492186738708>' 12 | load: '' -------------------------------------------------------------------------------- /courbd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/courbd.ttf -------------------------------------------------------------------------------- /events/client/ready.js: -------------------------------------------------------------------------------- 1 | const { PREFIX } = require('../../config'); 2 | module.exports = async bot => { 3 | console.log(`${bot.user.username} is available now!`) 4 | let totalUsers = bot.guilds.cache.reduce((acc, value) => acc + value.memberCount, 0) 5 | var activities = [ `${bot.guilds.cache.size} servers`, `${totalUsers} users!`, `vilon.ga` ], i = 0; 6 | setInterval(() => bot.user.setActivity(`${PREFIX}help | ${activities[i++ % activities.length]}`, { type: "WATCHING" }),5000) 7 | 8 | }; -------------------------------------------------------------------------------- /events/guild/message.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | const { PREFIX } = require('../../config.js'); 3 | const queue2 = new Map(); 4 | const queue3 = new Map(); 5 | const queue = new Map(); 6 | const games = new Map() 7 | 8 | module.exports = async (bot, message) => { 9 | try { 10 | if (message.author.bot || message.channel.type === "dm") 11 | return; 12 | 13 | let prefix; 14 | let fetched = await db.fetch(`prefix_${message.guild.id}`); 15 | 16 | if (fetched === null) { 17 | prefix = PREFIX 18 | } else { 19 | prefix = fetched 20 | } 21 | 22 | let args = message.content.slice(prefix.length).trim().split(/ +/g); 23 | let cmd = args.shift().toLowerCase(); 24 | 25 | if (!message.content.startsWith(prefix)) return; 26 | 27 | let ops = { 28 | queue: queue, 29 | queue2: queue2, 30 | queue3: queue3, 31 | games: games 32 | } 33 | 34 | var commandfile = bot.commands.get(cmd) || bot.commands.get(bot.aliases.get(cmd)) 35 | if (commandfile) commandfile.run(bot, message, args, ops); 36 | } catch (error) { 37 | console.log(error); 38 | } 39 | } -------------------------------------------------------------------------------- /events/guild/messageReactionAdd.js: -------------------------------------------------------------------------------- 1 | const { MessageReaction, User } = require("discord.js"); 2 | let db = require("quick.db"); 3 | let Discord = require("discord.js"); 4 | let { MessageEmbed } = require("discord.js"); 5 | 6 | module.exports = async (client, reaction1, user) => { 7 | let message = reaction1.message; 8 | let member = message.guild.members.cache.get(user.id); 9 | let roleObject = db.fetch(`rolereactions_${message.guild.id}_${message.id}`); 10 | let starObject = db.fetch(`starboard_${message.guild.id}`); 11 | let emoji = reaction1.emoji.toString(); 12 | if (roleObject) { 13 | if (emoji === roleObject.emoji) { 14 | let role = message.guild.roles.cache.get(roleObject.role); 15 | if (!member.roles.cache.has(role)) { 16 | try { 17 | member.roles.add(role); 18 | const added = new MessageEmbed() 19 | .setTitle(`✅ Added A Role In \`${reaction1.message.guild.name}\``) 20 | .addField(`**Role**`, `${role.name}`) 21 | .setColor('GREEN') 22 | .setAuthor(`${reaction1.message.guild.name}`, reaction1.message.guild.iconURL({dynamic: true})) 23 | member.send(added); 24 | } catch (e) { 25 | message.channel.send("Something has gone wrong " + e.message); 26 | } 27 | } 28 | } 29 | } 30 | }; -------------------------------------------------------------------------------- /events/guild/messageReactionRemove.js: -------------------------------------------------------------------------------- 1 | const { MessageReaction, User } = require("discord.js"); 2 | let db = require("quick.db"); 3 | let Discord = require("discord.js"); 4 | let { MessageEmbed } = require("discord.js"); 5 | 6 | module.exports = async (client, reaction, user) => { 7 | let message = reaction.message; 8 | let roleObject = db.fetch(`rolereactions_${message.guild.id}_${message.id}`); 9 | let emoji = reaction.emoji.toString(); 10 | if (roleObject) { 11 | if (emoji === roleObject.emoji) { 12 | let member = message.guild.members.cache.get(user.id); 13 | let role = message.guild.roles.cache.get(roleObject.role); 14 | if (!member.roles.cache.has(role)) { 15 | try { 16 | member.roles.remove(role); 17 | const removed = new MessageEmbed() 18 | .setTitle(`❗ Removed A Role In \`${reaction.message.guild.name}\``) 19 | .addField(`**Role**`, `${role.name}`) 20 | .setColor('RED') 21 | .setAuthor(`${reaction.message.guild.name}`, reaction.message.guild.iconURL({dynamic: true})) 22 | member.send(removed) 23 | } catch (e) { 24 | message.channel.send("Something has gone wrong " + e.message); 25 | } 26 | } 27 | } 28 | } 29 | }; -------------------------------------------------------------------------------- /events/message.js: -------------------------------------------------------------------------------- 1 | module.exports = async (client, message) => { 2 | if (message.author.bot) return; 3 | 4 | const prefixMention = new RegExp(`^<@!?${client.user.id}> `); 5 | 6 | const prefix = message.content.match(prefixMention) ? message.content.match(prefixMention)[0] : client.config.prefix; 7 | 8 | if (message.content.indexOf(prefix) !== 0) return; 9 | 10 | const args = message.content.slice(prefix.length).trim().split(/ +/g); 11 | 12 | const command = args.shift().toLowerCase(); 13 | 14 | const cmd = client.commands.get(command); 15 | 16 | const aliases = client.commands.find(x => x.info.aliases.includes(command)) 17 | 18 | 19 | if(cmd){ 20 | cmd.run(client, message, args); 21 | }else if(aliases){ 22 | aliases.run(client, message, args); 23 | }else return 24 | }; -------------------------------------------------------------------------------- /handler/command.js: -------------------------------------------------------------------------------- 1 | const { readdirSync } = require("fs") 2 | 3 | module.exports = (bot) => { 4 | const load = dirs => { 5 | const commands = readdirSync(`./commands/${dirs}/`).filter(d => d.endsWith('.js')); 6 | for (let file of commands) { 7 | let pull = require(`../commands/${dirs}/${file}`); 8 | bot.commands.set(pull.config.name, pull); 9 | if (pull.config.aliases) pull.config.aliases.forEach(a => bot.aliases.set(a, pull.config.name)); 10 | }; 11 | }; 12 | ["economy", "backup", "emojis", "fun", "ticket", "image", "info", "moderation", "music", "owner", "games", "phone", "giveaway"].forEach(x => load(x)); 13 | }; 14 | -------------------------------------------------------------------------------- /handler/console.js: -------------------------------------------------------------------------------- 1 | module.exports = (bot, message) => { 2 | let prompt = process.openStdin() 3 | prompt.addListener("data", res => { 4 | let x = res.toString().trim().split(/ +/g) 5 | bot.channels.cache.get(message.channel.id).send(x.join(" ")); 6 | }); 7 | }; -------------------------------------------------------------------------------- /handler/event.js: -------------------------------------------------------------------------------- 1 | const { readdirSync } = require("fs") 2 | 3 | module.exports = (bot) => { 4 | const load = dirs => { 5 | const events = readdirSync(`./events/${dirs}/`).filter(d => d.endsWith('.js')); 6 | for (let file of events) { 7 | const evt = require(`../events/${dirs}/${file}`); 8 | let eName = file.split('.')[0]; 9 | bot.on(eName, evt.bind(null, bot)); 10 | }; 11 | }; 12 | ["client", "guild"].forEach(x => load(x)); 13 | }; -------------------------------------------------------------------------------- /json.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jordytje1/discord-open-source-bot/f029b8c6d777c7f683fb6f96e27c555fccc07b7c/json.sqlite -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Koni", 3 | "version": "1.0.0", 4 | "description": "Discord Bot Made By Lebyy", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "engines": { 11 | "node": "12.16.1" 12 | }, 13 | "author": "", 14 | "license": "ISC", 15 | "dependencies": { 16 | "@discordjs/opus": "^0.3.2", 17 | "aki-api": "^5.1.1", 18 | "amethyste-api": "^1.1.3", 19 | "arr": "^0.1.5", 20 | "canvacord": "^5.0.8", 21 | "canvas": "^2.6.1", 22 | "canvas-constructor": "^4.1.0", 23 | "cheerio": "^1.0.0-rc.3", 24 | "common-tags": "^1.8.0", 25 | "date-and-time": "^0.14.1", 26 | "dblapi.js": "^2.4.1", 27 | "discord-backup": "^2.2.5", 28 | "discord-giveaways": "^4.2.1", 29 | "discord.js": "^12.5.0", 30 | "express": "^4.17.1", 31 | "ffmpeg": "^0.0.4", 32 | "ffmpeg-static": "^4.2.7", 33 | "figlet": "^1.5.0", 34 | "fs": "^0.0.2", 35 | "fs-nextra": "^0.5.1", 36 | "giphy-api": "^2.0.1", 37 | "google-play-scraper": "^8.0.2", 38 | "hastebin": "^0.2.1", 39 | "hastebin.js": "^1.3.2", 40 | "http": "^0.0.0", 41 | "iso-639-1": "^2.1.4", 42 | "jimp": "^0.16.1", 43 | "js-yaml": "^3.14.0", 44 | "lavaplayer": "^2.2.0", 45 | "mathjs": "^8.0.0", 46 | "moment": "^2.29.1", 47 | "ms": "^2.1.2", 48 | "node-fetch": "^2.6.1", 49 | "node-os-utils": "^1.3.2", 50 | "node-superfetch": "^0.1.10", 51 | "opusscript": "0.0.7", 52 | "parse-ms": "^2.1.0", 53 | "pastebin-js": "^1.0.6", 54 | "path": "^0.12.7", 55 | "pokersolver": "^2.1.4", 56 | "quick.db": "^7.1.2", 57 | "random-puppy": "^1.1.0", 58 | "randomstring": "^1.1.5", 59 | "relevant-urban": "^2.0.0", 60 | "simple-youtube-api": "^5.2.1", 61 | "srod-v2": "^0.0.5", 62 | "superagent": "^6.1.0", 63 | "tiktok-search": "^2.0.3", 64 | "twemoji-parser": "^13.0.0", 65 | "weather-js": "^2.0.0", 66 | "wikijs": "^6.0.0", 67 | "ytdl-core": "^4.1.0" 68 | }, 69 | "devDependencies": {} 70 | } -------------------------------------------------------------------------------- /public/script.js: -------------------------------------------------------------------------------- 1 | // client-side js, loaded by index.html 2 | // run by the browser each time the page is loaded 3 | 4 | console.log("hello world :o"); 5 | 6 | // define variables that reference elements on our page 7 | const dreamsList = document.getElementById("dreams"); 8 | const dreamsForm = document.querySelector("form"); 9 | 10 | // a helper function that creates a list item for a given dream 11 | function appendNewDream(dream) { 12 | const newListItem = document.createElement("li"); 13 | newListItem.innerText = dream; 14 | dreamsList.appendChild(newListItem); 15 | } 16 | 17 | // fetch the initial list of dreams 18 | fetch("/dreams") 19 | .then(response => response.json()) // parse the JSON from the server 20 | .then(dreams => { 21 | // remove the loading text 22 | dreamsList.firstElementChild.remove(); 23 | 24 | // iterate through every dream and add it to our page 25 | dreams.forEach(appendNewDream); 26 | 27 | // listen for the form to be submitted and add a new dream when it is 28 | dreamsForm.addEventListener("submit", event => { 29 | // stop our form submission from refreshing the page 30 | event.preventDefault(); 31 | 32 | // get dream value and add it to the list 33 | let newDream = dreamsForm.elements.dream.value; 34 | dreams.push(newDream); 35 | appendNewDream(newDream); 36 | 37 | // reset form 38 | dreamsForm.reset(); 39 | dreamsForm.elements.dream.focus(); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /public/style.css: -------------------------------------------------------------------------------- 1 | /* this file is loaded by index.html and styles the page */ 2 | 3 | * { 4 | box-sizing: border-box; 5 | } 6 | 7 | body { 8 | font-family: sans-serif; 9 | margin: 2em 1em; 10 | line-height: 1.5em; 11 | } 12 | 13 | h1 { 14 | font-style: italic; 15 | color: #373fff; 16 | max-width: calc(100% - 5rem); 17 | line-height: 1.1; 18 | } 19 | 20 | form { 21 | background-color: #eee; 22 | display: grid; 23 | grid-gap: 1em; 24 | padding: 1em; 25 | max-width: 40ch; 26 | } 27 | 28 | input { 29 | border: 1px solid silver; 30 | display: block; 31 | font-size: 16px; 32 | margin-bottom: 10px; 33 | padding: 5px; 34 | width: 100%; 35 | } 36 | 37 | form button { 38 | background-color: #bbbbf2; 39 | border: 2px solid currentColor; 40 | border-radius: .25em; 41 | cursor: pointer; 42 | font-size: inherit; 43 | line-height: 1.4em; 44 | padding: 0.25em 1em; 45 | max-width: 20ch; 46 | } 47 | 48 | form button:hover { 49 | background-color: lavender; 50 | } 51 | 52 | footer { 53 | margin-top: 3em; 54 | padding-top: 1.5em; 55 | border-top: 1px solid lightgrey; 56 | } 57 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | 3 | const app = express(); 4 | 5 | app.get('/', (req, res) => { 6 | res.send('Hello Express app!') 7 | }); 8 | 9 | app.listen(3000, () => { 10 | console.log('server started'); 11 | }); -------------------------------------------------------------------------------- /structures/poker/Card.js: -------------------------------------------------------------------------------- 1 | const { firstUpperCase } = require('../../functions'); 2 | const displaySuits = { 3 | spades: '♠', 4 | diamonds: '♦', 5 | hearts: '♥', 6 | clubs: '♣', 7 | joker: '⭐' 8 | }; 9 | 10 | module.exports = class Card { 11 | constructor(value, suit) { 12 | this.value = value; 13 | this.suit = suit; 14 | } 15 | 16 | get blackjackValue() { 17 | if (this.value === 'Joker') return 0; 18 | if (this.value === 'King' || this.value === 'Queen' || this.value === 'Jack') return 10; 19 | if (this.value === 'Ace') return 11; 20 | return this.value; 21 | } 22 | 23 | get display() { 24 | return `${displaySuits[this.suit]} ${this.value}`; 25 | } 26 | 27 | get textDisplay() { 28 | return `${this.value} of ${firstUpperCase(this.suit)}`; 29 | } 30 | 31 | get pokersolverKey() { 32 | if (this.value === 'Joker') return null; 33 | let suitLetter; 34 | switch (this.suit) { 35 | case 'clubs': suitLetter = 'c'; break; 36 | case 'hearts': suitLetter = 'h'; break; 37 | case 'diamonds': suitLetter = 'd'; break; 38 | case 'spades': suitLetter = 's'; break; 39 | } 40 | let value; 41 | switch (this.value) { 42 | case 'King': value = 'K'; break; 43 | case 'Queen': value = 'Q'; break; 44 | case 'Jack': value = 'J'; break; 45 | case 'Ace': value = 'A'; break; 46 | case 10: value = 'T'; break; 47 | default: value = this.value; break; 48 | } 49 | return `${value}${suitLetter}`; 50 | } 51 | }; -------------------------------------------------------------------------------- /structures/poker/Deck.js: -------------------------------------------------------------------------------- 1 | const Card = require('./Card'); 2 | const suits = ['spades', 'hearts', 'diamonds', 'clubs']; 3 | const faces = ['Jack', 'Queen', 'King']; 4 | const { shuffle } = require('../../functions'); 5 | 6 | module.exports = class Deck { 7 | constructor(options = {}) { 8 | this.deckCount = options.deckCount || 1; 9 | this.includeJokers = options.includeJokers || false; 10 | this.deck = []; 11 | this.makeCards(this.deckCount); 12 | } 13 | 14 | makeCards (deckCount) { 15 | for (let i = 0; i < deckCount; i++) { 16 | for (const suit of suits) { 17 | this.deck.push(new Card('Ace', suit)); 18 | for (let j = 2; j <= 10; j++) this.deck.push(new Card(j, suit)); 19 | for (const face of faces) this.deck.push(new Card(face, suit)); 20 | } 21 | if (this.includeJokers) { 22 | this.deck.push(new Card('Joker', 'joker')); 23 | this.deck.push(new Card('Joker', 'joker')); 24 | } 25 | } 26 | this.deck = shuffle(this.deck); 27 | return this.deck; 28 | } 29 | 30 | draw (amount = 1) { 31 | const cards = []; 32 | for (let i = 0; i < amount; i++) { 33 | const card = this.deck[0]; 34 | this.deck.shift(); 35 | cards.push(card); 36 | } 37 | return amount === 1 ? cards[0] : cards; 38 | } 39 | 40 | reset() { 41 | this.deck = this.makeCards(this.deckCount); 42 | return this; 43 | } 44 | }; -------------------------------------------------------------------------------- /util/error.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js") 2 | 3 | /** 4 | * Easy to send errors because im lazy to do the same things :p 5 | * @param {String} text - Message which is need to send 6 | * @param {TextChannel} channel - A Channel to send error 7 | */ 8 | module.exports = async (text, channel) => { 9 | let embed = new MessageEmbed() 10 | .setColor("RED") 11 | .setDescription(text) 12 | .setFooter("(https://emoji.gg/assets/emoji/6403_pixel_x.png)](https://emoji.gg/emoji/6403_pixel_x) Oops something went wrong :(") 13 | await channel.send(embed) 14 | } -------------------------------------------------------------------------------- /views/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Welcome to Glitch! 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 |

A Dream of the Future

23 |
24 | 25 |
26 |

Oh hi,

27 | 28 |

Tell me your hopes and dreams:

29 | 30 |
31 | 35 | 36 |
37 | 38 |
39 |
    40 | loading dreams… 41 |
42 |
43 |
44 | 45 | 46 | 47 | 49 |
50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /watch.json: -------------------------------------------------------------------------------- 1 | { 2 | "install": { 3 | "include": [ 4 | "^package\\.json$", 5 | "^\\.env$" 6 | ] 7 | }, 8 | "restart": { 9 | "exclude": [ 10 | "^public/", 11 | "^dist/" 12 | ], 13 | "include": [ 14 | "\\.js$", 15 | "json" 16 | ] 17 | }, "throttle": 1500000 18 | } --------------------------------------------------------------------------------