├── .replit ├── JSON ├── colours.json ├── fishes.json ├── horserace.json ├── motivational.json ├── musictrivia.json ├── roast.json ├── soundboard.json └── works.json ├── README.md ├── anti-ad.js ├── assets ├── fonts │ ├── Impact.ttf │ ├── Korrina.otf │ ├── RobotoRegular.ttf │ └── courbd.ttf └── sounds │ ├── ahh.mp3 │ ├── jeff.mp3 │ ├── jeopardy.mp3 │ ├── moaning.mp3 │ ├── nani.mp3 │ ├── pikachu.mp3 │ ├── ree.mp3 │ ├── shutdown.mp3 │ ├── startup.mp3 │ └── yeet.mp3 ├── commands ├── economy │ ├── addmoney.js │ ├── balance.js │ ├── beg.js │ ├── buy.js │ ├── daily.js │ ├── deposit.js │ ├── fish.js │ ├── leaderboard.js │ ├── pay.js │ ├── profile.js │ ├── removemoney.js │ ├── rob.js │ ├── roulette.js │ ├── sell.js │ ├── setbackground.js │ ├── setinfo.js │ ├── slots.js │ ├── store.js │ ├── weekly.js │ ├── withdraw.js │ └── work.js ├── fun │ ├── advice.js │ ├── affect.js │ ├── anime.js │ ├── announce.js │ ├── applestore.js │ ├── ascii.js │ ├── av2.js │ ├── avatar.js │ ├── beautiful.js │ ├── binary.js │ ├── blur.js │ ├── c.js │ ├── calculate.js │ ├── captcha.js │ ├── catsay.js │ ├── clyde.js │ ├── coinflip.js │ ├── connect.js │ ├── country.js │ ├── covid.js │ ├── cowsay.js │ ├── decode.js │ ├── delete.js │ ├── docs.js │ ├── embed.js │ ├── emojify.js │ ├── emojiid.js │ ├── enlarge.js │ ├── fliptext.js │ ├── getinvite.js │ ├── gif.js │ ├── github.js │ ├── help.js │ ├── hug.js │ ├── imageannounce.js │ ├── imdb.js │ ├── jail.js │ ├── kiss.js │ ├── linkshorten.js │ ├── love.js │ ├── membercount.js │ ├── meme.js │ ├── minecraft.js │ ├── motivation.js │ ├── pat.js │ ├── playstore.js │ ├── poke.js │ ├── prefix.js │ ├── qr.js │ ├── rip.js │ ├── roast.js │ ├── say.js │ ├── scroll.js │ ├── serverinfo.js │ ├── serverlist.js │ ├── slap.js │ ├── smug.js │ ├── soundboard.js │ ├── stats.js │ ├── status.js │ ├── stealemoji.js │ ├── tickle.js │ ├── toilet.js │ ├── triggered.js │ ├── tts.js │ ├── uptime.js │ ├── urbandictionary.js │ ├── vaportext.js │ ├── voicemove.js │ ├── wasted.js │ ├── weather.js │ ├── whatsapp.js │ ├── wideavatar.js │ ├── wiki.js │ ├── wink.js │ ├── youtubesearch.js │ └── zalgo.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 │ └── zalgo.js ├── image │ ├── avatar.js │ ├── avatarfusion.js │ ├── captcha.js │ ├── catsay.js │ ├── clyde.js │ ├── facepalm.js │ ├── fire.js │ ├── gif.js │ ├── jail.js │ ├── love.js │ ├── mission.js │ ├── phcomment.js │ ├── rip.js │ ├── scary.js │ ├── tobecontinued.js │ ├── triggered.js │ ├── tweet.js │ └── wasted.js ├── info │ ├── channelinfo.js │ ├── help.js │ ├── instasearch.js │ ├── invites.js │ ├── level.js │ ├── news.js │ ├── ping.js │ ├── poll.js │ ├── roleinfo.js │ ├── rolememberinfo.js │ ├── serverinfo.js │ ├── uptime.js │ ├── weather.js │ ├── whois.js │ └── wikipedia.js ├── misc │ └── ping.js ├── mod │ ├── ban.js │ ├── channelinfo.js │ ├── createchat.js │ ├── createvc.js │ ├── delchannel.js │ ├── delrole.js │ ├── disablemodlogchannel.js │ ├── disablemuterole.js │ ├── hackban.js │ ├── kick.js │ ├── lock.js │ ├── mute.js │ ├── purge.js │ ├── reloadmod.js │ ├── role.js │ ├── roleadd.js │ ├── rolecreate.js │ ├── roledel.js │ ├── rolememberinfo.js │ ├── setmodlogchannel.js │ ├── setmuterole.js │ ├── setnick.js │ ├── singlevoicemove.js │ ├── slowmode.js │ ├── unban.js │ ├── unbanall.js │ ├── undeafen.js │ ├── unlock.js │ ├── unmute.js │ ├── voicekick.js │ ├── warn.js │ └── whois.js ├── moderation │ ├── addrole.js │ ├── ban.js │ ├── channelinfo.js │ ├── createchat.js │ ├── createvc.js │ ├── delchannel.js │ ├── delrole.js │ ├── disablemodlogchannel.js │ ├── disablemuterole.js │ ├── disableverification.js │ ├── disablewelcomechannel.js │ ├── disablexp.js │ ├── hackban.js │ ├── kick.js │ ├── lock.js │ ├── mute.js │ ├── purge.js │ ├── reloadmod.js │ ├── removerole.js │ ├── role.js │ ├── roleadd.js │ ├── rolecreate.js │ ├── roledel.js │ ├── rolememberinfo.js │ ├── setmodlogchannel.js │ ├── setmuterole.js │ ├── setnick.js │ ├── setprefix.js │ ├── setverification.js │ ├── setwelcomechannel.js │ ├── setxp.js │ ├── singlevoicemove.js │ ├── slowmode.js │ ├── unban.js │ ├── unbanall.js │ ├── undeafen.js │ ├── unlock.js │ ├── unmute.js │ ├── verify.js │ ├── voicekick.js │ ├── warn.js │ └── whois.js ├── music │ ├── Loop.js │ ├── clear.js │ ├── disable-loop.js │ ├── join.js │ ├── leave.js │ ├── np.js │ ├── play.js │ ├── playlist.js │ ├── push.js │ ├── queue.js │ ├── resume.js │ ├── shuffle.js │ ├── skip.js │ ├── stop.js │ └── volume.js ├── owner │ ├── eval.js │ ├── getinvite.js │ └── serverlist.js └── utility │ ├── advice.js │ ├── affect.js │ ├── anime.js │ ├── announce.js │ ├── applestore.js │ ├── ascii.js │ ├── av2.js │ ├── avatar.js │ ├── beautiful.js │ ├── binary.js │ ├── blur.js │ ├── calculate.js │ ├── captcha.js │ ├── catsay.js │ ├── clyde.js │ ├── connect.js │ ├── country.js │ ├── covid.js │ ├── cowsay.js │ ├── decode.js │ ├── delete.js │ ├── docs.js │ ├── embed.js │ ├── emojify.js │ ├── emojiid.js │ ├── enlarge.js │ ├── fliptext.js │ ├── getinvite.js │ ├── gif.js │ ├── github.js │ ├── help.js │ ├── hug.js │ ├── imageannounce.js │ ├── imdb.js │ ├── jail.js │ ├── kiss.js │ ├── linkshorten.js │ ├── love.js │ ├── membercount.js │ ├── meme.js │ ├── minecraft.js │ ├── pat.js │ ├── playstore.js │ ├── poke.js │ ├── prefix.js │ ├── qr.js │ ├── rip.js │ ├── scroll.js │ ├── serverinfo.js │ ├── serverlist.js │ ├── slap.js │ ├── smug.js │ ├── stats.js │ ├── stealemoji.js │ ├── tickle.js │ ├── toilet.js │ ├── triggered.js │ ├── tweet.js │ ├── uptime.js │ ├── vaportext.js │ ├── voicemove.js │ ├── wasted.js │ ├── weather.js │ ├── whatsapp.js │ ├── wideavatar.js │ ├── wiki.js │ ├── wink.js │ ├── youtubesearch.js │ └── zalgo.js ├── config.js ├── config.json ├── events ├── client │ └── ready.js └── guild │ └── message.js ├── first-message.js ├── functions.js ├── handler ├── command.js ├── console.js └── event.js ├── index.js ├── json.sqlite ├── modules └── functions.js ├── owner.json ├── package-lock.json ├── package.json ├── private-message.js ├── schemas ├── message-count-schema.js └── welcome-schema.js ├── structures ├── phone │ └── PhoneCall.js └── poker │ ├── Card.js │ └── Deck.js ├── views └── index.html └── welcome.js /.replit: -------------------------------------------------------------------------------- 1 | language = "nodejs" 2 | run = "node index.js" -------------------------------------------------------------------------------- /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 | ] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Made by Rover © 800+ commands 2 | # Join the Discord: https://discord.gg/roverdev 3 | 4 | [THIS BOT WILL BE NO LONGER UPDATED (JOIN THE DISCORD FOR MORE INFO)] 5 | -------------------------------------------------------------------------------- /anti-ad.js: -------------------------------------------------------------------------------- 1 | module.exports = (client) => { 2 | const isInvite = async (guild, code) => { 3 | return await new Promise((resolve) => { 4 | guild.fetchInvites().then((invites) => { 5 | for (const invite of invites) { 6 | if (code === invite[0]) { 7 | resolve(true) 8 | return 9 | } 10 | } 11 | 12 | resolve(false) 13 | }) 14 | }) 15 | } 16 | 17 | client.on('message', async (message) => { 18 | const { guild, member, content } = message 19 | 20 | // discord.gg/23RAN4 21 | 22 | const code = content.split('discord.gg/')[1] 23 | console.log('CODE:', code) 24 | 25 | if (content.includes('discord.gg/')) { 26 | const isOurInvite = await isInvite(guild, code) 27 | if (!isOurInvite) { 28 | // we know that they are advertising an outside discord server 29 | } 30 | } 31 | }) 32 | } 33 | -------------------------------------------------------------------------------- /assets/fonts/Impact.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/fonts/Impact.ttf -------------------------------------------------------------------------------- /assets/fonts/Korrina.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/fonts/Korrina.otf -------------------------------------------------------------------------------- /assets/fonts/RobotoRegular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/fonts/RobotoRegular.ttf -------------------------------------------------------------------------------- /assets/fonts/courbd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/fonts/courbd.ttf -------------------------------------------------------------------------------- /assets/sounds/ahh.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/ahh.mp3 -------------------------------------------------------------------------------- /assets/sounds/jeff.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/jeff.mp3 -------------------------------------------------------------------------------- /assets/sounds/jeopardy.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/jeopardy.mp3 -------------------------------------------------------------------------------- /assets/sounds/moaning.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/moaning.mp3 -------------------------------------------------------------------------------- /assets/sounds/nani.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/nani.mp3 -------------------------------------------------------------------------------- /assets/sounds/pikachu.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/pikachu.mp3 -------------------------------------------------------------------------------- /assets/sounds/ree.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/ree.mp3 -------------------------------------------------------------------------------- /assets/sounds/shutdown.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/shutdown.mp3 -------------------------------------------------------------------------------- /assets/sounds/startup.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/startup.mp3 -------------------------------------------------------------------------------- /assets/sounds/yeet.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/assets/sounds/yeet.mp3 -------------------------------------------------------------------------------- /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 | }; 46 | -------------------------------------------------------------------------------- /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: ["day"], 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 | } 41 | -------------------------------------------------------------------------------- /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: "weekly", 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/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 | }; 43 | -------------------------------------------------------------------------------- /commands/fun/advice.js: -------------------------------------------------------------------------------- 1 | const api = require("srod-v2"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "advice", 7 | aliases: [], 8 | category: "Fun", 9 | description: "Return A Random Advice!", 10 | usage: "Advice"}, 11 | run: async (client, message, args) => { 12 | 13 | const Data = await api.GetAdvice({ Color: "YELLOW" }); 14 | return message.channel.send(Data); 15 | } 16 | }; -------------------------------------------------------------------------------- /commands/fun/affect.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'affect', 7 | description: 'this won\'t affect my baby!', 8 | aliases: ["affect"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Affect().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "thomas.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/fun/announce.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "announce", 6 | aliases: ["aa"], 7 | category: "Info", 8 | description: "Announce Your Message To Anothr Channel", 9 | usage: "announce #channel your message" 10 | }, 11 | run: async (client, message, args) => { 12 | if (!message.member.hasPermission(["ADMINISTRATOR"])) 13 | return message.channel.send("You don't have premmsions to do that!"); 14 | 15 | let inline = true; 16 | let sayChannel = 17 | message.mentions.channels.first() || 18 | message.guild.channels.cache.get(args[0]); 19 | if (!sayChannel) 20 | return message.channel.send( 21 | `<:Cross:778450163014303774> | ${message.author} mention a channel First` 22 | ); 23 | let sayMsg = args 24 | .slice(1) 25 | .join(" ") 26 | .split(" | "); 27 | 28 | if (!sayMsg[1]) sayMsg[1] == "FF7034"; 29 | if (!sayMsg) 30 | return message.channel.send( 31 | ` | Say Some Message To Announce` 32 | ); 33 | let role = message.member.highestRole; 34 | let embed = new Discord.MessageEmbed() 35 | .setColor(sayMsg[1]) 36 | .setDescription(sayMsg[0]); 37 | 38 | message.delete(); 39 | message.channel 40 | .send( 41 | `<:yesk:778449313616756736> | successfully Announced Your Message To ${sayChannel}` 42 | ) 43 | .then(m => m.delete({ timeout: 2000 })); 44 | 45 | sayChannel.send({ embed }).catch(console.error); 46 | } 47 | }; -------------------------------------------------------------------------------- /commands/fun/ascii.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const figlet = require("figlet"); 3 | 4 | module.exports = { 5 | config : { 6 | name: 'ascii'}, 7 | 8 | run : async (client, message , args) => { 9 | let p = args.join(" ") 10 | figlet(p, function(err, data) { 11 | if (err) { 12 | message.channel.send('Something went wrong...'); 13 | console.dir(err); 14 | return; 15 | } 16 | message.channel.send(`\`\`\`${data}\`\`\``) 17 | }); 18 | } 19 | } -------------------------------------------------------------------------------- /commands/fun/av2.js: -------------------------------------------------------------------------------- 1 | 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "av2", 7 | aliases: ["av2", "ava2"], 8 | category: "info", 9 | description: "Get avatar of any user" 10 | }, 11 | run: async (client, message, args) => { 12 | let user = message.mentions.users.first() || message.author 13 | 14 | let size = [16, 32, 64, 128, 256, 512, 1024, 2048, 4096] 15 | let type = ['webp', 'png', 'jpg', 'gif', 'jpeg'] 16 | 17 | let embed = new Discord.MessageEmbed() 18 | .setAuthor(message.author.tag, message.author.displayAvatarURL()) 19 | .setImage(user.displayAvatarURL({dynamic: true})) 20 | .setFooter(client.user.username, client.user.displayAvatarURL()) 21 | type.forEach(em => { 22 | embed.addField(em.toUpperCase(), size.map(s => `[${s}](${user.displayAvatarURL({size: s, format: em})})`).join(" | ")) 23 | }) 24 | 25 | 26 | 27 | return message.channel.send(embed) 28 | } 29 | }; -------------------------------------------------------------------------------- /commands/fun/avatar.js: -------------------------------------------------------------------------------- 1 | 2 | const discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "avatar", 7 | aliases: ["av", "ava"], 8 | category: "info", 9 | description: "Get avatar of any user" 10 | }, 11 | run: async (client, message, args) => { 12 | let target; 13 | 14 | if (message.mentions.users.first()) { 15 | target = message.mentions.users.first(); 16 | } else if (args[0]) { 17 | target = message.guild.members.cache.get(args[0]).user; 18 | } else { 19 | target = message.author; 20 | } 21 | 22 | let avatar = target.displayAvatarURL({ dynamic: true, size: 2048 }); 23 | 24 | let embed = new discord.MessageEmbed(); 25 | 26 | embed.setDescription(`[Download Avatar](${avatar})`); 27 | embed.setImage(avatar); 28 | embed.setColor("RANDOM"); 29 | message.channel.send(embed); 30 | } 31 | }; -------------------------------------------------------------------------------- /commands/fun/beautiful.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'beautiful', 7 | description: 'This is Beautiful!', 8 | aliases: ["beautiful"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Beautiful().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "delete.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/fun/binary.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js') 3 | const config = require('../../config'); 4 | const axios = require('axios') 5 | 6 | module.exports = { 7 | config: { 8 | name: 'binary', 9 | description: 'Shows your text in Binary Format', 10 | aliases: ["binary"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const url = `http://some-random-api.ml/binary?text=${args}`; 17 | 18 | let response, data; 19 | try { 20 | response = await axios.get(url); 21 | data = response.data; 22 | } catch (e) { 23 | return message.channel.send(`An error occured, please try again!`); 24 | } 25 | 26 | const embed = new MessageEmbed() 27 | .setTitle("Text to Binary") 28 | .setThumbnail( 29 | "https://png.pngtree.com/png-clipart/20200225/original/pngtree-binary-code-and-magnifying-glass-isometric-icon-png-image_5252004.jpg" 30 | ) 31 | 32 | .setDescription("**Binary Code** - `" + data.binary + "`") 33 | .setTimestamp() 34 | .setFooter( 35 | "© Zeus Bot", 36 | ) 37 | .setColor(config.embedcolor); 38 | 39 | await message.channel.send(embed); 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /commands/fun/blur.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | const config = require('../../config'); 4 | const DIG = require("discord-image-generation"); 5 | 6 | module.exports = { 7 | config : { 8 | name: "blur", 9 | category: "Image", 10 | description: "Converts a user's avatar in blur affect !!", 11 | example: `${config.Prefix}blur @Dinav`}, 12 | 13 | run: async (client, message, args) => { 14 | 15 | const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 16 | 17 | if(!user) 18 | return message.reply(`${emoji.Error} Provide a valid user !!`) 19 | 20 | const avatar = user.user.displayAvatarURL({ dynamic: false, format: 'png', size: 1024 }); 21 | 22 | new DIG.Blur().getImage(avatar, 43); 23 | 24 | let img = await new DIG.Blur().getImage(avatar); 25 | 26 | let attach = new Discord.MessageAttachment(img, "affect.png"); 27 | 28 | message.channel.send(attach) 29 | } 30 | } -------------------------------------------------------------------------------- /commands/fun/c.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/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/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/fun/catsay.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "catsay", 6 | description: "Make the cat say your message"}, 7 | run: async(client, message, args) => { 8 | 9 | const state = "enabled"; 10 | if (state === "disabled") { 11 | return message.channel.send("Command has been disabled for now"); 12 | } 13 | const msg = args.join(" "); 14 | if (!msg) { 15 | return message.channel.send("What you want the cat to say?"); 16 | } 17 | message.channel.send({files: [{attachment: `https://cataas.com/cat/cute/says/${msg}`, name: "catsay.png"}]}); 18 | } 19 | } -------------------------------------------------------------------------------- /commands/fun/clyde.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const { MessageAttachment } = require('discord.js') 4 | const fetch = require('node-fetch') 5 | 6 | module.exports = { 7 | config: { 8 | name: 'clyde', 9 | description: 'Shows your text as Clyde\'s message', 10 | aliases: ["clyde"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const text = args.slice().join(' '); 17 | if (!text) { 18 | return message.channel.send( 19 | '❎ Please provide valid text.', 20 | ); 21 | } 22 | 23 | const url = `https://nekobot.xyz/api/imagegen?type=clyde&text=${text}`; 24 | 25 | let response; 26 | try { 27 | response = await fetch(url).then(res => res.json()); 28 | } 29 | catch (e) { 30 | return message.channel.send('❎ An error occured, please try again!'); 31 | } 32 | const attachment = new MessageAttachment(response.message, 'clyde.png'); 33 | return message.channel.send(attachment); 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /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/connect.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "connect", 6 | aliases: ["join", "j"], 7 | description: "Bans the user", 8 | usage: "[name | nickname | mention | ID] (optional)", 9 | }, 10 | 11 | run: async (client, message) => { 12 | const channel = message.member.voice.channel; 13 | if (!channel) 14 | return message.channel.send( 15 | "You must Join a voice channel before using this command!" 16 | ); 17 | 18 | if (!channel.permissionsFor(message.client.user).has("CONNECT")) 19 | return error("I don't have permission to join the voice channel"); 20 | 21 | if (!channel.permissionsFor(message.client.user).has("SPEAK")) 22 | return error("I don't have permission to speak in the voice channel"); 23 | 24 | await channel.join(); 25 | 26 | return message.channel.send( 27 | new MessageEmbed() 28 | .setDescription("**Joined the voice channel :white_check_mark: **") 29 | .setColor("BLUE") 30 | ); 31 | } 32 | } -------------------------------------------------------------------------------- /commands/fun/decode.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const axios = require('axios'); 3 | 4 | module.exports = { 5 | config : { 6 | name: "decode", 7 | aliases: ["dd"], 8 | description: "It Decodes the binary language!", 9 | category: "Utility", 10 | example: `c!decode 0110100100101100011011000110111101110110011001010010110001110101`}, 11 | run: async (client, message, args) => { 12 | const url = `http://some-random-api.ml/binary?decode=${args}`; 13 | 14 | let response, data; 15 | try { 16 | response = await axios.get(url); 17 | data = response.data; 18 | } catch (e) { 19 | return message.channel.send(`An error occured, please try again!`) 20 | } 21 | 22 | const embed = new MessageEmbed() 23 | .setTitle('Decode Binary') 24 | .setDescription(data.text) 25 | .setColor('YELLOW') 26 | 27 | await message.channel.send(embed) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/fun/delete.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'delete', 7 | description: 'delete this trash!', 8 | aliases: ["delete"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Delete().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "delete.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/fun/docs.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const fetch = require('node-fetch'); 3 | const config = require('../../config'); 4 | 5 | module.exports= { 6 | config : { 7 | aliases: [""], 8 | name: 'docs', 9 | description: 'Search the discord.js docs', 10 | usage: config.prefix + 'docs message'}, 11 | 12 | run : async (client, message, args) => { 13 | const searchQuery = args.slice().join(' '); 14 | const url = `https://djsdocs.sorta.moe/v2/embed?src=stable&q=${encodeURIComponent(searchQuery)}`; 15 | fetch(url) 16 | .then((res) => res.json()) 17 | .then((embed) => { 18 | if (embed && !embed.error) { 19 | message.channel.send({ 20 | embed, 21 | }); 22 | } 23 | else { 24 | const embed2 = new Discord.MessageEmbed() 25 | .setColor('RANDOM') 26 | .setDescription(`There isnt anything related to \`${searchQuery}\``); 27 | return message.channel.send(embed2); 28 | } 29 | }) 30 | // eslint-disable-next-line no-unused-vars 31 | .catch((err) => { 32 | const embed3 = new Discord.MessageEmbed() 33 | .setColor('RANDOM') 34 | .setDescription('**There was an error doing that!`**'); 35 | return message.channel.send(embed3); 36 | }); 37 | } 38 | } 39 | 40 | 41 | -------------------------------------------------------------------------------- /commands/fun/emojify.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | 4 | 5 | module.exports = { 6 | config: { 7 | name: 'emojify', 8 | description: 'Emojifies your text message', 9 | aliases: ["emojify"], 10 | usage: '', 11 | accessableby: "", 12 | }, 13 | run: async (client, message, args) => { 14 | 15 | if(!args[0]) { 16 | return message.channel.send( 17 | '❎ Please provide valid text.', 18 | ); 19 | } 20 | 21 | const specialChars = { 22 | '0': ':zero:', 23 | '1': ':one:', 24 | '2': ':two:', 25 | '3': ':three:', 26 | '4': ':four:', 27 | '5': ':five:', 28 | '6': ':six:', 29 | '7': ':seven:', 30 | '8': ':eight:', 31 | '9': ':nine:', 32 | '#': ':hash:', 33 | '*': ':asterisk:', 34 | '?': ':grey_question:', 35 | '!': ':grey_exclamation:', 36 | ' ': ' ', 37 | }; 38 | 39 | const emojified = `${args.join(' ')}`.toLowerCase().split('').map(letter => { 40 | if (/[a-z]/g.test(letter)) { 41 | return `:regional_indicator_${letter}: `; 42 | } 43 | else if (specialChars[letter]) { 44 | return `${specialChars[letter]} `; 45 | } 46 | return letter; 47 | }).join(''); 48 | 49 | if(emojified.length > 2000) { 50 | return message.channel.send(`${client.emotes.error} The emojified message exceeds 2000 characters.`); 51 | } 52 | 53 | message.channel.send(emojified); 54 | 55 | } 56 | } 57 | 58 | -------------------------------------------------------------------------------- /commands/fun/emojiid.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: 'emojiid', 6 | description: 'Emojifies your text message', 7 | aliases: ["emojiid","ei"], 8 | usage: '', 9 | accessableby: "", 10 | }, 11 | run: async (client, message, args) => { 12 | const name = args.join(" "); 13 | const emoji = message.guild.emojis.cache.find(r => r.name === name); 14 | if (!name) { 15 | return message.channel.send("Please type the emoji name") 16 | } 17 | if (!emoji) { 18 | return message.channel.send("Couldn't find the Emojis with the provided name. Please make sure the Emoji name is correct"); 19 | } 20 | message.channel.send(`\`\`\`${emoji}\`\`\``) 21 | } 22 | } -------------------------------------------------------------------------------- /commands/fun/enlarge.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { parse } = require("twemoji-parser"); 3 | const { MessageEmbed } = require("discord.js"); 4 | const Color = `#ffffff`; 5 | 6 | module.exports = { 7 | config : { 8 | name: "jumbo", 9 | category: "fun", 10 | description: "Converting Server emoji to PNG/GIF!"}, 11 | run: async(client, message, args) => { 12 | 13 | 14 | const authoravatar = message.author.avatarURL(); 15 | const emoji = args[0]; 16 | if (!emoji) return message.channel.send(`Please Give Me A Emoji!`); 17 | 18 | let customemoji = Discord.Util.parseEmoji(emoji); 19 | 20 | if (customemoji.id) { 21 | const Link = `https://cdn.discordapp.com/emojis/${customemoji.id}.${customemoji.animated ? "gif" : "png" 22 | }`; 23 | 24 | const Added = new MessageEmbed() 25 | .setAuthor(`Enlarged Emoji`, authoravatar) 26 | .setColor(`${Color}`) 27 | .setDescription(`\`${customemoji.name}\` \`${customemoji.id}\``) 28 | .setImage(Link 29 | ); 30 | return message.channel.send(Added); 31 | } else { 32 | let CheckEmoji = parse(emoji, { assetType: "png" }); 33 | if (!CheckEmoji[0]) 34 | return message.channel.send(`Please Give Me A Valid Emoji!`); 35 | message.channel.send( 36 | `You Can Use Normal Emoji Without Adding In Server!` 37 | ); 38 | } 39 | } 40 | }; -------------------------------------------------------------------------------- /commands/fun/fliptext.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | const flip = require("flip-text"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "fliptext", 7 | description: "Flip some text", 8 | usage: "fliptext ", 9 | type: "Fun"}, 10 | run: async(client, message, args) => { 11 | if (args.length < 1) { 12 | return message.channel.send("Please enter some text to flip") 13 | } 14 | args.reverse(); 15 | var flipped = []; 16 | 17 | args.forEach((arg) => { 18 | flipped.push(flip(arg)); 19 | }); 20 | 21 | message.channel.send(flipped.join(" ")); 22 | } 23 | } -------------------------------------------------------------------------------- /commands/fun/gif.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js") 2 | const giphy = require('giphy-api')("W8g6R14C0hpH6ZMon9HV9FTqKs4o4rCk"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "gif", 7 | description: "Get gifs based on your search"}, 8 | run: async (client, message, args) => { 9 | if (args.length === 0) { 10 | message.channel.send('No Search terms!') 11 | return; 12 | } 13 | if (args.length === 1) { 14 | term = args.toString() 15 | } else { 16 | term = args.join(" "); 17 | } 18 | giphy.search(term).then(function (res) { 19 | // Res contains gif data! 20 | let id = res.data[0].id 21 | let msgurl = `https://media.giphy.com/media/${id}/giphy.gif` 22 | 23 | const embed = new Discord.MessageEmbed() 24 | .setTitle(`First result for \`${term}\` on GIPHY`) 25 | .setImage(msgurl) 26 | .setFooter(`Powered by GIPHY`, `https://raw.githubusercontent.com/Giphy/GiphyAPI/f68a8f1663f29dd9e8e4ea728421eb2977e42d83/api_giphy_logo_sparkle_clear.gif`) 27 | .setColor("RANDOM"); 28 | message.channel.send(embed); 29 | 30 | }); 31 | 32 | message.delete(); 33 | } 34 | } -------------------------------------------------------------------------------- /commands/fun/hug.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: 'hug', 8 | description: 'Hugs people', 9 | aliases: ["hug"], 10 | usage: '', 11 | accessableby: "", 12 | }, 13 | run: async (client, message, args) => { 14 | 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; 15 | const { body } = await superagent 16 | .get("https://nekos.life/api/v2/img/hug"); 17 | const embed = new Discord.MessageEmbed() 18 | .setColor("PINK") 19 | 20 | .setDescription(`${victim} is hugged by ${message.author}`) 21 | .setImage(body.url) 22 | .setTimestamp() 23 | 24 | message.channel.send(embed); 25 | 26 | } 27 | } -------------------------------------------------------------------------------- /commands/fun/imageannounce.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "image-announce", 6 | aliases: ["iannounce","ia"] 7 | }, 8 | run: async (client, message, args) => { 9 | const chm = message.mentions.channels.first(); 10 | if (!chm) return message.reply("First mention A Channel Then Image"); 11 | 12 | const image = message.attachments.first() 13 | ? message.attachments.first().proxyURL 14 | : null || args[1]; 15 | if (!image) return message.reply("Provide A Image"); 16 | 17 | const embed = new Discord.MessageEmbed() 18 | .setImage(image, { dynamite: 1024 }) 19 | .setColor("FF7034"); 20 | 21 | chm.send(embed); 22 | } 23 | }; -------------------------------------------------------------------------------- /commands/fun/imdb.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | const imdb = require("imdb-api"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "movie", 7 | description: "Get the information about series and movie", 8 | category: "info", 9 | usage: "imdb " 10 | }, 11 | run: async (client, message, args, color) => { 12 | 13 | if(!args.length) { 14 | return message.channel.send("Please give the name of movie or series") 15 | } 16 | 17 | const imob = new imdb.Client({apiKey: "5e36f0db"}) //You need to paste you imdb api 18 | 19 | let movie = await imob.get({'name': args.join(" ")}) 20 | 21 | let embed = new discord.MessageEmbed() 22 | .setTitle(movie.title) 23 | .setColor("RANDOM") 24 | .setThumbnail(movie.poster) 25 | .setDescription(movie.plot) 26 | .setFooter(`Ratings: ${movie.rating}`) 27 | .addField("Country", movie.country, true) 28 | .addField("Languages", movie.languages, true) 29 | .addField("Type", movie.type, true); 30 | 31 | 32 | message.channel.send(embed) 33 | 34 | 35 | 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /commands/fun/jail.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const DIG = require("discord-image-generation"); 4 | 5 | module.exports = { 6 | config : { 7 | name: "jail", 8 | category: "Image", 9 | description: "Converts a user's avatar in jail !!", 10 | example: `${config.Prefix}jail @Dinav`}, 11 | 12 | run: async (client, message, args) => { 13 | 14 | const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 15 | 16 | if(!user) 17 | return message.reply(` Provide a valid user !!`) 18 | 19 | const avatar = user.user.displayAvatarURL({ dynamic: false, format: 'png', size: 1024 }); 20 | 21 | let img = await new DIG.Jail().getImage(avatar); 22 | 23 | let attach = new Discord.MessageAttachment(img, "jail.png"); 24 | 25 | message.channel.send(attach) 26 | } 27 | } -------------------------------------------------------------------------------- /commands/fun/linkshorten.js: -------------------------------------------------------------------------------- 1 | const shorten = require('isgd'); 2 | 3 | 4 | module.exports = { 5 | config : { 6 | name: "linkshorten", 7 | aliases: ["shorten"], 8 | category: "Utility", 9 | description: "Shortens your URL to is.gd format !!", 10 | example: `c!linkshorten https://discord.gg/RWSEj6JrjJ blob_lab`}, 11 | 12 | run: async (client, message, args) => { 13 | 14 | if (!args[0]) return message.reply(`Provide the link to shorten !! \`${config.Prefix}shortenlink \``) 15 | 16 | if (!args[0]) { 17 | shorten.shorten(args[0], function(res) { 18 | if(res.startsWith('Error:')) return message.reply(` Provide a valid url **${res}**`) 19 | 20 | message.channel.send(`**<${res}>**`) 21 | }) 22 | 23 | } else { 24 | 25 | shorten.custom(args[0], args[1], function(res) { 26 | if(res.startsWith('Error:')) return message.reply(` **${res}**`) 27 | 28 | message.channel.send(`**<${res}>**`) 29 | }) 30 | 31 | } 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /commands/fun/membercount.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "membercount", 6 | description: "Show members in the servers", 7 | usage: "z!membercount", 8 | aliases: ["membercount","mc"] 9 | }, 10 | run: async (client, message, args) => { 11 | 12 | let embed = new discord.MessageEmbed() 13 | .setAuthor( 14 | `Members`) 15 | .setDescription(`${message.guild.memberCount}`) 16 | .setColor("RANDOM") 17 | .setTimestamp(message.timestamp = Date.now()) 18 | 19 | message.channel.send(embed) 20 | } 21 | } -------------------------------------------------------------------------------- /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 | .setURL(`https://reddit.com/r/${random}`); 23 | 24 | message.channel.send(embed); 25 | } 26 | } -------------------------------------------------------------------------------- /commands/fun/minecraft.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | module.exports = { 3 | config : { 4 | name: 'minecraft'}, 5 | 6 | 7 | run :async (client , message , args) => { 8 | const sentence = args.join("+") 9 | 10 | if (!sentence) return message.channel.send('Please specify a text.') 11 | if (sentence > 22) return message.channel.send("Please type a text no bigger than 22 characters") 12 | let embed = new Discord.MessageEmbed() 13 | .setTitle('Achievement unlocked!') 14 | .setImage(`https://api.cool-img-api.ml/achievement?text=${sentence}`) 15 | .setColor('RANDOM') 16 | .setFooter(' '); 17 | message.channel.send(embed) 18 | } 19 | } -------------------------------------------------------------------------------- /commands/fun/pat.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const superagent = require('superagent'); 4 | 5 | 6 | module.exports = { 7 | config: { 8 | name: 'pat', 9 | description: 'Pats people', 10 | aliases: ["pat"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 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; 16 | const { body } = await superagent 17 | .get("https://nekos.life/api/v2/img/pat"); 18 | const embed = new Discord.MessageEmbed() 19 | .setColor("YELLOW") 20 | .setTitle("Here's your Pat, 👀") 21 | .setDescription(`${victim} Pats ${message.author}`) 22 | .setImage(body.url) 23 | .setTimestamp() 24 | 25 | 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/fun/playstore.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const PlayStore = require("google-play-scraper"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "playstore", 7 | aliases: ["googleplaystore", "googleps"], 8 | category: "info", 9 | description: "Show Playstore Application Information Of Your Given Name!", 10 | usage: "", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | if (!args[0]) 15 | return message.channel.send( 16 | `Please Give Something To Search - ${message.author.username}` 17 | ); 18 | 19 | PlayStore.search({ 20 | term: args.join(" "), 21 | num: 1 22 | }).then(Data => { 23 | let App; 24 | 25 | try { 26 | App = JSON.parse(JSON.stringify(Data[0])); 27 | } catch (error) { 28 | return message.channel.send( 29 | `No Application Found - ${message.author.username}!` 30 | ); 31 | } 32 | 33 | let Embed = new Discord.MessageEmbed() 34 | .setColor("RANDOM") 35 | .setThumbnail(App.icon) 36 | .setURL(App.url) 37 | .setTitle(`${App.title}`) 38 | .setDescription(App.summary) 39 | .addField(`Price`, App.priceText) 40 | .addField(`Developer`, App.developer) 41 | .addField(`Ratings`, App.scoreText) 42 | .setFooter(`Requested By ${message.author.username}`) 43 | .setTimestamp(); 44 | 45 | return message.channel.send(Embed); 46 | }); 47 | } 48 | } -------------------------------------------------------------------------------- /commands/fun/poke.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const config = require("../../config"); 3 | const nekos = require("nekos.life"); 4 | const { 5 | sfw: { poke }, 6 | } = new nekos(); 7 | 8 | module.exports = { 9 | config: { 10 | name: "poke", 11 | description: "Get's a poke reaction!", 12 | aliases: ["POKE", "Poke"], 13 | usage: "", 14 | accessableby: "", 15 | }, 16 | run: async (client, message, args) => { 17 | const { url } = await poke().catch(() => {}); 18 | 19 | if (!url) return message.channel.send(`Could not connect to nekos.life`); 20 | 21 | const embed = new MessageEmbed(); 22 | 23 | if ( 24 | message.mentions.members.size && 25 | message.mentions.members.first().id === client.user.id 26 | ) { 27 | return message.channel.send( 28 | `${message.member}, I'm already here! You need something?` 29 | ); 30 | } else if ( 31 | message.mentions.members.size && 32 | message.mentions.members.first().id === message.author.id 33 | ) { 34 | return message.channel.send(`What?`); 35 | } else if (message.mentions.members.size) { 36 | return message.channel.send( 37 | embed 38 | .setColor("YELLOW") 39 | .setDescription( 40 | `${message.member} pokes ${message.mentions.members.first()}!` 41 | ) 42 | .setImage(url) 43 | ); 44 | } else { 45 | return message.channel.send( 46 | `${message.member}, I can't poke your imaginary friend! :(` 47 | ); 48 | } 49 | }, 50 | }; -------------------------------------------------------------------------------- /commands/fun/qr.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = { 4 | config : { 5 | name: "qr", 6 | aliases: ["qrcode"], 7 | category: "Utility", 8 | description: "Coneverts the provided link to a qr code cool ?", 9 | example: `c!qr https://youtube.com`}, 10 | 11 | run: async (client, message, args) => { 12 | 13 | let link = (args[0]) 14 | let qrlink = `http://api.qrserver.com/v1/create-qr-code/?data=${link}&size=200x200` 15 | 16 | if (!link) 17 | return message.channel.send(` Please provide a link !!`) 18 | 19 | if (require('is-url')(link)) { 20 | const attachment = new Discord.MessageAttachment(qrlink, 'qrcode.png'); 21 | 22 | const embed = new Discord.MessageEmbed() 23 | .setTitle('QR Code Is Ready') 24 | .attachFiles(attachment) 25 | .setColor(message.guild.me.displayHexColor) 26 | .setImage('attachment://qrcode.png') 27 | .setFooter(`Requested by ${message.author.username}`, message.author.displayAvatarURL({ dynamic: true })) 28 | .setTimestamp() 29 | 30 | message.channel.send(embed) 31 | 32 | } else { 33 | message.reply(`${emoji.Error} Error provide a valid link which contain \`https://\``) 34 | } 35 | 36 | } 37 | } -------------------------------------------------------------------------------- /commands/fun/rip.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'rip', 7 | description: 'RIP!', 8 | aliases: ["rip"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Rip().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "rip.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /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/scroll.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | const Jimp = require("jimp"); 3 | const cooldown = new Set(); 4 | 5 | module.exports = { 6 | config :{ 7 | name: "scroll", 8 | description: "Another Fun Command"}, 9 | run: async(client, message, args) => { 10 | if (message.channel.type === "dm") return; 11 | let text = args.join(' ') 12 | if (!text) { 13 | return message.reply('You need to provide some text!'); 14 | } 15 | message.channel.send({files : [{attachment: `https://api.alexflipnote.dev/scroll?text=${text}`, name: 'file.jpg'}]}) 16 | } 17 | }; -------------------------------------------------------------------------------- /commands/fun/serverinfo.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { MessageEmbed } = require("discord.js"); 3 | 4 | 5 | module.exports = { 6 | config : { 7 | name: "serverinfo", 8 | aliases: ["serverinformation"], 9 | description: "Show Server Information!", 10 | usage: "Serverinfo" 11 | }, 12 | run: async (client, message, args) => { 13 | //Start 14 | const guild = message.guild; 15 | const Emojis = guild.emojis.cache.size || "No Emoji!"; 16 | const Roles = guild.roles.cache.size || "No Roles!"; 17 | const Members = guild.memberCount; 18 | const Humans = guild.members.cache.filter(member => !member.user.bot).size; 19 | const Bots = guild.members.cache.filter(member => member.user.bot).size; 20 | 21 | const embed = new MessageEmbed() 22 | .setTitle("Info of " + guild.name) 23 | .setColor("YELLOW") 24 | .setThumbnail(guild.iconURL()) 25 | .addField(`Name`, guild.name, true) 26 | .addField(`ID`, `${guild.id}`, true) 27 | .addField(`Owner`, `${guild.owner.user.tag}`, true) 28 | .addField(`Roles Count`, Roles, true) 29 | .addField(`Emojis Count`, Emojis, true) 30 | .addField(`Members Count`, Members, true) 31 | .addField(`Humans Count`, Humans, true) 32 | .addField(`Bots Count`, Bots, true) 33 | .addField(`Server Created At`, guild.createdAt.toDateString()) 34 | .setFooter(`Requested by ${message.author.username}`) 35 | .setTimestamp(); 36 | 37 | message.channel.send(embed); 38 | 39 | //End 40 | } 41 | }; -------------------------------------------------------------------------------- /commands/fun/smug.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const config = require("../../config"); 3 | const nekos = require("nekos.life"); 4 | const { 5 | sfw: { smug }, 6 | } = new nekos(); 7 | 8 | module.exports = { 9 | config: { 10 | name: "smug", 11 | description: "Get's a smug reaction!", 12 | aliases: ["SMUG", "Smug"], 13 | usage: "", 14 | accessableby: "", 15 | }, 16 | run: async (client, message, args) => { 17 | const { url } = await smug().catch(() => {}); 18 | 19 | if (!url) return message.channel.send(`Could not connect to nekos.life`); 20 | 21 | message.channel.send( 22 | new MessageEmbed() 23 | .setColor("YELLOW") 24 | .setImage(url) 25 | .setDescription(`${message.member} smugs.`) 26 | ); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/fun/toilet.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const Canvas = require('canvas'); 3 | 4 | module.exports = { 5 | config : { 6 | name: 'toilet', 7 | aliases: [], 8 | description: 'Flushes someone in a toilet! No idea how you will wanna go into a toilet'}, 9 | 10 | run : async (client, message, args) => { 11 | const member = message.mentions.members.first() || message.member; 12 | const canvas = Canvas.createCanvas(500, 670); 13 | const ctx = canvas.getContext('2d'); 14 | const background = await Canvas.loadImage('https://cdn.discordapp.com/attachments/779441456464003122/812706484240121876/unknown.png'); 15 | ctx.drawImage(background, 0, 0, canvas.width, canvas.height); 16 | // ctx.beginPath(); 17 | // // ctx.arc(350, 150, 100, 0, Math.PI * 2, true); 18 | // ctx.closePath(); 19 | // ctx.clip(); 20 | const avatar = await Canvas.loadImage(member.user.displayAvatarURL({ format: 'jpg' })); 21 | ctx.drawImage(avatar, 135, 350, 205, 205); 22 | const attachment = new Discord.MessageAttachment(canvas.toBuffer(), `toilet_${member.user.username}.jpg`); 23 | message.reply({ files: [attachment], allowedMentions: { repliedUser: false } }); 24 | }} -------------------------------------------------------------------------------- /commands/fun/triggered.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | const config = require('../../config'); 4 | const DIG = require("discord-image-generation"); 5 | 6 | module.exports = { 7 | config : { 8 | name: "trigger", 9 | category: "Image", 10 | description: "Converts a user's avatar in triggered format !!", 11 | aliases: ["triggered"], 12 | example: `${config.Prefix}trigger @Dinav`}, 13 | 14 | run: async (client, message, args) => { 15 | 16 | const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 17 | 18 | if(!user) 19 | return message.reply(`Provide a valid user !!`) 20 | 21 | const avatar = user.user.displayAvatarURL({ dynamic: false, format: 'png', size: 1024 }); 22 | 23 | let img = await new DIG.Triggered().getImage(avatar); 24 | 25 | let attach = new Discord.MessageAttachment(img, "triggered.gif"); 26 | 27 | message.channel.send(attach) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/fun/uptime.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | 4 | module.exports = { 5 | config : { 6 | name: "uptime", 7 | aliases: ["up", "uptime"], 8 | category: "Info", 9 | description: "Shows how long I've been online", 10 | example: `c!uptime`}, 11 | 12 | run: async (client, message, args) => { 13 | let Days = Math.floor(client.uptime / 86400000); 14 | let Hours = Math.floor(client.uptime / 3600000) % 24; 15 | let Minutes = Math.floor(client.uptime / 60000) % 60; 16 | let Seconds = Math.floor(client.uptime / 1000) % 60; 17 | const RemoveUseless = (Duration) => { 18 | return Duration.replace("0 Day\n", "").replace("0 Hour\n", "").replace("0 Minute\n", ""); 19 | }; 20 | let Uptime = await RemoveUseless(`\`${Days}\` ${Days > 1 ? "Days" : "Day"} \`${Hours}\` ${Hours > 1 ? "Hours" : "Hour"} \`${Minutes}\` ${Minutes > 1 ? "Minutes" : "Minute"} \`${Seconds}\` ${Seconds > 1 ? "Seconds" : "Second"}`); 21 | 22 | const embed = new Discord.MessageEmbed() 23 | .setTitle(`My Uptime`) 24 | .setDescription(`${Uptime}`) 25 | .setTimestamp(); 26 | 27 | await message.channel.send(embed) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/fun/vaportext.js: -------------------------------------------------------------------------------- 1 | 2 | const Discord = module.require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "vaportext", 7 | description: "Fun Command"}, 8 | run: async(client, message, args) => { 9 | if (!args.length) { 10 | return message.channel.send("You need to enter some text") 11 | } 12 | let msg = ""; 13 | for (let i = 0; i < args.length; i++) { 14 | msg += args[i].toUpperCase().split("").join(" ") + " "; 15 | } 16 | message.channel.send(msg); 17 | }} -------------------------------------------------------------------------------- /commands/fun/wasted.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "wasted", 6 | description: "Put the GTA Wasted pic over avatars!"}, 7 | run: async(client, message, args) => { 8 | const user = message.mentions.members.first(); 9 | if (!user) { 10 | return message.channel.send("Wasted? Who?"); 11 | } 12 | const avatar = user.user.displayAvatarURL({ size: 2048, format: "png" }); 13 | 14 | await message.channel.send({ files: [{ attachment: `https://some-random-api.ml/canvas/wasted?avatar=${avatar}`, name: 'file.jpg' }] }) 15 | } 16 | } -------------------------------------------------------------------------------- /commands/fun/whatsapp.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { createCanvas, loadImage } = require('canvas') 3 | 4 | module.exports = { 5 | config : { 6 | name: "whatsapp", 7 | aliases: ["wa"]}, 8 | run : async (client, message, args, prefix) => { 9 | 10 | let user = message.mentions.users.first() || client.users.cache.get(args[0]) || 11 | message.author 12 | 13 | const avatar = await loadImage( 14 | user.displayAvatarURL({ format: "png" }) 15 | ); 16 | const canvas = createCanvas(800, 800); 17 | const ctx = canvas.getContext("2d"); 18 | const background = await loadImage( 19 | "https://cdn.discordapp.com/attachments/821168411978629120/830951165943480359/whatsapp.png" 20 | ); 21 | ctx.drawImage(avatar, 0, 0, canvas.width, canvas.height); 22 | 23 | ctx.drawImage(background, 0, 0, canvas.width, canvas.height); 24 | const attachment = new Discord.MessageAttachment( 25 | canvas.toBuffer(), 26 | `${user.username}_whatsapp.png` 27 | ); 28 | 29 | message.channel.send(attachment); 30 | 31 | } 32 | } -------------------------------------------------------------------------------- /commands/fun/wideavatar.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "wideavatar", 6 | description: "Get a widened avatar of a user"}, 7 | 8 | run: async(client, message, args) => { 9 | const mention = message.mentions.members.first() || message.member; 10 | const avatar = mention.user.displayAvatarURL({dynamic: true, size: 2048, format: "png"}); 11 | 12 | message.channel.send({ files: [{ attachment: `https://vacefron.nl/api/wide?image=${avatar}`, name: "wideavatar.png"}]}); 13 | } 14 | } -------------------------------------------------------------------------------- /commands/fun/wiki.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const fetch = require('node-fetch') 4 | 5 | module.exports = { 6 | config: { 7 | name: 'wiki', 8 | description: 'Shows information about query from wikipedia', 9 | aliases: ["wikipedia"], 10 | usage: '', 11 | accessableby: "", 12 | }, 13 | run: async (client, message, args) => { 14 | 15 | const body = await fetch( 16 | `https://en.wikipedia.org/api/rest_v1/page/summary/${encodeURIComponent(args.join(" "))}`, 17 | ).then(res => res.json().catch(() => {})); 18 | 19 | if (!body) return message.channel.sendmessage.channel.send({embed: { 20 | color: config.embedcolor, 21 | title: "❌ Error Page Not Found." 22 | }}) 23 | if (body.title && body.title === "Not found.") return message.channel.send({embed: { 24 | color: config.embedcolor, 25 | title: "❌ Error Page Not Found." 26 | }}); 27 | 28 | const embed = new Discord.MessageEmbed() 29 | .setTitle(`🌐 ${body.title} `) 30 | .addField("More Info: ",`**[Click Here!](${body.content_urls.desktop.page})**`, true) 31 | .setDescription(`** ${body.extract}**`) 32 | .setColor(config.embedcolor) 33 | .setTimestamp() 34 | 35 | if (body.thumbnail) embed.setThumbnail(body.thumbnail.source); 36 | message.channel.send(embed); 37 | 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /commands/fun/wink.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const superagent = require('superagent'); 4 | 5 | 6 | module.exports = { 7 | config: { 8 | name: 'wink', 9 | description: 'winks others ;)', 10 | aliases: ["wink"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | let { body } = await superagent.get(`https://some-random-api.ml/animu/wink`); 16 | const embed = new Discord.MessageEmbed() 17 | .setColor("YELLOW") 18 | .setImage(body.link) 19 | .setTimestamp(); 20 | message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/fun/youtubesearch.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "ytsearch", 6 | description: "Search For results on Youtube"}, 7 | 8 | run: async(client, message, args) => { 9 | const text = args.join(' '); 10 | const search = args.join('+'); 11 | if (!text) { 12 | return message.channel.send("Enter some text to search for") 13 | } 14 | const embed = new Discord.MessageEmbed() 15 | .setTitle("YT Search") 16 | .addField(`You Searched for`, `${text}`) 17 | .addField(`Results`, `[Here's What I found](https://youtube.com/results?search_query=${search})`) 18 | .setColor("RANDOM"); 19 | message.channel.send(embed); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/fun/zalgo.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js') 3 | const config = require('../../config'); 4 | const Zalgo = require('to-zalgo') 5 | 6 | module.exports = { 7 | config: { 8 | name: 'zalgo', 9 | description: 'Converts your text to Zalgo', 10 | aliases: ["zalgo"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const embed = new MessageEmbed() 17 | .setColor(config.embedcolor) 18 | .setDescription(`${Zalgo(args.join(" "))}`) 19 | .setTimestamp() 20 | message.channel.send(embed) 21 | } 22 | } -------------------------------------------------------------------------------- /commands/games/zalgo.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js') 3 | const config = require('../../config'); 4 | const Zalgo = require('to-zalgo') 5 | 6 | module.exports = { 7 | config: { 8 | name: 'zalgo', 9 | description: 'Converts your text to Zalgo', 10 | aliases: ["zalgo"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const embed = new MessageEmbed() 17 | .setColor(config.embedcolor) 18 | .setDescription(`${Zalgo(args.join(" "))}`) 19 | .setTimestamp() 20 | message.channel.send(embed) 21 | } 22 | } -------------------------------------------------------------------------------- /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/catsay.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "catsay", 6 | description: "Make the cat say your message"}, 7 | run: async(client, message, args) => { 8 | 9 | const state = "enabled"; 10 | if (state === "disabled") { 11 | return message.channel.send("Command has been disabled for now"); 12 | } 13 | const msg = args.join(" "); 14 | if (!msg) { 15 | return message.channel.send("What you want the cat to say?"); 16 | } 17 | message.channel.send({files: [{attachment: `https://cataas.com/cat/cute/says/${msg}`, name: "catsay.png"}]}); 18 | } 19 | } -------------------------------------------------------------------------------- /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/fire.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { AME_API } = require('../../config') 3 | const ameClient = require('amethyste-api') 4 | const AmeAPI = new ameClient(AME_API) 5 | 6 | module.exports = { 7 | config: { 8 | name: "fire", 9 | aliases: ['setfire', 'sf'], 10 | category: 'image', 11 | description: "Sets User On Fire!", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | 17 | 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; 18 | let m = await message.channel.send("**Please Wait...**"); 19 | let buffer = await AmeAPI.generate("fire", { url: user.user.displayAvatarURL({ format: "png", size: 512 }) }); 20 | let attachment = new Discord.MessageAttachment(buffer, "fire.png"); 21 | m.delete({ timeout: 5000 }); 22 | message.channel.send(attachment); 23 | } 24 | }; -------------------------------------------------------------------------------- /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/jail.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { AME_API } = require('../../config'); 3 | const AmeClient = require('amethyste-api'); 4 | const AmeAPI = new AmeClient(AME_API); 5 | 6 | module.exports = { 7 | config: { 8 | name: "jail", 9 | category: "image", 10 | noalias: [''], 11 | description: "Sends User To Jail", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | 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; 17 | let m = await message.channel.send("**Please Wait...**"); 18 | let buffer = await AmeAPI.generate("jail", { url: user.user.displayAvatarURL({ format: "png", size: 1024 }) }); 19 | let attachment = new Discord.MessageAttachment(buffer, "jail.png"); 20 | m.delete({ timeout: 5000 }); 21 | message.channel.send(attachment); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /commands/image/mission.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { AME_API } = require('../../config'); 3 | const AmeClient = require('amethyste-api'); 4 | const AmeAPI = new AmeClient(AME_API); 5 | 6 | module.exports = { 7 | config: { 8 | name: "mission", 9 | noalias: [''], 10 | category: "image", 11 | description: "Shows Mission Passed Respect+ Image", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | 17 | 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; 18 | let m = await message.channel.send("**Please Wait...**"); 19 | let buffer = await AmeAPI.generate("missionpassed", { url: user.user.displayAvatarURL({ format: "png", size: 2048 }) }); 20 | let attachment = new Discord.MessageAttachment(buffer, "mission.png"); 21 | m.delete({ timeout: 5000 }); 22 | message.channel.send(attachment); 23 | } 24 | }; -------------------------------------------------------------------------------- /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/rip.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { AME_API } = require('../../config') 3 | const ameClient = require('amethyste-api') 4 | const AmeAPI = new ameClient(AME_API) 5 | 6 | module.exports = { 7 | config: { 8 | name: "rip", 9 | noalias: [''], 10 | category: 'image', 11 | description: "Shows Grave Of An User!", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | 17 | 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; 18 | let m = await message.channel.send("**Please Wait...**"); 19 | let buffer = await AmeAPI.generate("rip", { url: user.user.displayAvatarURL({ format: "png", size: 512 }) }); 20 | let attachment = new Discord.MessageAttachment(buffer, "rip.png"); 21 | m.delete({ timeout: 5000 }); 22 | message.channel.send(attachment); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /commands/image/scary.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { AME_API } = require('../../config'); 3 | const ApeClient = require('amethyste-api'); 4 | const AmeAPI = new ApeClient(AME_API); 5 | 6 | module.exports = { 7 | config: { 8 | name: "scary", 9 | aliases: ["scare"], 10 | category: "image", 11 | description: "Shows An Image To Scare People", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | 17 | 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; 18 | let m = await message.channel.send("**Please Wait...**"); 19 | let buffer = await AmeAPI.generate("scary", { url: user.user.displayAvatarURL({ format: "png", size: 512 }) }); 20 | let attachment = new Discord.MessageAttachment(buffer, "scary.png"); 21 | m.delete({ timeout: 5000 }); 22 | message.channel.send(attachment); 23 | } 24 | }; -------------------------------------------------------------------------------- /commands/image/tobecontinued.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { AME_API } = require('../../config'); 3 | const AmeClient = require('amethyste-api'); 4 | const AmeAPI = new AmeClient(AME_API) 5 | 6 | module.exports = { 7 | config: { 8 | name: "tobecontinued", 9 | aliases: ['tbc'], 10 | category: "image", 11 | description: "Shows A ToBeContinued Image", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | 17 | 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; 18 | let m = await message.channel.send("**Please Wait...**"); 19 | let buffer = await AmeAPI.generate("tobecontinued", { url: user.user.displayAvatarURL({ format: "png", size: 512 }) }); 20 | let attachment = new Discord.MessageAttachment(buffer, "tobecontinued.png"); 21 | m.delete({ timeout: 5000 }); 22 | message.channel.send(attachment); 23 | } 24 | }; -------------------------------------------------------------------------------- /commands/image/triggered.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { AME_API } = require('../../config') 3 | const ameClient = require('amethyste-api') 4 | const AmeAPI = new ameClient(AME_API) 5 | 6 | module.exports = { 7 | config: { 8 | name: "triggered", 9 | aliases: ['trigger'], 10 | category: "image", 11 | description: "Shows A Triggered User Embed", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | 16 | run: async (bot, message, args) => { 17 | 18 | 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; 19 | let m = await message.channel.send("**Please wait...**"); 20 | let buffer = await AmeAPI.generate("triggered", { url: user.user.displayAvatarURL({ format: "png", size: 512 }), sepia: "true", invert: "true" }); 21 | let attachment = new Discord.MessageAttachment(buffer, "triggered.gif"); 22 | m.delete({ timeout: 5000 }); 23 | message.channel.send(attachment); 24 | } 25 | }; -------------------------------------------------------------------------------- /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/image/wasted.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { AME_API } = require('../../config'); 3 | const AmeClient = require('amethyste-api'); 4 | const AmeAPI = new AmeClient(AME_API); 5 | 6 | module.exports = { 7 | config: { 8 | name: "wasted", 9 | noalias: [''], 10 | category: "image", 11 | description: "Shows Wastage of A User", 12 | usage: "[username | nickname | mention | ID] (optional)", 13 | accessableby: "everyone" 14 | }, 15 | run: async (bot, message, args) => { 16 | 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; 17 | let m = await message.channel.send("**Please Wait...**"); 18 | let buffer = await AmeAPI.generate("wasted", { url: user.user.displayAvatarURL({ format: "png", size: 512 }) }); 19 | let attachment = new Discord.MessageAttachment(buffer, "wasted.png"); 20 | m.delete({ timeout: 5000 }); 21 | message.channel.send(attachment); 22 | } 23 | }; -------------------------------------------------------------------------------- /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/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/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/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/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/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /commands/mod/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("**Channel Name**", channel.name) 20 | .addField("**NSFW**", channel.nsfw) 21 | .addField("**Channel ID**", channel.id) 22 | .addField("**Channel Type**", channel.type) 23 | .addField("**Channel Description**", `${channel.topic || "No Description"}`) 24 | .addField("**Channel Created At**", channel.createdAt) 25 | .setColor("#dcf104") 26 | message.channel.send(channelembed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/mod/createchat.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "createchat", 6 | description: "Create Voice Channels in your Server"}, 7 | run: async(client, message , args) => { 8 | if (!message.member.hasPermission("MANAGE_CHANNELS")) { 9 | return message.channel.send("You don't have enough Permissions") 10 | } 11 | if (!args[0]) { 12 | return message.channel.send("Please mention the name for the Channel") 13 | } 14 | message.guild.channels.create(args.slice(0).join(" "), {type: "chat"}); 15 | 16 | const embed = new Discord.MessageEmbed() 17 | .setTitle("Channel Updates") 18 | .setDescription(`Channel has been created`) 19 | .setColor("RANDOM"); 20 | message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/mod/createvc.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "createvc", 6 | description: "Create Voice Channels in your Server"}, 7 | run: async(client, message , args) => { 8 | if (!message.member.hasPermission("MANAGE_CHANNELS")) { 9 | return message.channel.send("You don't have enough Permissions") 10 | } 11 | if (!args[0]) { 12 | return message.channel.send("Please mention the name for the Channel") 13 | } 14 | message.guild.channels.create(args.slice(0).join(" "), {type: "voice"}); 15 | 16 | const embed = new Discord.MessageEmbed() 17 | .setTitle("Channel Updates") 18 | .setDescription(`Channel has been created`) 19 | .setColor("RANDOM"); 20 | message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/mod/delchannel.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "delchannel", 6 | description: "Delete Channels From your Server"}, 7 | run: async(client, message, args) => { 8 | if (!message.member.hasPermission("MANAGE_CHANNELS")) { 9 | return message.channel.send("You don't have enough Permissions") 10 | } 11 | const fetchedChannel = message.mentions.channels.first(); 12 | if (!fetchedChannel) { 13 | return message.channel.send("`Usage: delchannel `") 14 | } 15 | fetchedChannel.delete() 16 | 17 | const embed = new Discord.MessageEmbed() 18 | .setTitle("Channel Updates") 19 | .setDescription ("Channel has been deleted") 20 | 21 | .setColor("RANDOM"); 22 | 23 | await message.channel.send(embed); 24 | } 25 | } -------------------------------------------------------------------------------- /commands/mod/delrole.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "deleterole", 6 | description: "Deletes a role"}, 7 | run: async(client, message, args) => { 8 | const role = message.mentions.roles.first(); 9 | if (!message.member.hasPermission("MANAGE_ROLES")) { 10 | return message.channel.send("You don't have enough Permissions") 11 | } 12 | if (!role) { 13 | return message.channel.send("`Usage: delrole `") 14 | } 15 | role.delete(); 16 | const embed = new Discord.MessageEmbed() 17 | .setTitle("Roles Update") 18 | .setDescription (`${role} role has been deleted`) 19 | .setColor("RANDOM"); 20 | await message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/mod/disablemodlogchannel.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "disablemodlogchannel", 6 | aliases: ['dmc', 'disablem', 'disablemodlog'], 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/mod/disablemuterole.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "disablemuterole", 6 | aliases: ['clearmuterole', 'dmr', 'disablemr', 'dmrole'], 7 | description: 'Disables Server Mute Role', 8 | usage: '[role name | role mention | role ID]', 9 | }, 10 | run: async (bot, message, args) => { 11 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 12 | 13 | try { 14 | let a = db.fetch(`muterole_${message.guild.id}`) 15 | 16 | if (!a) { 17 | return message.channel.send("**There Is No Muterole Set To Disable!**") 18 | } else { 19 | let role = message.guild.roles.cache.get(a) 20 | db.delete(`muterole_${message.guild.id}`) 21 | 22 | message.channel.send(`**\`${role.name}\` Has Been Successfully Disabled**`) 23 | } 24 | return; 25 | } catch { 26 | return message.channel.send("**Error - `Missing Permissions or Role Doesn't Exist`**") 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /commands/mod/lock.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { Console } = require('console'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "lock", 7 | description: "lock channel", 8 | aliases: [] 9 | }, 10 | run: async (bot, message, args) => { 11 | let lockPermErr = new Discord.MessageEmbed() 12 | .setTitle("**User Permission Error!**") 13 | .setDescription("**Sorry, you don't have permissions to use this! ❌**") 14 | 15 | if(!message.channel.permissionsFor(message.member).has("ADMINISTRATOR") ) return message.channel.send(lockPermErr); 16 | 17 | let channel = message.channel; 18 | 19 | try { 20 | message.guild.roles.cache.forEach(role => { 21 | channel.createOverwrite(role, { 22 | SEND_MESSAGES: false, 23 | ADD_REACTIONS: false 24 | }); 25 | }); 26 | } catch (e) { 27 | console.log(e); 28 | } 29 | 30 | message.channel.send(`Done | Channel Locked!`); 31 | } 32 | } -------------------------------------------------------------------------------- /commands/mod/purge.js: -------------------------------------------------------------------------------- 1 | const { ownerID } = require('../../owner.json') 2 | 3 | module.exports = { 4 | config: { 5 | name: "purge", 6 | aliases: [], 7 | category: "moderation", 8 | description: "Deletes messages from a channel", 9 | usage: "m/purge [amount of messages]" 10 | }, 11 | run: async (bot, message, args) => { 12 | if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("You Don't Have Sufficient Permissions!- [MANAGE_MESSAGES]") 13 | if (isNaN(args[0])) 14 | return message.channel.send('**Please Supply A Valid Amount To Delete Messages!**'); 15 | 16 | if (args[0] > 100) 17 | return message.channel.send("**Please Supply A Number Less Than 100!**"); 18 | 19 | if (args[0] < 1) 20 | return message.channel.send("**Please Supply A Number More Than 1!**"); 21 | 22 | message.channel.bulkDelete(args[0]) 23 | .then(messages => message.channel.send(`**Succesfully deleted \`${messages.size}/${args[0]}\` messages**`).then(msg => msg.delete({ timeout: 5000 }))).catch(() => null) 24 | } 25 | } -------------------------------------------------------------------------------- /commands/mod/reloadmod.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const { readdirSync } = require("fs"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "reloadmod", 7 | description: "Reload command- Dev Only", 8 | aliases: ['rmod'] 9 | }, 10 | 11 | run: async (bot, message, args) => { 12 | 13 | let embed = new Discord.MessageEmbed() 14 | .setTitle("Reload") 15 | .setDescription("Sorry, the `reload` command can only be executed by the Developer.") 16 | .setColor("#cdf785"); 17 | if(message.author.id !== '757992794189987961') return message.channel.send(embed); 18 | 19 | if(!args[0].toLowerCase()) return message.channel.send("Please provide a command name!") 20 | 21 | let commandName = args[0].toLowerCase() 22 | 23 | try { 24 | 25 | delete require.cache[require.resolve(`./${commandName}.js`)] 26 | const pull = require(`./${commandName}.js`) 27 | bot.commands.set(pull.config.name, pull) 28 | message.channel.send(`Successfully reloaded: \`${commandName}\``) 29 | } 30 | 31 | catch (e) { 32 | console.log(e) 33 | return message.channel.send(`Could not Reload Command: ${commandName} From Moderation Module Because: \n${e}`) 34 | } 35 | 36 | 37 | } 38 | } -------------------------------------------------------------------------------- /commands/mod/rolememberinfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "rolememberinfo", 6 | description: "Shows List Of Members Having A Role", 7 | usage: "m/rolememberinfo ", 8 | aliases: ['rmi', 'rmemberinfo'] 9 | }, 10 | run: async (client, message, args) => { 11 | if (args.includes("@everyone")) return; 12 | 13 | if (args.includes("@here")) return; 14 | 15 | if (!args[0]) return message.channel.send("**Please Enter A Role!**") 16 | 17 | 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()); 18 | 19 | if (!role) return message.channel.send("**Please Enter A Valid Role!**"); 20 | 21 | let membersWithRole = message.guild.members.cache.filter(member => { 22 | return member.roles.cache.find(r => r.name === role.name); 23 | }).map(member => { 24 | return member.user.username; 25 | }) 26 | if (membersWithRole > 2048) return message.channel.send('**List Is Too Long!**') 27 | 28 | let roleEmbed = new MessageEmbed() 29 | .setColor("#2F3136") 30 | .setThumbnail(message.guild.iconURL()) 31 | .setTitle(`Users With The ${role.name} Role!`) 32 | .setDescription(membersWithRole.join("\n")); 33 | message.channel.send(roleEmbed); 34 | } 35 | } -------------------------------------------------------------------------------- /commands/mod/slowmode.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "slowmode", 4 | description: "Set the slowmode for the channel!", 5 | aliases: ['sm'] 6 | }, 7 | run: async (bot, message, args) => { 8 | 9 | if (!args[0]) 10 | return message.channel.send( 11 | `You did not specify the time in seconds you wish to set this channel's slow mode too!` 12 | ); 13 | 14 | if (isNaN(args[0])) return message.channel.send(`That is not a number!`); 15 | 16 | message.channel.setRateLimitPerUser(args[0]); 17 | message.channel.send( 18 | `Set the slowmode of this channel too **${args[0]}**` 19 | ); 20 | }, 21 | }; -------------------------------------------------------------------------------- /commands/mod/undeafen.js: -------------------------------------------------------------------------------- 1 | const { ownerID } = require("../../owner.json") 2 | 3 | module.exports = { 4 | config: { 5 | 6 | name: "undeafen", 7 | description: "Undeafen a member in a voice channel", 8 | usage: "Undeafen ", 9 | aliases: ["undeaf"] 10 | 11 | }, 12 | 13 | run: async(bot, message, args) => { 14 | if (!message.member.hasPermission("DEAFEN_MEMBERS") && !ownerID .includes(message.author.id)) return message.channel.send("**You Dont Have The Permissions To Ban Users! - [DEAFEN_MEMBERS]**"); 15 | 16 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase()); 17 | 18 | if(!member) return message.channel.send("Unable to find the mentioned user in this guild.") 19 | 20 | let reason = args.slice(1).join(" "); 21 | if (!reason) reason = "No Reason Provided" 22 | 23 | 24 | try { 25 | member.voice.setDeaf(false, reason); 26 | message.channel.send("Success ✅ : Member Undeafened") 27 | } 28 | 29 | catch (error) { 30 | console.log(error) 31 | message.channel.send("Oops! An unknow error occured. Please try again later.") 32 | } 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/mod/unlock.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { Console } = require('console'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "unlock", 7 | description: "unlock channel", 8 | aliases: [] 9 | }, 10 | run: async (bot, message, args) => { 11 | let lockPermErr = new Discord.MessageEmbed() 12 | .setTitle("**User Permission Error!**") 13 | .setDescription("**Sorry, you don't have permissions to use this! ❌**") 14 | 15 | if(!message.channel.permissionsFor(message.member).has("ADMINISTRATOR") ) return message.channel.send(lockPermErr); 16 | 17 | let channel = message.channel; 18 | 19 | try { 20 | message.guild.roles.cache.forEach(role => { 21 | channel.createOverwrite(role, { 22 | SEND_MESSAGES: true, 23 | ADD_REACTIONS: true 24 | }); 25 | }); 26 | } catch (e) { 27 | console.log(e); 28 | } 29 | 30 | message.channel.send(`Done | Channel Unlocked!`); 31 | } 32 | } -------------------------------------------------------------------------------- /commands/mod/voicekick.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "voicekick", 4 | aliases: ["vckick"], 5 | description: "kick a member from the vc ", 6 | usage: "z!vckick [mention]" 7 | }, 8 | run: async (client, message, args) => { 9 | if (!message.guild.me.hasPermission(["ADMINISTRATOR"])) 10 | return message.channel.send( 11 | "I Don't Have Proper Permissions To Use This Command!" 12 | ); 13 | 14 | if (!message.mentions.members.first()) 15 | return message.channel.send( 16 | `Please Mention User That You Want To Kick From Voice Channel!` 17 | ); 18 | 19 | let { channel } = message.mentions.members.first().voice; 20 | 21 | if (!channel) 22 | return message.channel.send(`User Is Not In Any Voice Channel!`); 23 | 24 | message.mentions.members.first().voice.kick(); 25 | 26 | message.channel.send(`User Has Been Kicked From Voice Channel!`) 27 | } 28 | }; -------------------------------------------------------------------------------- /commands/moderation/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("**Channel Name**", channel.name) 20 | .addField("**NSFW**", channel.nsfw) 21 | .addField("**Channel ID**", channel.id) 22 | .addField("**Channel Type**", channel.type) 23 | .addField("**Channel Description**", `${channel.topic || "No Description"}`) 24 | .addField("**Channel Created At**", channel.createdAt) 25 | .setColor("#dcf104") 26 | message.channel.send(channelembed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/moderation/createchat.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "createchat", 6 | description: "Create Voice Channels in your Server"}, 7 | run: async(client, message , args) => { 8 | if (!message.member.hasPermission("MANAGE_CHANNELS")) { 9 | return message.channel.send("You don't have enough Permissions") 10 | } 11 | if (!args[0]) { 12 | return message.channel.send("Please mention the name for the Channel") 13 | } 14 | message.guild.channels.create(args.slice(0).join(" "), {type: "chat"}); 15 | 16 | const embed = new Discord.MessageEmbed() 17 | .setTitle("Channel Updates") 18 | .setDescription(`Channel has been created`) 19 | .setColor("RANDOM"); 20 | message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/moderation/createvc.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "createvc", 6 | description: "Create Voice Channels in your Server"}, 7 | run: async(client, message , args) => { 8 | if (!message.member.hasPermission("MANAGE_CHANNELS")) { 9 | return message.channel.send("You don't have enough Permissions") 10 | } 11 | if (!args[0]) { 12 | return message.channel.send("Please mention the name for the Channel") 13 | } 14 | message.guild.channels.create(args.slice(0).join(" "), {type: "voice"}); 15 | 16 | const embed = new Discord.MessageEmbed() 17 | .setTitle("Channel Updates") 18 | .setDescription(`Channel has been created`) 19 | .setColor("RANDOM"); 20 | message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/moderation/delchannel.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "delchannel", 6 | description: "Delete Channels From your Server"}, 7 | run: async(client, message, args) => { 8 | if (!message.member.hasPermission("MANAGE_CHANNELS")) { 9 | return message.channel.send("You don't have enough Permissions") 10 | } 11 | const fetchedChannel = message.mentions.channels.first(); 12 | if (!fetchedChannel) { 13 | return message.channel.send("`Usage: delchannel `") 14 | } 15 | fetchedChannel.delete() 16 | 17 | const embed = new Discord.MessageEmbed() 18 | .setTitle("Channel Updates") 19 | .setDescription ("Channel has been deleted") 20 | 21 | .setColor("RANDOM"); 22 | 23 | await message.channel.send(embed); 24 | } 25 | } -------------------------------------------------------------------------------- /commands/moderation/delrole.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "deleterole", 6 | description: "Deletes a role"}, 7 | run: async(client, message, args) => { 8 | const role = message.mentions.roles.first(); 9 | if (!message.member.hasPermission("MANAGE_ROLES")) { 10 | return message.channel.send("You don't have enough Permissions") 11 | } 12 | if (!role) { 13 | return message.channel.send("`Usage: delrole `") 14 | } 15 | role.delete(); 16 | const embed = new Discord.MessageEmbed() 17 | .setTitle("Roles Update") 18 | .setDescription (`${role} role has been deleted`) 19 | .setColor("RANDOM"); 20 | await message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/moderation/disablemodlogchannel.js: -------------------------------------------------------------------------------- 1 | const db = require('quick.db'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "disablemodlogchannel", 6 | aliases: ['dmc', 'disablem', 'disablemodlog'], 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 | description: 'Disables Server Mute Role', 8 | usage: '[role name | role mention | role ID]', 9 | }, 10 | run: async (bot, message, args) => { 11 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**You Do Not Have The Required Permissions! - [ADMINISTRATOR]**") 12 | 13 | try { 14 | let a = db.fetch(`muterole_${message.guild.id}`) 15 | 16 | if (!a) { 17 | return message.channel.send("**There Is No Muterole Set To Disable!**") 18 | } else { 19 | let role = message.guild.roles.cache.get(a) 20 | db.delete(`muterole_${message.guild.id}`) 21 | 22 | message.channel.send(`**\`${role.name}\` Has Been Successfully Disabled**`) 23 | } 24 | return; 25 | } catch { 26 | return message.channel.send("**Error - `Missing Permissions or Role Doesn't Exist`**") 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /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 Discord = require('discord.js'); 2 | const { Console } = require('console'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "lock", 7 | description: "lock channel", 8 | aliases: [] 9 | }, 10 | run: async (bot, message, args) => { 11 | let lockPermErr = new Discord.MessageEmbed() 12 | .setTitle("**User Permission Error!**") 13 | .setDescription("**Sorry, you don't have permissions to use this! ❌**") 14 | 15 | if(!message.channel.permissionsFor(message.member).has("ADMINISTRATOR") ) return message.channel.send(lockPermErr); 16 | 17 | let channel = message.channel; 18 | 19 | try { 20 | message.guild.roles.cache.forEach(role => { 21 | channel.createOverwrite(role, { 22 | SEND_MESSAGES: false, 23 | ADD_REACTIONS: false 24 | }); 25 | }); 26 | } catch (e) { 27 | console.log(e); 28 | } 29 | 30 | message.channel.send(`Done | Channel Locked!`); 31 | } 32 | } -------------------------------------------------------------------------------- /commands/moderation/purge.js: -------------------------------------------------------------------------------- 1 | const { ownerID } = require('../../owner.json') 2 | 3 | module.exports = { 4 | config: { 5 | name: "purge", 6 | aliases: [], 7 | category: "moderation", 8 | description: "Deletes messages from a channel", 9 | usage: "m/purge [amount of messages]" 10 | }, 11 | run: async (bot, message, args) => { 12 | if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("You Don't Have Sufficient Permissions!- [MANAGE_MESSAGES]") 13 | if (isNaN(args[0])) 14 | return message.channel.send('**Please Supply A Valid Amount To Delete Messages!**'); 15 | 16 | if (args[0] > 100) 17 | return message.channel.send("**Please Supply A Number Less Than 100!**"); 18 | 19 | if (args[0] < 1) 20 | return message.channel.send("**Please Supply A Number More Than 1!**"); 21 | 22 | message.channel.bulkDelete(args[0]) 23 | .then(messages => message.channel.send(`**Succesfully deleted \`${messages.size}/${args[0]}\` messages**`).then(msg => msg.delete({ timeout: 5000 }))).catch(() => null) 24 | } 25 | } -------------------------------------------------------------------------------- /commands/moderation/reloadmod.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const { readdirSync } = require("fs"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "reloadmod", 7 | description: "Reload command- Dev Only", 8 | aliases: ['rmod'] 9 | }, 10 | 11 | run: async (bot, message, args) => { 12 | 13 | let embed = new Discord.MessageEmbed() 14 | .setTitle("Reload") 15 | .setDescription("Sorry, the `reload` command can only be executed by the Developer.") 16 | .setColor("#cdf785"); 17 | if(message.author.id !== '757992794189987961') return message.channel.send(embed); 18 | 19 | if(!args[0].toLowerCase()) return message.channel.send("Please provide a command name!") 20 | 21 | let commandName = args[0].toLowerCase() 22 | 23 | try { 24 | 25 | delete require.cache[require.resolve(`./${commandName}.js`)] 26 | const pull = require(`./${commandName}.js`) 27 | bot.commands.set(pull.config.name, pull) 28 | message.channel.send(`Successfully reloaded: \`${commandName}\``) 29 | } 30 | 31 | catch (e) { 32 | console.log(e) 33 | return message.channel.send(`Could not Reload Command: ${commandName} From Moderation Module Because: \n${e}`) 34 | } 35 | 36 | 37 | } 38 | } -------------------------------------------------------------------------------- /commands/moderation/rolememberinfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = { 4 | config: { 5 | name: "rolememberinfo", 6 | description: "Shows List Of Members Having A Role", 7 | usage: "m/rolememberinfo ", 8 | aliases: ['rmi', 'rmemberinfo'] 9 | }, 10 | run: async (client, message, args) => { 11 | if (args.includes("@everyone")) return; 12 | 13 | if (args.includes("@here")) return; 14 | 15 | if (!args[0]) return message.channel.send("**Please Enter A Role!**") 16 | 17 | 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()); 18 | 19 | if (!role) return message.channel.send("**Please Enter A Valid Role!**"); 20 | 21 | let membersWithRole = message.guild.members.cache.filter(member => { 22 | return member.roles.cache.find(r => r.name === role.name); 23 | }).map(member => { 24 | return member.user.username; 25 | }) 26 | if (membersWithRole > 2048) return message.channel.send('**List Is Too Long!**') 27 | 28 | let roleEmbed = new MessageEmbed() 29 | .setColor("#2F3136") 30 | .setThumbnail(message.guild.iconURL()) 31 | .setTitle(`Users With The ${role.name} Role!`) 32 | .setDescription(membersWithRole.join("\n")); 33 | message.channel.send(roleEmbed); 34 | } 35 | } -------------------------------------------------------------------------------- /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) 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/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/slowmode.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "slowmode", 4 | description: "Set the slowmode for the channel!", 5 | aliases: ['sm'] 6 | }, 7 | run: async (bot, message, args) => { 8 | 9 | if (!args[0]) 10 | return message.channel.send( 11 | `You did not specify the time in seconds you wish to set this channel's slow mode too!` 12 | ); 13 | 14 | if (isNaN(args[0])) return message.channel.send(`That is not a number!`); 15 | 16 | message.channel.setRateLimitPerUser(args[0]); 17 | message.channel.send( 18 | `Set the slowmode of this channel too **${args[0]}**` 19 | ); 20 | }, 21 | }; -------------------------------------------------------------------------------- /commands/moderation/undeafen.js: -------------------------------------------------------------------------------- 1 | const { ownerID } = require("../../owner.json") 2 | 3 | module.exports = { 4 | config: { 5 | 6 | name: "undeafen", 7 | description: "Undeafen a member in a voice channel", 8 | usage: "Undeafen ", 9 | aliases: ["undeaf"] 10 | 11 | }, 12 | 13 | run: async(bot, message, args) => { 14 | if (!message.member.hasPermission("DEAFEN_MEMBERS") && !ownerID .includes(message.author.id)) return message.channel.send("**You Dont Have The Permissions To Ban Users! - [DEAFEN_MEMBERS]**"); 15 | 16 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase()); 17 | 18 | if(!member) return message.channel.send("Unable to find the mentioned user in this guild.") 19 | 20 | let reason = args.slice(1).join(" "); 21 | if (!reason) reason = "No Reason Provided" 22 | 23 | 24 | try { 25 | member.voice.setDeaf(false, reason); 26 | message.channel.send("Success ✅ : Member Undeafened") 27 | } 28 | 29 | catch (error) { 30 | console.log(error) 31 | message.channel.send("Oops! An unknow error occured. Please try again later.") 32 | } 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/moderation/unlock.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { Console } = require('console'); 3 | 4 | module.exports = { 5 | config: { 6 | name: "unlock", 7 | description: "unlock channel", 8 | aliases: [] 9 | }, 10 | run: async (bot, message, args) => { 11 | let lockPermErr = new Discord.MessageEmbed() 12 | .setTitle("**User Permission Error!**") 13 | .setDescription("**Sorry, you don't have permissions to use this! ❌**") 14 | 15 | if(!message.channel.permissionsFor(message.member).has("ADMINISTRATOR") ) return message.channel.send(lockPermErr); 16 | 17 | let channel = message.channel; 18 | 19 | try { 20 | message.guild.roles.cache.forEach(role => { 21 | channel.createOverwrite(role, { 22 | SEND_MESSAGES: true, 23 | ADD_REACTIONS: true 24 | }); 25 | }); 26 | } catch (e) { 27 | console.log(e); 28 | } 29 | 30 | message.channel.send(`Done | Channel Unlocked!`); 31 | } 32 | } -------------------------------------------------------------------------------- /commands/moderation/voicekick.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config: { 3 | name: "voicekick", 4 | aliases: ["vckick"], 5 | description: "kick a member from the vc ", 6 | usage: "z!vckick [mention]" 7 | }, 8 | run: async (client, message, args) => {if (!message.member.permissions.any(["MOVE_MEMBERS"])) { 9 | 10 | return message.reply(":x: You don't have `Move_Members` power to use this command."); 11 | 12 | } 13 | 14 | if (!message.guild.me.hasPermission(["ADMINISTRATOR"])) 15 | return message.channel.send( 16 | "I Don't Have Proper Permissions To Use This Command!" 17 | ); 18 | 19 | if (!message.mentions.members.first()) 20 | return message.channel.send( 21 | `Please Mention User That You Want To Kick From Voice Channel!` 22 | ); 23 | 24 | let { channel } = message.mentions.members.first().voice; 25 | 26 | if (!channel) 27 | return message.channel.send(`User Is Not In Any Voice Channel!`); 28 | 29 | message.mentions.members.first().voice.kick(); 30 | 31 | message.channel.send(`User Has Been Kicked From Voice Channel!`) 32 | } 33 | }; -------------------------------------------------------------------------------- /commands/music/Loop.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'loop', // Optional 5 | aliases: [], // Optional 6 | category: 'Music', 7 | description: 'Loop the queue', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | // Enable repeat mode 15 | let status = client.player.setQueueRepeatMode(message, true); 16 | const loop = new MessageEmbed() 17 | .setColor('#85b0d2') 18 | .setDescription(`Queue will be repeated indefinitely!`) 19 | if(status === null) 20 | return; 21 | message.channel.send(loop); 22 | } 23 | } -------------------------------------------------------------------------------- /commands/music/clear.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'clear', // Optional 5 | aliases: ['clearqueue', 'clear-queue'], // Optional 6 | category: 'Music', 7 | description: 'Clears the queue', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | const embed1 = new MessageEmbed() 14 | .setColor('#85b0d2') 15 | .setDescription('Queue was cleared!') 16 | if (!voice_channel) return message.channel.send(embed); 17 | let isDone = client.player.clearQueue(message); 18 | if(isDone) 19 | message.channel.send(embed1); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/music/disable-loop.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'disable-loop', // Optional 5 | aliases: [], // Optional 6 | category: 'Music', 7 | description: 'Stop looping the queue', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | // Disable repeat mode 15 | let status = client.player.setQueueRepeatMode(message, false); 16 | 17 | const disloop = new MessageEmbed() 18 | .setColor('#85b0d2') 19 | .setDescription(`Queue will not be longer repeated indefinitely!`) 20 | if(status === null) 21 | return; 22 | message.channel.send(disloop); 23 | } 24 | } -------------------------------------------------------------------------------- /commands/music/join.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'join', // Optional 5 | aliases: [], // Optional 6 | category: 'Music', 7 | description: 'Join the voice channel!', 8 | run: async (client, message, args) => { 9 | const voiceChannel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if(!voiceChannel) return message.channel.send(embed) 14 | voiceChannel.join() 15 | message.react('🪐') 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /commands/music/leave.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'leave', // Optional 5 | aliases: [], // Optional 6 | category: 'Music', 7 | description: 'Leaves the voice channel!', 8 | 9 | run: async (client, message, args) => { 10 | const voiceChannel = message.member.voice.channel; 11 | const embed = new MessageEmbed() 12 | .setColor('#FF5757') 13 | .setDescription(`You need to be in a vc to execute this command!`) 14 | if(!voiceChannel) return message.channel.send(embed) 15 | voiceChannel.leave() 16 | message.react('🪐') 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /commands/music/np.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js') 2 | 3 | module.exports = { 4 | name: 'nowplaying', // Optional 5 | aliases: ['np'], // Optional 6 | category: 'Music', 7 | description: 'Gives info about the song that its being played and the progress of it', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | let progressBar = client.player.createProgressBar(message, { 15 | size: 20, 16 | block: '▬', 17 | arrow: '🔘' 18 | 19 | 20 | 21 | }); 22 | let song = await client.player.nowPlaying(message) 23 | const bar = new MessageEmbed() 24 | .setColor('#85b0d2') 25 | .setTitle(`${song.name}`) 26 | .setURL('https://www.youtube.com/watch?v=dQw4w9WgXcQ') 27 | .setDescription(`⋆ Requested by ${message.author} 28 | \`${progressBar}\``) 29 | 30 | if(progressBar) 31 | 32 | 33 | 34 | 35 | message.channel.send(bar); 36 | } 37 | } -------------------------------------------------------------------------------- /commands/music/playlist.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'playlist', 5 | aliases: ['plist'], // Optional 6 | category: 'Music', 7 | description: 'Play a playlist in the vc', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | // If maxSongs is -1, will be infinite. 15 | await client.player.playlist(message, { 16 | search: args.join(' '), 17 | maxSongs: -1 18 | }); 19 | } 20 | } -------------------------------------------------------------------------------- /commands/music/push.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'pause', // Optional 5 | aliases: ['paus'], // Optional 6 | category: 'Music', 7 | description: 'Pause the queue', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | let song = client.player.pause(message); 15 | const pause = new MessageEmbed() 16 | .setColor('#85b0d2') 17 | .setDescription(`**${song.name}** was paused!`) 18 | if(song) 19 | 20 | message.channel.send(pause); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/music/queue.js: -------------------------------------------------------------------------------- 1 | 2 | const { MessageEmbed } = require("discord.js"); 3 | 4 | module.exports = { 5 | name: 'queue', // Optional 6 | aliases: ['q'], // Optional 7 | category: 'Music', 8 | description: 'Gives you info about the server queue', 9 | run: async (client, message, args) => { 10 | const voice_channel = message.member.voice.channel; 11 | const embed = new MessageEmbed() 12 | .setColor('#FF5757') 13 | .setDescription(`You need to be in a vc to execute this command!`) 14 | if (!voice_channel) return message.channel.send(embed); 15 | let queue = client.player.getQueue(message); 16 | if(queue) 17 | message.channel.send('Queue:\n'+(queue.songs.map((song, i) => { 18 | return `${i === 0 ? 'Now Playing' : `#${i+1}`} - ${song.name} | ${song.author}` 19 | }).join('\n'))); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/music/resume.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'resume', // Optional 5 | aliases: ['resume'], // Optional 6 | category: 'Music', 7 | description: 'Resume the song that was paused', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | let song = client.player.resume(message); 15 | const resume = new MessageEmbed() 16 | .setColor('#85b0d2') 17 | .setDescription(`**${song.name}** was resumed!`) 18 | if(song) 19 | message.channel.send(resume); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/music/shuffle.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'shuffle', // Optional 5 | aliases: ['sh'], // Optional 6 | category: 'Music', 7 | description: 'Shuffle the queue', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | let songs = client.player.shuffle(message); 15 | const shuffle = new MessageEmbed() 16 | .setColor('#85b0d2') 17 | .setDescription('Server Queue was shuffled.') 18 | if(songs) 19 | message.channel.send(shuffle); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/music/skip.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'skip', // Optional 5 | aliases: ['sk'], // Optional 6 | category: 'Music', 7 | description: 'Skip the song that its playing.', 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if(!client.player.isPlaying(message)) { 14 | message.channel.send('Unknow Radio must be playing in order to skip the track'); 15 | 16 | return; 17 | } 18 | 19 | await client.player.skip(message); 20 | 21 | message.channel.send('Skipped'); 22 | }, 23 | }; -------------------------------------------------------------------------------- /commands/music/stop.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'stop', // Optional 5 | category: 'Music', 6 | description: 'Clears the queue and leave the vc', 7 | aliases: ['st'], // Optional 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | let isDone = client.player.stop(message); 15 | const stop = new MessageEmbed() 16 | .setColor('#85b0d2') 17 | .setDescription('Music stopped & the queue was cleared!') 18 | if(isDone) 19 | message.channel.send(stop); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/music/volume.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: 'volume', // Optional 5 | category: 'Music', 6 | description: 'Set the volume of the bot in the vc', 7 | aliases: ['setvolume'], // Optional 8 | run: async (client, message, args) => { 9 | const voice_channel = message.member.voice.channel; 10 | const embed = new MessageEmbed() 11 | .setColor('#FF5757') 12 | .setDescription(`You need to be in a vc to execute this command!`) 13 | if (!voice_channel) return message.channel.send(embed); 14 | let isDone = client.player.setVolume(message, parseInt(args[0])); 15 | const volume = new MessageEmbed() 16 | .setColor('#85b0d2') 17 | .setDescription(`Volume set to ${args[0]}%!`) 18 | if(isDone) 19 | message.channel.send(volume); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/utility/advice.js: -------------------------------------------------------------------------------- 1 | const api = require("srod-v2"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "advice", 7 | aliases: [], 8 | category: "Fun", 9 | description: "Return A Random Advice!", 10 | usage: "Advice"}, 11 | run: async (client, message, args) => { 12 | 13 | const Data = await api.GetAdvice({ Color: "YELLOW" }); 14 | return message.channel.send(Data); 15 | } 16 | }; -------------------------------------------------------------------------------- /commands/utility/affect.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'affect', 7 | description: 'this won\'t affect my baby!', 8 | aliases: ["affect"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Affect().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "thomas.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/utility/announce.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "announce", 6 | aliases: ["aa"], 7 | category: "Info", 8 | description: "Announce Your Message To Anothr Channel", 9 | usage: "announce #channel your message" 10 | }, 11 | run: async (client, message, args) => { 12 | if (!message.member.hasPermission(["ADMINISTRATOR"])) 13 | return message.channel.send("You don't have premmsions to do that!"); 14 | 15 | let inline = true; 16 | let sayChannel = 17 | message.mentions.channels.first() || 18 | message.guild.channels.cache.get(args[0]); 19 | if (!sayChannel) 20 | return message.channel.send( 21 | `<:Cross:778450163014303774> | ${message.author} mention a channel First` 22 | ); 23 | let sayMsg = args 24 | .slice(1) 25 | .join(" ") 26 | .split(" | "); 27 | 28 | if (!sayMsg[1]) sayMsg[1] == "FF7034"; 29 | if (!sayMsg) 30 | return message.channel.send( 31 | ` | Say Some Message To Announce` 32 | ); 33 | let role = message.member.highestRole; 34 | let embed = new Discord.MessageEmbed() 35 | .setColor(sayMsg[1]) 36 | .setDescription(sayMsg[0]); 37 | 38 | message.delete(); 39 | message.channel 40 | .send( 41 | `<:yesk:778449313616756736> | successfully Announced Your Message To ${sayChannel}` 42 | ) 43 | .then(m => m.delete({ timeout: 2000 })); 44 | 45 | sayChannel.send({ embed }).catch(console.error); 46 | } 47 | }; -------------------------------------------------------------------------------- /commands/utility/ascii.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const figlet = require("figlet"); 3 | 4 | module.exports = { 5 | config : { 6 | name: 'ascii'}, 7 | 8 | run : async (client, message , args) => { 9 | let p = args.join(" ") 10 | figlet(p, function(err, data) { 11 | if (err) { 12 | message.channel.send('Something went wrong...'); 13 | console.dir(err); 14 | return; 15 | } 16 | message.channel.send(`\`\`\`${data}\`\`\``) 17 | }); 18 | } 19 | } -------------------------------------------------------------------------------- /commands/utility/av2.js: -------------------------------------------------------------------------------- 1 | 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "av2", 7 | aliases: ["av2", "ava2"], 8 | category: "info", 9 | description: "Get avatar of any user" 10 | }, 11 | run: async (client, message, args) => { 12 | let user = message.mentions.users.first() || message.author 13 | 14 | let size = [16, 32, 64, 128, 256, 512, 1024, 2048, 4096] 15 | let type = ['webp', 'png', 'jpg', 'gif', 'jpeg'] 16 | 17 | let embed = new Discord.MessageEmbed() 18 | .setAuthor(message.author.tag, message.author.displayAvatarURL()) 19 | .setImage(user.displayAvatarURL({dynamic: true})) 20 | .setFooter(client.user.username, client.user.displayAvatarURL()) 21 | type.forEach(em => { 22 | embed.addField(em.toUpperCase(), size.map(s => `[${s}](${user.displayAvatarURL({size: s, format: em})})`).join(" | ")) 23 | }) 24 | 25 | 26 | 27 | return message.channel.send(embed) 28 | } 29 | }; -------------------------------------------------------------------------------- /commands/utility/avatar.js: -------------------------------------------------------------------------------- 1 | 2 | const discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "avatar", 7 | aliases: ["av", "ava"], 8 | category: "info", 9 | description: "Get avatar of any user" 10 | }, 11 | run: async (client, message, args) => { 12 | let target; 13 | 14 | if (message.mentions.users.first()) { 15 | target = message.mentions.users.first(); 16 | } else if (args[0]) { 17 | target = message.guild.members.cache.get(args[0]).user; 18 | } else { 19 | target = message.author; 20 | } 21 | 22 | let avatar = target.displayAvatarURL({ dynamic: true, size: 2048 }); 23 | 24 | let embed = new discord.MessageEmbed(); 25 | 26 | embed.setDescription(`[Download Avatar](${avatar})`); 27 | embed.setImage(avatar); 28 | embed.setColor("RANDOM"); 29 | message.channel.send(embed); 30 | } 31 | }; -------------------------------------------------------------------------------- /commands/utility/beautiful.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'beautiful', 7 | description: 'This is Beautiful!', 8 | aliases: ["beautiful"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Beautiful().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "delete.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/utility/binary.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js') 3 | const config = require('../../config'); 4 | const axios = require('axios') 5 | 6 | module.exports = { 7 | config: { 8 | name: 'binary', 9 | description: 'Shows your text in Binary Format', 10 | aliases: ["binary"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const url = `http://some-random-api.ml/binary?text=${args}`; 17 | 18 | let response, data; 19 | try { 20 | response = await axios.get(url); 21 | data = response.data; 22 | } catch (e) { 23 | return message.channel.send(`An error occured, please try again!`); 24 | } 25 | 26 | const embed = new MessageEmbed() 27 | .setTitle("Text to Binary") 28 | .setThumbnail( 29 | "https://png.pngtree.com/png-clipart/20200225/original/pngtree-binary-code-and-magnifying-glass-isometric-icon-png-image_5252004.jpg" 30 | ) 31 | 32 | .setDescription("**Binary Code** - `" + data.binary + "`") 33 | .setTimestamp() 34 | .setFooter( 35 | "© Zeus Bot", 36 | ) 37 | .setColor(config.embedcolor); 38 | 39 | await message.channel.send(embed); 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /commands/utility/blur.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | const config = require('../../config'); 4 | const DIG = require("discord-image-generation"); 5 | 6 | module.exports = { 7 | config : { 8 | name: "blur", 9 | category: "Image", 10 | description: "Converts a user's avatar in blur affect !!", 11 | example: `${config.Prefix}blur @Dinav`}, 12 | 13 | run: async (client, message, args) => { 14 | 15 | const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 16 | 17 | if(!user) 18 | return message.reply(`${emoji.Error} Provide a valid user !!`) 19 | 20 | const avatar = user.user.displayAvatarURL({ dynamic: false, format: 'png', size: 1024 }); 21 | 22 | new DIG.Blur().getImage(avatar, 43); 23 | 24 | let img = await new DIG.Blur().getImage(avatar); 25 | 26 | let attach = new Discord.MessageAttachment(img, "affect.png"); 27 | 28 | message.channel.send(attach) 29 | } 30 | } -------------------------------------------------------------------------------- /commands/utility/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/utility/catsay.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "catsay", 6 | description: "Make the cat say your message"}, 7 | run: async(client, message, args) => { 8 | 9 | const state = "enabled"; 10 | if (state === "disabled") { 11 | return message.channel.send("Command has been disabled for now"); 12 | } 13 | const msg = args.join(" "); 14 | if (!msg) { 15 | return message.channel.send("What you want the cat to say?"); 16 | } 17 | message.channel.send({files: [{attachment: `https://cataas.com/cat/cute/says/${msg}`, name: "catsay.png"}]}); 18 | } 19 | } -------------------------------------------------------------------------------- /commands/utility/clyde.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const { MessageAttachment } = require('discord.js') 4 | const fetch = require('node-fetch') 5 | 6 | module.exports = { 7 | config: { 8 | name: 'clyde', 9 | description: 'Shows your text as Clyde\'s message', 10 | aliases: ["clyde"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const text = args.slice().join(' '); 17 | if (!text) { 18 | return message.channel.send( 19 | '❎ Please provide valid text.', 20 | ); 21 | } 22 | 23 | const url = `https://nekobot.xyz/api/imagegen?type=clyde&text=${text}`; 24 | 25 | let response; 26 | try { 27 | response = await fetch(url).then(res => res.json()); 28 | } 29 | catch (e) { 30 | return message.channel.send('❎ An error occured, please try again!'); 31 | } 32 | const attachment = new MessageAttachment(response.message, 'clyde.png'); 33 | return message.channel.send(attachment); 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /commands/utility/connect.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "connect", 6 | aliases: ["join", "j"], 7 | description: "Bans the user", 8 | usage: "[name | nickname | mention | ID] (optional)", 9 | }, 10 | 11 | run: async (client, message) => { 12 | const channel = message.member.voice.channel; 13 | if (!channel) 14 | return message.channel.send( 15 | "You must Join a voice channel before using this command!" 16 | ); 17 | 18 | if (!channel.permissionsFor(message.client.user).has("CONNECT")) 19 | return error("I don't have permission to join the voice channel"); 20 | 21 | if (!channel.permissionsFor(message.client.user).has("SPEAK")) 22 | return error("I don't have permission to speak in the voice channel"); 23 | 24 | await channel.join(); 25 | 26 | return message.channel.send( 27 | new MessageEmbed() 28 | .setDescription("**Joined the voice channel :white_check_mark: **") 29 | .setColor("BLUE") 30 | ); 31 | } 32 | } -------------------------------------------------------------------------------- /commands/utility/decode.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const axios = require('axios'); 3 | 4 | module.exports = { 5 | config : { 6 | name: "decode", 7 | aliases: ["dd"], 8 | description: "It Decodes the binary language!", 9 | category: "Utility", 10 | example: `c!decode 0110100100101100011011000110111101110110011001010010110001110101`}, 11 | run: async (client, message, args) => { 12 | const url = `http://some-random-api.ml/binary?decode=${args}`; 13 | 14 | let response, data; 15 | try { 16 | response = await axios.get(url); 17 | data = response.data; 18 | } catch (e) { 19 | return message.channel.send(`An error occured, please try again!`) 20 | } 21 | 22 | const embed = new MessageEmbed() 23 | .setTitle('Decode Binary') 24 | .setDescription(data.text) 25 | .setColor('YELLOW') 26 | 27 | await message.channel.send(embed) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/utility/delete.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'delete', 7 | description: 'delete this trash!', 8 | aliases: ["delete"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Delete().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "delete.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/utility/docs.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const fetch = require('node-fetch'); 3 | const config = require('../../config'); 4 | 5 | module.exports= { 6 | config : { 7 | aliases: [""], 8 | name: 'docs', 9 | description: 'Search the discord.js docs', 10 | usage: config.prefix + 'docs message'}, 11 | 12 | run : async (client, message, args) => { 13 | const searchQuery = args.slice().join(' '); 14 | const url = `https://djsdocs.sorta.moe/v2/embed?src=stable&q=${encodeURIComponent(searchQuery)}`; 15 | fetch(url) 16 | .then((res) => res.json()) 17 | .then((embed) => { 18 | if (embed && !embed.error) { 19 | message.channel.send({ 20 | embed, 21 | }); 22 | } 23 | else { 24 | const embed2 = new Discord.MessageEmbed() 25 | .setColor('RANDOM') 26 | .setDescription(`There isnt anything related to \`${searchQuery}\``); 27 | return message.channel.send(embed2); 28 | } 29 | }) 30 | // eslint-disable-next-line no-unused-vars 31 | .catch((err) => { 32 | const embed3 = new Discord.MessageEmbed() 33 | .setColor('RANDOM') 34 | .setDescription('**There was an error doing that!`**'); 35 | return message.channel.send(embed3); 36 | }); 37 | } 38 | } 39 | 40 | 41 | -------------------------------------------------------------------------------- /commands/utility/emojify.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | 4 | 5 | module.exports = { 6 | config: { 7 | name: 'emojify', 8 | description: 'Emojifies your text message', 9 | aliases: ["emojify"], 10 | usage: '', 11 | accessableby: "", 12 | }, 13 | run: async (client, message, args) => { 14 | 15 | if(!args[0]) { 16 | return message.channel.send( 17 | '❎ Please provide valid text.', 18 | ); 19 | } 20 | 21 | const specialChars = { 22 | '0': ':zero:', 23 | '1': ':one:', 24 | '2': ':two:', 25 | '3': ':three:', 26 | '4': ':four:', 27 | '5': ':five:', 28 | '6': ':six:', 29 | '7': ':seven:', 30 | '8': ':eight:', 31 | '9': ':nine:', 32 | '#': ':hash:', 33 | '*': ':asterisk:', 34 | '?': ':grey_question:', 35 | '!': ':grey_exclamation:', 36 | ' ': ' ', 37 | }; 38 | 39 | const emojified = `${args.join(' ')}`.toLowerCase().split('').map(letter => { 40 | if (/[a-z]/g.test(letter)) { 41 | return `:regional_indicator_${letter}: `; 42 | } 43 | else if (specialChars[letter]) { 44 | return `${specialChars[letter]} `; 45 | } 46 | return letter; 47 | }).join(''); 48 | 49 | if(emojified.length > 2000) { 50 | return message.channel.send(`${client.emotes.error} The emojified message exceeds 2000 characters.`); 51 | } 52 | 53 | message.channel.send(emojified); 54 | 55 | } 56 | } 57 | 58 | -------------------------------------------------------------------------------- /commands/utility/emojiid.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: 'emojiid', 6 | description: 'Emojifies your text message', 7 | aliases: ["emojiid","ei"], 8 | usage: '', 9 | accessableby: "", 10 | }, 11 | run: async (client, message, args) => { 12 | const name = args.join(" "); 13 | const emoji = message.guild.emojis.cache.find(r => r.name === name); 14 | if (!name) { 15 | return message.channel.send("Please type the emoji name") 16 | } 17 | if (!emoji) { 18 | return message.channel.send("Couldn't find the Emojis with the provided name. Please make sure the Emoji name is correct"); 19 | } 20 | message.channel.send(`\`\`\`${emoji}\`\`\``) 21 | } 22 | } -------------------------------------------------------------------------------- /commands/utility/enlarge.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { parse } = require("twemoji-parser"); 3 | const { MessageEmbed } = require("discord.js"); 4 | const Color = `#ffffff`; 5 | 6 | module.exports = { 7 | config : { 8 | name: "jumbo", 9 | category: "fun", 10 | description: "Converting Server emoji to PNG/GIF!"}, 11 | run: async(client, message, args) => { 12 | 13 | 14 | const authoravatar = message.author.avatarURL(); 15 | const emoji = args[0]; 16 | if (!emoji) return message.channel.send(`Please Give Me A Emoji!`); 17 | 18 | let customemoji = Discord.Util.parseEmoji(emoji); 19 | 20 | if (customemoji.id) { 21 | const Link = `https://cdn.discordapp.com/emojis/${customemoji.id}.${customemoji.animated ? "gif" : "png" 22 | }`; 23 | 24 | const Added = new MessageEmbed() 25 | .setAuthor(`Enlarged Emoji`, authoravatar) 26 | .setColor(`${Color}`) 27 | .setDescription(`\`${customemoji.name}\` \`${customemoji.id}\``) 28 | .setImage(Link 29 | ); 30 | return message.channel.send(Added); 31 | } else { 32 | let CheckEmoji = parse(emoji, { assetType: "png" }); 33 | if (!CheckEmoji[0]) 34 | return message.channel.send(`Please Give Me A Valid Emoji!`); 35 | message.channel.send( 36 | `You Can Use Normal Emoji Without Adding In Server!` 37 | ); 38 | } 39 | } 40 | }; -------------------------------------------------------------------------------- /commands/utility/fliptext.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | const flip = require("flip-text"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "fliptext", 7 | description: "Flip some text", 8 | usage: "fliptext ", 9 | type: "Fun"}, 10 | run: async(client, message, args) => { 11 | if (args.length < 1) { 12 | return message.channel.send("Please enter some text to flip") 13 | } 14 | args.reverse(); 15 | var flipped = []; 16 | 17 | args.forEach((arg) => { 18 | flipped.push(flip(arg)); 19 | }); 20 | 21 | message.channel.send(flipped.join(" ")); 22 | } 23 | } -------------------------------------------------------------------------------- /commands/utility/gif.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js") 2 | const giphy = require('giphy-api')("W8g6R14C0hpH6ZMon9HV9FTqKs4o4rCk"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "gif", 7 | description: "Get gifs based on your search"}, 8 | run: async (client, message, args) => { 9 | if (args.length === 0) { 10 | message.channel.send('No Search terms!') 11 | return; 12 | } 13 | if (args.length === 1) { 14 | term = args.toString() 15 | } else { 16 | term = args.join(" "); 17 | } 18 | giphy.search(term).then(function (res) { 19 | // Res contains gif data! 20 | let id = res.data[0].id 21 | let msgurl = `https://media.giphy.com/media/${id}/giphy.gif` 22 | 23 | const embed = new Discord.MessageEmbed() 24 | .setTitle(`First result for \`${term}\` on GIPHY`) 25 | .setImage(msgurl) 26 | .setFooter(`Powered by GIPHY`, `https://raw.githubusercontent.com/Giphy/GiphyAPI/f68a8f1663f29dd9e8e4ea728421eb2977e42d83/api_giphy_logo_sparkle_clear.gif`) 27 | .setColor("RANDOM"); 28 | message.channel.send(embed); 29 | 30 | }); 31 | 32 | message.delete(); 33 | } 34 | } -------------------------------------------------------------------------------- /commands/utility/hug.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const superagent = require('superagent'); 4 | 5 | module.exports = { 6 | config: { 7 | name: 'hug', 8 | description: 'Hugs people', 9 | aliases: ["hug"], 10 | usage: '', 11 | accessableby: "", 12 | }, 13 | run: async (client, message, args) => { 14 | 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; 15 | const { body } = await superagent 16 | .get("https://nekos.life/api/v2/img/hug"); 17 | const embed = new Discord.MessageEmbed() 18 | .setColor("PINK") 19 | 20 | .setDescription(`${victim} is hugged by ${message.author}`) 21 | .setImage(body.url) 22 | .setTimestamp() 23 | 24 | message.channel.send(embed); 25 | 26 | } 27 | } -------------------------------------------------------------------------------- /commands/utility/imageannounce.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "image-announce", 6 | aliases: ["iannounce","ia"] 7 | }, 8 | run: async (client, message, args) => { 9 | const chm = message.mentions.channels.first(); 10 | if (!chm) return message.reply("First mention A Channel Then Image"); 11 | 12 | const image = message.attachments.first() 13 | ? message.attachments.first().proxyURL 14 | : null || args[1]; 15 | if (!image) return message.reply("Provide A Image"); 16 | 17 | const embed = new Discord.MessageEmbed() 18 | .setImage(image, { dynamite: 1024 }) 19 | .setColor("FF7034"); 20 | 21 | chm.send(embed); 22 | } 23 | }; -------------------------------------------------------------------------------- /commands/utility/imdb.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | const imdb = require("imdb-api"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "movie", 7 | description: "Get the information about series and movie", 8 | category: "info", 9 | usage: "imdb " 10 | }, 11 | run: async (client, message, args, color) => { 12 | 13 | if(!args.length) { 14 | return message.channel.send("Please give the name of movie or series") 15 | } 16 | 17 | const imob = new imdb.Client({apiKey: "5e36f0db"}) //You need to paste you imdb api 18 | 19 | let movie = await imob.get({'name': args.join(" ")}) 20 | 21 | let embed = new discord.MessageEmbed() 22 | .setTitle(movie.title) 23 | .setColor("RANDOM") 24 | .setThumbnail(movie.poster) 25 | .setDescription(movie.plot) 26 | .setFooter(`Ratings: ${movie.rating}`) 27 | .addField("Country", movie.country, true) 28 | .addField("Languages", movie.languages, true) 29 | .addField("Type", movie.type, true); 30 | 31 | 32 | message.channel.send(embed) 33 | 34 | 35 | 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /commands/utility/jail.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const DIG = require("discord-image-generation"); 4 | 5 | module.exports = { 6 | config : { 7 | name: "jail", 8 | category: "Image", 9 | description: "Converts a user's avatar in jail !!", 10 | example: `${config.Prefix}jail @Dinav`}, 11 | 12 | run: async (client, message, args) => { 13 | 14 | const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 15 | 16 | if(!user) 17 | return message.reply(` Provide a valid user !!`) 18 | 19 | const avatar = user.user.displayAvatarURL({ dynamic: false, format: 'png', size: 1024 }); 20 | 21 | let img = await new DIG.Jail().getImage(avatar); 22 | 23 | let attach = new Discord.MessageAttachment(img, "jail.png"); 24 | 25 | message.channel.send(attach) 26 | } 27 | } -------------------------------------------------------------------------------- /commands/utility/linkshorten.js: -------------------------------------------------------------------------------- 1 | const shorten = require('isgd'); 2 | 3 | 4 | module.exports = { 5 | config : { 6 | name: "linkshorten", 7 | aliases: ["shorten"], 8 | category: "Utility", 9 | description: "Shortens your URL to is.gd format !!", 10 | example: `c!linkshorten https://discord.gg/RWSEj6JrjJ blob_lab`}, 11 | 12 | run: async (client, message, args) => { 13 | 14 | if (!args[0]) return message.reply(`Provide the link to shorten !! \`${config.Prefix}shortenlink \``) 15 | 16 | if (!args[0]) { 17 | shorten.shorten(args[0], function(res) { 18 | if(res.startsWith('Error:')) return message.reply(` Provide a valid url **${res}**`) 19 | 20 | message.channel.send(`**<${res}>**`) 21 | }) 22 | 23 | } else { 24 | 25 | shorten.custom(args[0], args[1], function(res) { 26 | if(res.startsWith('Error:')) return message.reply(` **${res}**`) 27 | 28 | message.channel.send(`**<${res}>**`) 29 | }) 30 | 31 | } 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /commands/utility/membercount.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | 3 | module.exports = { 4 | config: { 5 | name: "membercount", 6 | description: "Show members in the servers", 7 | usage: "z!membercount", 8 | aliases: ["membercount","mc"] 9 | }, 10 | run: async (client, message, args) => { 11 | 12 | let embed = new discord.MessageEmbed() 13 | .setAuthor( 14 | `Members`) 15 | .setDescription(`${message.guild.memberCount}`) 16 | .setColor("RANDOM") 17 | .setTimestamp(message.timestamp = Date.now()) 18 | 19 | message.channel.send(embed) 20 | } 21 | } -------------------------------------------------------------------------------- /commands/utility/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 | .setURL(`https://reddit.com/r/${random}`); 23 | 24 | message.channel.send(embed); 25 | } 26 | } -------------------------------------------------------------------------------- /commands/utility/minecraft.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | module.exports = { 3 | config : { 4 | name: 'minecraft'}, 5 | 6 | 7 | run :async (client , message , args) => { 8 | const sentence = args.join("+") 9 | 10 | if (!sentence) return message.channel.send('Please specify a text.') 11 | if (sentence > 22) return message.channel.send("Please type a text no bigger than 22 characters") 12 | let embed = new Discord.MessageEmbed() 13 | .setTitle('Achievement unlocked!') 14 | .setImage(`https://api.cool-img-api.ml/achievement?text=${sentence}`) 15 | .setColor('RANDOM') 16 | .setFooter(' '); 17 | message.channel.send(embed) 18 | } 19 | } -------------------------------------------------------------------------------- /commands/utility/pat.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const superagent = require('superagent'); 4 | 5 | 6 | module.exports = { 7 | config: { 8 | name: 'pat', 9 | description: 'Pats people', 10 | aliases: ["pat"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 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; 16 | const { body } = await superagent 17 | .get("https://nekos.life/api/v2/img/pat"); 18 | const embed = new Discord.MessageEmbed() 19 | .setColor("YELLOW") 20 | .setTitle("Here's your Pat, 👀") 21 | .setDescription(`${victim} Pats ${message.author}`) 22 | .setImage(body.url) 23 | .setTimestamp() 24 | 25 | 26 | message.channel.send(embed); 27 | } 28 | } -------------------------------------------------------------------------------- /commands/utility/playstore.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const PlayStore = require("google-play-scraper"); 3 | 4 | module.exports = { 5 | config: { 6 | name: "playstore", 7 | aliases: ["googleplaystore", "googleps"], 8 | category: "info", 9 | description: "Show Playstore Application Information Of Your Given Name!", 10 | usage: "", 11 | accessableby: "everyone" 12 | }, 13 | run: async (bot, message, args) => { 14 | if (!args[0]) 15 | return message.channel.send( 16 | `Please Give Something To Search - ${message.author.username}` 17 | ); 18 | 19 | PlayStore.search({ 20 | term: args.join(" "), 21 | num: 1 22 | }).then(Data => { 23 | let App; 24 | 25 | try { 26 | App = JSON.parse(JSON.stringify(Data[0])); 27 | } catch (error) { 28 | return message.channel.send( 29 | `No Application Found - ${message.author.username}!` 30 | ); 31 | } 32 | 33 | let Embed = new Discord.MessageEmbed() 34 | .setColor("RANDOM") 35 | .setThumbnail(App.icon) 36 | .setURL(App.url) 37 | .setTitle(`${App.title}`) 38 | .setDescription(App.summary) 39 | .addField(`Price`, App.priceText) 40 | .addField(`Developer`, App.developer) 41 | .addField(`Ratings`, App.scoreText) 42 | .setFooter(`Requested By ${message.author.username}`) 43 | .setTimestamp(); 44 | 45 | return message.channel.send(Embed); 46 | }); 47 | } 48 | } -------------------------------------------------------------------------------- /commands/utility/poke.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const config = require("../../config"); 3 | const nekos = require("nekos.life"); 4 | const { 5 | sfw: { poke }, 6 | } = new nekos(); 7 | 8 | module.exports = { 9 | config: { 10 | name: "poke", 11 | description: "Get's a poke reaction!", 12 | aliases: ["POKE", "Poke"], 13 | usage: "", 14 | accessableby: "", 15 | }, 16 | run: async (client, message, args) => { 17 | const { url } = await poke().catch(() => {}); 18 | 19 | if (!url) return message.channel.send(`Could not connect to nekos.life`); 20 | 21 | const embed = new MessageEmbed(); 22 | 23 | if ( 24 | message.mentions.members.size && 25 | message.mentions.members.first().id === client.user.id 26 | ) { 27 | return message.channel.send( 28 | `${message.member}, I'm already here! You need something?` 29 | ); 30 | } else if ( 31 | message.mentions.members.size && 32 | message.mentions.members.first().id === message.author.id 33 | ) { 34 | return message.channel.send(`What?`); 35 | } else if (message.mentions.members.size) { 36 | return message.channel.send( 37 | embed 38 | .setColor("YELLOW") 39 | .setDescription( 40 | `${message.member} pokes ${message.mentions.members.first()}!` 41 | ) 42 | .setImage(url) 43 | ); 44 | } else { 45 | return message.channel.send( 46 | `${message.member}, I can't poke your imaginary friend! :(` 47 | ); 48 | } 49 | }, 50 | }; -------------------------------------------------------------------------------- /commands/utility/qr.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = { 4 | config : { 5 | name: "qr", 6 | aliases: ["qrcode"], 7 | category: "Utility", 8 | description: "Coneverts the provided link to a qr code cool ?", 9 | example: `c!qr https://youtube.com`}, 10 | 11 | run: async (client, message, args) => { 12 | 13 | let link = (args[0]) 14 | let qrlink = `http://api.qrserver.com/v1/create-qr-code/?data=${link}&size=200x200` 15 | 16 | if (!link) 17 | return message.channel.send(` Please provide a link !!`) 18 | 19 | if (require('is-url')(link)) { 20 | const attachment = new Discord.MessageAttachment(qrlink, 'qrcode.png'); 21 | 22 | const embed = new Discord.MessageEmbed() 23 | .setTitle('QR Code Is Ready') 24 | .attachFiles(attachment) 25 | .setColor(message.guild.me.displayHexColor) 26 | .setImage('attachment://qrcode.png') 27 | .setFooter(`Requested by ${message.author.username}`, message.author.displayAvatarURL({ dynamic: true })) 28 | .setTimestamp() 29 | 30 | message.channel.send(embed) 31 | 32 | } else { 33 | message.reply(`${emoji.Error} Error provide a valid link which contain \`https://\``) 34 | } 35 | 36 | } 37 | } -------------------------------------------------------------------------------- /commands/utility/rip.js: -------------------------------------------------------------------------------- 1 | const DIG = require("discord-image-generation"); 2 | const Discord = require("discord.js"); 3 | 4 | module.exports = { 5 | config: { 6 | name: 'rip', 7 | description: 'RIP!', 8 | aliases: ["rip"], 9 | usage: '', 10 | accessableby: "", 11 | }, 12 | run: async (client, message, args) => { 13 | // const m = client.findMember(message, args, true); 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 | let avatar = user.user.displayAvatarURL({ 18 | dynamic: false, 19 | format: "png", 20 | }); 21 | 22 | let img = await new DIG.Rip().getImage(avatar); 23 | 24 | let attach = new Discord.MessageAttachment(img, "rip.png"); 25 | m.delete({ timeout: 5000 }); 26 | message.channel.send(attach); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/utility/scroll.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | const Jimp = require("jimp"); 3 | const cooldown = new Set(); 4 | 5 | module.exports = { 6 | config :{ 7 | name: "scroll", 8 | description: "Another Fun Command"}, 9 | run: async(client, message, args) => { 10 | if (message.channel.type === "dm") return; 11 | let text = args.join(' ') 12 | if (!text) { 13 | return message.reply('You need to provide some text!'); 14 | } 15 | message.channel.send({files : [{attachment: `https://api.alexflipnote.dev/scroll?text=${text}`, name: 'file.jpg'}]}) 16 | } 17 | }; -------------------------------------------------------------------------------- /commands/utility/serverinfo.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { MessageEmbed } = require("discord.js"); 3 | 4 | 5 | module.exports = { 6 | config : { 7 | name: "serverinfo", 8 | aliases: ["serverinformation"], 9 | description: "Show Server Information!", 10 | usage: "Serverinfo" 11 | }, 12 | run: async (client, message, args) => { 13 | //Start 14 | const guild = message.guild; 15 | const Emojis = guild.emojis.cache.size || "No Emoji!"; 16 | const Roles = guild.roles.cache.size || "No Roles!"; 17 | const Members = guild.memberCount; 18 | const Humans = guild.members.cache.filter(member => !member.user.bot).size; 19 | const Bots = guild.members.cache.filter(member => member.user.bot).size; 20 | 21 | const embed = new MessageEmbed() 22 | .setTitle("Info of " + guild.name) 23 | .setColor("YELLOW") 24 | .setThumbnail(guild.iconURL()) 25 | .addField(`Name`, guild.name, true) 26 | .addField(`ID`, `${guild.id}`, true) 27 | .addField(`Owner`, `${guild.owner.user.tag}`, true) 28 | .addField(`Roles Count`, Roles, true) 29 | .addField(`Emojis Count`, Emojis, true) 30 | .addField(`Members Count`, Members, true) 31 | .addField(`Humans Count`, Humans, true) 32 | .addField(`Bots Count`, Bots, true) 33 | .addField(`Server Created At`, guild.createdAt.toDateString()) 34 | .setFooter(`Requested by ${message.author.username}`) 35 | .setTimestamp(); 36 | 37 | message.channel.send(embed); 38 | 39 | //End 40 | } 41 | }; -------------------------------------------------------------------------------- /commands/utility/smug.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const config = require("../../config"); 3 | const nekos = require("nekos.life"); 4 | const { 5 | sfw: { smug }, 6 | } = new nekos(); 7 | 8 | module.exports = { 9 | config: { 10 | name: "smug", 11 | description: "Get's a smug reaction!", 12 | aliases: ["SMUG", "Smug"], 13 | usage: "", 14 | accessableby: "", 15 | }, 16 | run: async (client, message, args) => { 17 | const { url } = await smug().catch(() => {}); 18 | 19 | if (!url) return message.channel.send(`Could not connect to nekos.life`); 20 | 21 | message.channel.send( 22 | new MessageEmbed() 23 | .setColor("YELLOW") 24 | .setImage(url) 25 | .setDescription(`${message.member} smugs.`) 26 | ); 27 | }, 28 | }; -------------------------------------------------------------------------------- /commands/utility/toilet.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const Canvas = require('canvas'); 3 | 4 | module.exports = { 5 | config : { 6 | name: 'toilet', 7 | aliases: [], 8 | description: 'Flushes someone in a toilet! No idea how you will wanna go into a toilet'}, 9 | 10 | run : async (client, message, args) => { 11 | const member = message.mentions.members.first() || message.member; 12 | const canvas = Canvas.createCanvas(500, 670); 13 | const ctx = canvas.getContext('2d'); 14 | const background = await Canvas.loadImage('https://cdn.discordapp.com/attachments/779441456464003122/812706484240121876/unknown.png'); 15 | ctx.drawImage(background, 0, 0, canvas.width, canvas.height); 16 | // ctx.beginPath(); 17 | // // ctx.arc(350, 150, 100, 0, Math.PI * 2, true); 18 | // ctx.closePath(); 19 | // ctx.clip(); 20 | const avatar = await Canvas.loadImage(member.user.displayAvatarURL({ format: 'jpg' })); 21 | ctx.drawImage(avatar, 135, 350, 205, 205); 22 | const attachment = new Discord.MessageAttachment(canvas.toBuffer(), `toilet_${member.user.username}.jpg`); 23 | message.reply({ files: [attachment], allowedMentions: { repliedUser: false } }); 24 | }} -------------------------------------------------------------------------------- /commands/utility/triggered.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | const config = require('../../config'); 4 | const DIG = require("discord-image-generation"); 5 | 6 | module.exports = { 7 | config : { 8 | name: "trigger", 9 | category: "Image", 10 | description: "Converts a user's avatar in triggered format !!", 11 | aliases: ["triggered"], 12 | example: `${config.Prefix}trigger @Dinav`}, 13 | 14 | run: async (client, message, args) => { 15 | 16 | const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 17 | 18 | if(!user) 19 | return message.reply(`Provide a valid user !!`) 20 | 21 | const avatar = user.user.displayAvatarURL({ dynamic: false, format: 'png', size: 1024 }); 22 | 23 | let img = await new DIG.Triggered().getImage(avatar); 24 | 25 | let attach = new Discord.MessageAttachment(img, "triggered.gif"); 26 | 27 | message.channel.send(attach) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/utility/tweet.js: -------------------------------------------------------------------------------- 1 | const Meme = require("memer-api") 2 | const memer = new Meme(); 3 | const { Client, Message, MessageEmbed, MessageAttachment } = require('discord.js'); 4 | 5 | module.exports = { 6 | config : { 7 | 8 | name: 'tweet', 9 | /** 10 | * @param {Client} client 11 | * @param {Message} message 12 | * @param {String[]} args 13 | */}, 14 | run: async(client, message, args) => { 15 | const user1 = message.member; 16 | 17 | const avatar = user1.user.displayAvatarURL({ dynamic: false }) 18 | 19 | const text = args.join(' '); 20 | 21 | if (!text) return message.reply(`Please provide a text.`); 22 | 23 | const username = user1.user.username; 24 | 25 | memer.tweet(avatar, username, text).then(image => { 26 | const attachment = new MessageAttachment(image, "tweet.png") 27 | message.channel.send(attachment) 28 | }) 29 | } 30 | } -------------------------------------------------------------------------------- /commands/utility/uptime.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | 4 | module.exports = { 5 | config : { 6 | name: "uptime", 7 | aliases: ["up", "uptime"], 8 | category: "Info", 9 | description: "Shows how long I've been online", 10 | example: `c!uptime`}, 11 | 12 | run: async (client, message, args) => { 13 | let Days = Math.floor(client.uptime / 86400000); 14 | let Hours = Math.floor(client.uptime / 3600000) % 24; 15 | let Minutes = Math.floor(client.uptime / 60000) % 60; 16 | let Seconds = Math.floor(client.uptime / 1000) % 60; 17 | const RemoveUseless = (Duration) => { 18 | return Duration.replace("0 Day\n", "").replace("0 Hour\n", "").replace("0 Minute\n", ""); 19 | }; 20 | let Uptime = await RemoveUseless(`\`${Days}\` ${Days > 1 ? "Days" : "Day"} \`${Hours}\` ${Hours > 1 ? "Hours" : "Hour"} \`${Minutes}\` ${Minutes > 1 ? "Minutes" : "Minute"} \`${Seconds}\` ${Seconds > 1 ? "Seconds" : "Second"}`); 21 | 22 | const embed = new Discord.MessageEmbed() 23 | .setTitle(`My Uptime`) 24 | .setDescription(`${Uptime}`) 25 | .setTimestamp(); 26 | 27 | await message.channel.send(embed) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/utility/vaportext.js: -------------------------------------------------------------------------------- 1 | 2 | const Discord = module.require("discord.js"); 3 | 4 | module.exports = { 5 | config : { 6 | name: "vaportext", 7 | description: "Fun Command"}, 8 | run: async(client, message, args) => { 9 | if (!args.length) { 10 | return message.channel.send("You need to enter some text") 11 | } 12 | let msg = ""; 13 | for (let i = 0; i < args.length; i++) { 14 | msg += args[i].toUpperCase().split("").join(" ") + " "; 15 | } 16 | message.channel.send(msg); 17 | }} -------------------------------------------------------------------------------- /commands/utility/wasted.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "wasted", 6 | description: "Put the GTA Wasted pic over avatars!"}, 7 | run: async(client, message, args) => { 8 | const user = message.mentions.members.first(); 9 | if (!user) { 10 | return message.channel.send("Wasted? Who?"); 11 | } 12 | const avatar = user.user.displayAvatarURL({ size: 2048, format: "png" }); 13 | 14 | await message.channel.send({ files: [{ attachment: `https://some-random-api.ml/canvas/wasted?avatar=${avatar}`, name: 'file.jpg' }] }) 15 | } 16 | } -------------------------------------------------------------------------------- /commands/utility/whatsapp.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { createCanvas, loadImage } = require('canvas') 3 | 4 | module.exports = { 5 | config : { 6 | name: "whatsapp", 7 | aliases: ["wa"]}, 8 | run : async (client, message, args, prefix) => { 9 | 10 | let user = message.mentions.users.first() || client.users.cache.get(args[0]) || 11 | message.author 12 | 13 | const avatar = await loadImage( 14 | user.displayAvatarURL({ format: "png" }) 15 | ); 16 | const canvas = createCanvas(800, 800); 17 | const ctx = canvas.getContext("2d"); 18 | const background = await loadImage( 19 | "https://cdn.discordapp.com/attachments/821168411978629120/830951165943480359/whatsapp.png" 20 | ); 21 | ctx.drawImage(avatar, 0, 0, canvas.width, canvas.height); 22 | 23 | ctx.drawImage(background, 0, 0, canvas.width, canvas.height); 24 | const attachment = new Discord.MessageAttachment( 25 | canvas.toBuffer(), 26 | `${user.username}_whatsapp.png` 27 | ); 28 | 29 | message.channel.send(attachment); 30 | 31 | } 32 | } -------------------------------------------------------------------------------- /commands/utility/wideavatar.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "wideavatar", 6 | description: "Get a widened avatar of a user"}, 7 | 8 | run: async(client, message, args) => { 9 | const mention = message.mentions.members.first() || message.member; 10 | const avatar = mention.user.displayAvatarURL({dynamic: true, size: 2048, format: "png"}); 11 | 12 | message.channel.send({ files: [{ attachment: `https://vacefron.nl/api/wide?image=${avatar}`, name: "wideavatar.png"}]}); 13 | } 14 | } -------------------------------------------------------------------------------- /commands/utility/wink.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const config = require('../../config'); 3 | const superagent = require('superagent'); 4 | 5 | 6 | module.exports = { 7 | config: { 8 | name: 'wink', 9 | description: 'winks others ;)', 10 | aliases: ["wink"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | let { body } = await superagent.get(`https://some-random-api.ml/animu/wink`); 16 | const embed = new Discord.MessageEmbed() 17 | .setColor("YELLOW") 18 | .setImage(body.link) 19 | .setTimestamp(); 20 | message.channel.send(embed); 21 | } 22 | } -------------------------------------------------------------------------------- /commands/utility/youtubesearch.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | config : { 5 | name: "ytsearch", 6 | description: "Search For results on Youtube"}, 7 | 8 | run: async(client, message, args) => { 9 | const text = args.join(' '); 10 | const search = args.join('+'); 11 | if (!text) { 12 | return message.channel.send("Enter some text to search for") 13 | } 14 | const embed = new Discord.MessageEmbed() 15 | .setTitle("YT Search") 16 | .addField(`You Searched for`, `${text}`) 17 | .addField(`Results`, `[Here's What I found](https://youtube.com/results?search_query=${search})`) 18 | .setColor("RANDOM"); 19 | message.channel.send(embed); 20 | } 21 | } -------------------------------------------------------------------------------- /commands/utility/zalgo.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const { MessageEmbed } = require('discord.js') 3 | const config = require('../../config'); 4 | const Zalgo = require('to-zalgo') 5 | 6 | module.exports = { 7 | config: { 8 | name: 'zalgo', 9 | description: 'Converts your text to Zalgo', 10 | aliases: ["zalgo"], 11 | usage: '', 12 | accessableby: "", 13 | }, 14 | run: async (client, message, args) => { 15 | 16 | const embed = new MessageEmbed() 17 | .setColor(config.embedcolor) 18 | .setDescription(`${Zalgo(args.join(" "))}`) 19 | .setTimestamp() 20 | message.channel.send(embed) 21 | } 22 | } -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | exports.TOKEN = ''; 2 | 3 | exports.PREFIX = ''; 4 | 5 | exports.news_API = '37dd3b8c790745b28f1e59e5e27810ec'; 6 | 7 | exports.giphy_API = 'api.giphy.com/v1/gifs/trending'; 8 | 9 | exports.AME_API = 'bb03f373caa534fcfcbaeae177a65134f44a6e57ba7a7b098be273867b376d8a677ddae3c23c6ded4fec8288573945e8c3483689deb13f229376ad4b5b60231d'; 10 | 11 | exports.OWNER_ID = "663442537222242306" // IF U CHANGE PLS CHANGE IN OWNER.JSON ALSO 12 | 13 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "", 3 | "prefix": "", 4 | "loggerChannelID": "", 5 | "webhook": { 6 | "id": "", 7 | "token": "" 8 | } 9 | } -------------------------------------------------------------------------------- /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!` ], 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'); 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") return; 11 | 12 | let prefix; 13 | let fetched = await db.fetch(`prefix_${message.guild.id}`); 14 | 15 | if (fetched === null) { 16 | prefix = PREFIX 17 | } else { 18 | prefix = fetched 19 | } 20 | 21 | let args = message.content.slice(prefix.length).trim().split(/ +/g); 22 | let cmd = args.shift().toLowerCase(); 23 | 24 | if (!message.content.startsWith(prefix)) return; 25 | 26 | let ops = { 27 | queue2: queue2, 28 | queue: queue, 29 | queue3: queue3, 30 | games: games 31 | } 32 | 33 | var commandfile = bot.commands.get(cmd) || bot.commands.get(bot.aliases.get(cmd)) 34 | if (commandfile) commandfile.run(bot, message, args, ops) 35 | } catch (e) { 36 | console.log(e); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /first-message.js: -------------------------------------------------------------------------------- 1 | const addReactions = (message, reactions) => { 2 | message.react(reactions[0]) 3 | reactions.shift() 4 | if (reactions.length > 0) { 5 | setTimeout(() => addReactions(message, reactions), 750) 6 | } 7 | } 8 | 9 | module.exports = async (client, id, text, reactions = []) => { 10 | const channel = await client.channels.fetch(id) 11 | 12 | channel.messages.fetch().then((messages) => { 13 | if (messages.size === 0) { 14 | // Send a new message 15 | channel.send(text).then((message) => { 16 | addReactions(message, reactions) 17 | }) 18 | } else { 19 | // Edit the existing message 20 | for (const message of messages) { 21 | message[1].edit(text) 22 | addReactions(message[1], reactions) 23 | } 24 | } 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /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", "fun", "image", "info", "moderation", "owner", "games"].forEach(x => load(x)); 13 | }; -------------------------------------------------------------------------------- /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/AlexDev7518/Multipurpose-Bot/1d3017c7a7a906c9c99377fecaf61c834e39243a/json.sqlite -------------------------------------------------------------------------------- /owner.json: -------------------------------------------------------------------------------- 1 | { 2 | "ownerID": ["663442537222242306"] 3 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "discord-bot", 3 | "version": "1.0.0", 4 | "description": "Discord Bot Made By Firez#2902", 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 | "common-tags": "^1.8.0", 17 | "discord.js": "^12.2.0", 18 | "ms": "^2.1.2", 19 | "node-fetch": "^2.6.1", 20 | "opusscript": "0.0.7", 21 | "random-puppy": "^1.1.0", 22 | "simple-youtube-api": "^5.2.1", 23 | "parse-ms": "^2.1.0", 24 | "weather-js": "^2.0.0", 25 | "ytdl-core": "^2.1.5", 26 | "relevant-urban": "^2.0.0", 27 | "http": "^0.0.0", 28 | "express": "^4.17.1", 29 | "@discordjs/opus": "^0.3.2", 30 | "fs": "^0.0.2", 31 | "quick.db": "^7.1.1", 32 | "iso-639-1": "^2.1.2", 33 | "mathjs": "^6.6.5", 34 | "canvas": "^2.6.1", 35 | "amethyste-api": "^1.1.3", 36 | "jimp": "^0.12.1", 37 | "wikijs": "^6.0.0", 38 | "dblapi.js": "^2.4.0", 39 | "path": "^0.12.7", 40 | "node-superfetch": "^0.1.10", 41 | "canvas-constructor": "^3.2.0", 42 | "fs-nextra": "^0.5.1", 43 | "aki-api": "^5.0.0", 44 | "giphy-api": "^2.0.1", 45 | "pokersolver": "^2.1.3" 46 | }, 47 | "devDependencies": {} 48 | } -------------------------------------------------------------------------------- /private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /schemas/message-count-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const messageCountSchema = mongoose.Schema({ 4 | // The user ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | // How many messages they have sent 11 | messageCount: { 12 | type: Number, 13 | required: true, 14 | }, 15 | }) 16 | 17 | module.exports = mongoose.model('message-counts', messageCountSchema) 18 | -------------------------------------------------------------------------------- /schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /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 | }; -------------------------------------------------------------------------------- /views/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Made By Infinity Gaming Come Join https://discord.com/invite/6yjXcz4gwb

6 | 7 |

Bot is Online

8 | 9 | 10 | -------------------------------------------------------------------------------- /welcome.js: -------------------------------------------------------------------------------- 1 | module.exports = (client) => { 2 | const channelId = '861316161852538923' // welcome channel 3 | const targetChannelId = '861316158002692117' // rules and info 4 | 5 | client.on('guildMemberAdd', (member) => { 6 | const message = `Please welcome <@${ 7 | member.id 8 | }> to the server! Please check out ${member.guild.channels.cache 9 | .get(targetChannelId) 10 | .toString()}` 11 | 12 | const channel = member.guild.channels.cache.get(channelId) 13 | channel.send(message) 14 | }) 15 | } --------------------------------------------------------------------------------