├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── LICENSE ├── README.md ├── app.js ├── assets ├── config.json ├── fonts │ └── Segoe-UI.ttf └── images │ ├── 3000-years.png │ ├── 8ball.png │ ├── Who-Would-Win.png │ ├── approved.png │ ├── banned.png │ ├── battle.png │ ├── beautiful.png │ ├── bob-ross.png │ ├── bye-mom.png │ ├── challenger.png │ ├── dark-light.png │ ├── drakeposting.png │ ├── error.png │ ├── gay.png │ ├── gru-plan.png │ ├── i-have-the-power.png │ ├── image_respects.png │ ├── image_slap.png │ ├── jail.png │ ├── level_up.png │ ├── levelupcard.png │ ├── look-at-this-photograph.png │ ├── look-what-karen-have.png │ ├── master.png │ ├── newlevelcard.png │ ├── newprofilecard.png │ ├── noob.png │ ├── noobstamp.png │ ├── ph.png │ ├── plate_404.png │ ├── plate_beautiful.png │ ├── plate_bill.png │ ├── plate_brazzers.png │ ├── plate_buttslap.png │ ├── plate_checkout.png │ ├── plate_crush.png │ ├── plate_delete.png │ ├── plate_jail.png │ ├── plate_shit.png │ ├── plate_triggered.png │ ├── rainbow.png │ ├── rejected.png │ ├── rude.png │ ├── slap.png │ ├── stupid.png │ ├── suck.png │ ├── the-ultimate-tattoo.png │ ├── thug-life.png │ ├── to-be-continued.png │ ├── toonie.png │ ├── triggered.png │ ├── wanted.png │ ├── wasted.png │ └── welcome.png ├── commands ├── canvas │ ├── 3000.js │ ├── approved.js │ ├── banned.js │ ├── beautiful.js │ ├── bill.js │ ├── byemom.js │ ├── challenger.js │ ├── continued.js │ ├── contrast.js │ ├── crush.js │ ├── delete.js │ ├── distort.js │ ├── error.js │ ├── greyscale.js │ ├── invert.js │ ├── jail.js │ ├── look.js │ ├── noob.js │ ├── noobstamp.js │ ├── paint.js │ ├── photograph.js │ ├── pick.js │ ├── pornhub.js │ ├── power.js │ ├── pride.js │ ├── rejected.js │ ├── rip.js │ ├── rude.js │ ├── shit.js │ ├── slap.js │ ├── stupid.js │ ├── tattoo.js │ ├── thuglife.js │ ├── toonie.js │ ├── triggered.js │ ├── wasted.js │ ├── whowouldwinp.js │ └── yousuck.js ├── economy │ ├── 25.js │ ├── 50.js │ ├── 75.js │ ├── 99.js │ ├── balance.js │ ├── blackjack.js │ ├── daily.js │ ├── deposit.js │ ├── fish.js │ ├── hack.js │ ├── net-worth.js │ ├── rob.js │ ├── slots.js │ ├── transfer.js │ ├── withdraw.js │ └── work.js ├── fun │ ├── 8ball.js │ ├── advice.js │ ├── afk.js │ ├── age.js │ ├── avatar.js │ ├── cat.js │ ├── catfact.js │ ├── charcount.js │ ├── choose.js │ ├── clapify.js │ ├── coinflip.js │ ├── createteams.js │ ├── deleteteams.js │ ├── disableshrug.js │ ├── dm.js │ ├── embed.js │ ├── endgiveaway.js │ ├── giveaways.js │ ├── jointeam.js │ ├── leaveteam.js │ ├── math.js │ ├── notes.js │ ├── opinion.js │ ├── percentage.js │ ├── pickmember.js │ ├── poll.js │ ├── random.js │ ├── randombreed.js │ ├── reverse.js │ ├── roast.js │ ├── roll.js │ ├── rps.js │ ├── rr.js │ ├── sexy-rate.js │ ├── sexyrate.js │ ├── ship.js │ ├── startgiveaway.js │ ├── temperature.js │ ├── today.js │ ├── upvote.js │ └── wur.js ├── info │ ├── botinfo.js │ ├── findcommand.js │ ├── guildinfo.js │ ├── help.js │ ├── memberinfo.js │ ├── roleinfo.js │ ├── website.js │ └── whois.js ├── leveling │ ├── leaderboard.js │ ├── prestige.js │ ├── profile.js │ ├── rep.js │ └── unrep.js ├── miscellaneous │ ├── bugs.js │ ├── commandcount.js │ ├── invite.js │ ├── ping.js │ └── reminder.js ├── moderation │ ├── antijoin.js │ ├── applyPunishment.js │ ├── autoroles.js │ ├── ban.js │ ├── blacklist.js │ ├── blacklistword.js │ ├── botnick.js │ ├── clearwarn.js │ ├── clogs.js │ ├── createchannel.js │ ├── customcommands.js │ ├── customresponses.js │ ├── disableCommandInChannel.js │ ├── editwarn.js │ ├── kick.js │ ├── manageRoleCreation.js │ ├── manageautomod.js │ ├── managecategory.js │ ├── managecommand.js │ ├── manageeconomy.js │ ├── manageevent.js │ ├── manageleveling.js │ ├── managemessages.js │ ├── managemods.js │ ├── modlogs.js │ ├── modmail.js │ ├── modonly.js │ ├── modsend.js │ ├── mute.js │ ├── placeholders.js │ ├── prefix.js │ ├── punishments.js │ ├── purge.js │ ├── reason.js │ ├── report.js │ ├── role.js │ ├── roleAll.js │ ├── rolepersist.js │ ├── rrole.js │ ├── rroleall.js │ ├── selfrole.js │ ├── starboard.js │ ├── tfa.js │ ├── unban.js │ ├── unmute.js │ ├── warn.js │ ├── warns.js │ ├── whitelist.js │ └── whitelistword.js ├── music │ ├── clearqueue.js │ ├── currentsong.js │ ├── leave.js │ ├── pause.js │ ├── play.js │ ├── queue.js │ ├── radio.js │ ├── radiostations.js │ ├── removesong.js │ ├── resume.js │ ├── shuffle.js │ ├── skip.js │ ├── stopradio.js │ └── volume.js ├── nsfw │ ├── 4k.js │ ├── amateur.js │ ├── anal.js │ ├── ass.js │ ├── asshole.js │ ├── bbw.js │ ├── bdsm.js │ ├── bikinis.js │ ├── blonde.js │ ├── bottomless.js │ ├── brunette.js │ ├── college.js │ ├── cosplay.js │ ├── curvy.js │ ├── dick.js │ ├── echhi.js │ ├── furrynsfw.js │ ├── gonewild.js │ ├── milf.js │ ├── moreporn.js │ ├── nsfw.js │ ├── nude.js │ ├── onoff.js │ ├── petite.js │ ├── porn.js │ ├── porngif.js │ ├── public.js │ ├── pussy.js │ ├── redheads.js │ ├── redtube.js │ ├── rule34.js │ ├── snapchat.js │ ├── tattoos.js │ ├── tits.js │ └── uniform.js ├── owner │ ├── eval.js │ ├── exec.js │ ├── forceleave.js │ ├── guildlist.js │ ├── reboot.js │ ├── reload.js │ ├── resetgame.js │ └── setgame.js ├── reddit │ ├── aww.js │ ├── comics.js │ ├── dog.js │ ├── fellowkids.js │ ├── funny.js │ ├── gaming.js │ ├── gardening.js │ ├── gatekeeping.js │ ├── meme.js │ ├── motivate.js │ ├── naiceinglish.js │ ├── programmerhumor.js │ ├── reddit.js │ ├── showerthoughts.js │ ├── wellthatsucks.js │ ├── wholesome.js │ └── woosh.js ├── roleplay │ ├── bite.js │ ├── crush.js │ ├── cuddle.js │ ├── dropkick.js │ ├── fitstbump.js │ ├── highfive.js │ ├── holdhands.js │ ├── hug.js │ ├── kiss.js │ ├── pat.js │ ├── poke.js │ ├── punch.js │ ├── stare.js │ ├── tackle.js │ └── wave.js └── search │ ├── booksearch.js │ ├── github.js │ ├── itunes.js │ ├── mdn.js │ ├── npm.js │ ├── nytimes.js │ ├── roblox.js │ ├── urban.js │ ├── weather.js │ ├── wiki.js │ └── youtube.js ├── events ├── client │ ├── message.js │ └── ready.js └── guild │ ├── guildCreate.js │ ├── guildMemberAdd.js │ ├── guildMemberRemove.js │ ├── messageDelete.js │ ├── messageReactionAdd.js │ ├── messageReactionRemove.js │ ├── messageUpdate.js │ └── voiceStateUpdate.js ├── handlers ├── addDbEntry.js ├── canvas.js ├── command.js ├── createDb.js ├── dbConnection.js ├── economy.js ├── error.js ├── event.js ├── funcs.js ├── memberjoin.js ├── memberleave.js ├── messageHandler.js ├── messagefuncs.js ├── miscfuncs.js ├── moderationfuncs.js └── music.js ├── package-lock.json ├── package.json └── utils ├── activity.json ├── config.json └── radiostations.json /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | //# Initialization 2 | const { Client, Collection } = require('discord.js'); 3 | const bot = new Client({ 4 | disabledEvents: ["RELATIONSHIP_ADD", "RELATIONSHIP_REMOVE", "TYPING_START"], 5 | disableEveryone: true, 6 | messageCacheMaxSize: 150, 7 | messageCacheLifetime: 240, 8 | messageSweepInterval: 300, 9 | }); 10 | const { token } = require('./utils/config.json'); 11 | 12 | ['commands','aliases', 'usage', 'cooldownTime'].forEach(x => bot[x] = new Collection()); 13 | ['command', 'event'].forEach(x => require(`./handlers/${x}`)(bot)); 14 | const errorHandler = require('./handlers/error'); 15 | 16 | bot.on('disconnect', () => errorHandler.disconnect()) 17 | .on("reconnecting", () => errorHandler.reconnecting()) 18 | .on('warn', err => errorHandler.warn(err)) 19 | .on('error', err => errorHandler.error(err)) 20 | .on('DiscordAPIError', err => errorHandler.DiscordAPIError(err)); 21 | 22 | process.on("uncaughtException", err => errorHandler.unhandledRejection(err)); 23 | process.on('unhandledRejection', (err) => errorHandler.unhandledRejection(err)); 24 | 25 | bot.login(token); -------------------------------------------------------------------------------- /assets/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "Bots token", 3 | "prefix": "c!", 4 | "dblKey": "Key for posting bot stats to top.gg", 5 | "botsggkey": "key for posting to bots stats", 6 | "OPENWEATHERMAP_KEY": "Weather api key", 7 | "GITHUB_USER": "Github username", 8 | "GITHUB_PASS": "github pass" 9 | } 10 | -------------------------------------------------------------------------------- /assets/fonts/Segoe-UI.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/fonts/Segoe-UI.ttf -------------------------------------------------------------------------------- /assets/images/3000-years.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/3000-years.png -------------------------------------------------------------------------------- /assets/images/8ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/8ball.png -------------------------------------------------------------------------------- /assets/images/Who-Would-Win.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/Who-Would-Win.png -------------------------------------------------------------------------------- /assets/images/approved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/approved.png -------------------------------------------------------------------------------- /assets/images/banned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/banned.png -------------------------------------------------------------------------------- /assets/images/battle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/battle.png -------------------------------------------------------------------------------- /assets/images/beautiful.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/beautiful.png -------------------------------------------------------------------------------- /assets/images/bob-ross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/bob-ross.png -------------------------------------------------------------------------------- /assets/images/bye-mom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/bye-mom.png -------------------------------------------------------------------------------- /assets/images/challenger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/challenger.png -------------------------------------------------------------------------------- /assets/images/dark-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/dark-light.png -------------------------------------------------------------------------------- /assets/images/drakeposting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/drakeposting.png -------------------------------------------------------------------------------- /assets/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/error.png -------------------------------------------------------------------------------- /assets/images/gay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/gay.png -------------------------------------------------------------------------------- /assets/images/gru-plan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/gru-plan.png -------------------------------------------------------------------------------- /assets/images/i-have-the-power.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/i-have-the-power.png -------------------------------------------------------------------------------- /assets/images/image_respects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/image_respects.png -------------------------------------------------------------------------------- /assets/images/image_slap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/image_slap.png -------------------------------------------------------------------------------- /assets/images/jail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/jail.png -------------------------------------------------------------------------------- /assets/images/level_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/level_up.png -------------------------------------------------------------------------------- /assets/images/levelupcard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/levelupcard.png -------------------------------------------------------------------------------- /assets/images/look-at-this-photograph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/look-at-this-photograph.png -------------------------------------------------------------------------------- /assets/images/look-what-karen-have.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/look-what-karen-have.png -------------------------------------------------------------------------------- /assets/images/master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/master.png -------------------------------------------------------------------------------- /assets/images/newlevelcard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/newlevelcard.png -------------------------------------------------------------------------------- /assets/images/newprofilecard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/newprofilecard.png -------------------------------------------------------------------------------- /assets/images/noob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/noob.png -------------------------------------------------------------------------------- /assets/images/noobstamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/noobstamp.png -------------------------------------------------------------------------------- /assets/images/ph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/ph.png -------------------------------------------------------------------------------- /assets/images/plate_404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_404.png -------------------------------------------------------------------------------- /assets/images/plate_beautiful.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_beautiful.png -------------------------------------------------------------------------------- /assets/images/plate_bill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_bill.png -------------------------------------------------------------------------------- /assets/images/plate_brazzers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_brazzers.png -------------------------------------------------------------------------------- /assets/images/plate_buttslap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_buttslap.png -------------------------------------------------------------------------------- /assets/images/plate_checkout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_checkout.png -------------------------------------------------------------------------------- /assets/images/plate_crush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_crush.png -------------------------------------------------------------------------------- /assets/images/plate_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_delete.png -------------------------------------------------------------------------------- /assets/images/plate_jail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_jail.png -------------------------------------------------------------------------------- /assets/images/plate_shit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_shit.png -------------------------------------------------------------------------------- /assets/images/plate_triggered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/plate_triggered.png -------------------------------------------------------------------------------- /assets/images/rainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/rainbow.png -------------------------------------------------------------------------------- /assets/images/rejected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/rejected.png -------------------------------------------------------------------------------- /assets/images/rude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/rude.png -------------------------------------------------------------------------------- /assets/images/slap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/slap.png -------------------------------------------------------------------------------- /assets/images/stupid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/stupid.png -------------------------------------------------------------------------------- /assets/images/suck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/suck.png -------------------------------------------------------------------------------- /assets/images/the-ultimate-tattoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/the-ultimate-tattoo.png -------------------------------------------------------------------------------- /assets/images/thug-life.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/thug-life.png -------------------------------------------------------------------------------- /assets/images/to-be-continued.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/to-be-continued.png -------------------------------------------------------------------------------- /assets/images/toonie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/toonie.png -------------------------------------------------------------------------------- /assets/images/triggered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/triggered.png -------------------------------------------------------------------------------- /assets/images/wanted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/wanted.png -------------------------------------------------------------------------------- /assets/images/wasted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/wasted.png -------------------------------------------------------------------------------- /assets/images/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Katrixerse/Corius/ca4882ad358d45174a8c419459598202b762cdfb/assets/images/welcome.png -------------------------------------------------------------------------------- /commands/canvas/3000.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/3000-years.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(856, 569) 15 | .resetTransformation() 16 | .addImage(plate, 0, 0, 856, 569) 17 | .addImage(body, 461, 127, 200, 200) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: '3000.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "3000", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/approved.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/approved.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(250, 250) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 250, 250) 17 | .addImage(plate, 0, 0, 250, 250) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'rejected.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "approved", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/beautiful.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to make beautiful."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/beautiful.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(480, 640) 15 | .setColor(0x00A2E8) 16 | .addImage(plate, 0, 0, 480, 640) 17 | .addImage(body, 287, 170, 200, 200, { 18 | type: "round", 19 | radius: 100 20 | }) 21 | //.restore() 22 | .toBuffer(); 23 | }; 24 | try { 25 | const person = message.mentions.users.first().avatarURL; 26 | const result = await getSlapped(person); 27 | await message.channel.send({ 28 | files: [{ 29 | attachment: result, 30 | name: 'beautiful.png' 31 | }] 32 | }); 33 | } catch (error) { 34 | throw error; 35 | } 36 | }; 37 | 38 | module.exports.config = { 39 | name: "beautiful", 40 | aliases: [], 41 | usage: "", 42 | commandCategory: "canvas", 43 | cooldownTime: '0' 44 | }; -------------------------------------------------------------------------------- /commands/canvas/bill.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/plate_bill.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(325, 150) 15 | .setColor(0x6B363E) 16 | .addImage(body, 80, 0, 150, 150) 17 | .addImage(plate, 0, 0, 325, 150) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'bill.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "bill", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/challenger.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/challenger.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(800, 450) 15 | .setColor(0x6B363E) 16 | .addImage(plate, 0, 0, 800, 450) 17 | .addImage(body, 484, 98, 256, 256) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'challenger.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "challenger", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/continued.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/to-be-continued.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(634, 675) 15 | .setColor(0x6B363E) 16 | .addRect(0, 0, 634, 675) 17 | .addImage(body, 0, 0, 634, 675) 18 | .addImage(plate, 233, 545, 384, 165) 19 | .toBuffer(); 20 | }; 21 | try { 22 | const person = message.mentions.users.first().avatarURL; 23 | const result = await getSlapped(person); 24 | await message.channel.send({ 25 | files: [{ 26 | attachment: result, 27 | name: 'continued.png' 28 | }] 29 | }); 30 | } catch (error) { 31 | throw error; 32 | } 33 | }; 34 | 35 | module.exports.config = { 36 | name: "continued", 37 | aliases: [], 38 | usage: "", 39 | commandCategory: "canvas", 40 | cooldownTime: '0' 41 | }; -------------------------------------------------------------------------------- /commands/canvas/contrast.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const { createCanvas, loadImage } = require('canvas'); 3 | const canvasFuncs = require('../../handlers/canvas.js'); 4 | module.exports.run = async (bot, message, args, funcs) => { 5 | if (message.mentions.users.size < 1) return funcs.send("No mentions found in your message."); 6 | try { 7 | const { body } = await request.get(message.mentions.users.first().avatarURL); 8 | const data = await loadImage(body); 9 | const canvas = createCanvas(data.width, data.height); 10 | const ctx = canvas.getContext('2d'); 11 | ctx.drawImage(data, 0, 0); 12 | canvasFuncs.contrast(ctx, 0, 0, data.width, data.height); 13 | const attachment = canvas.toBuffer(); 14 | return message.channel.send({ files: [{ attachment, name: 'greyscale.png' }] }); 15 | } catch (err) { 16 | return message.channel.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "contrast", 22 | aliases: [], 23 | usage: "", 24 | commandCategory: "canvas", 25 | cooldownTime: '0' 26 | }; -------------------------------------------------------------------------------- /commands/canvas/delete.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | 4 | module.exports.run = async (bot, message, args, funcs) => { 5 | const { 6 | Canvas 7 | } = require('canvas-constructor'); 8 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 9 | const getSlapped = async (person) => { 10 | const plate = await fsn.readFile('./assets/images/plate_delete.png'); 11 | const png = person.replace('.gif', '.png'); 12 | const { 13 | body 14 | } = await request.get(png); 15 | return new Canvas(550, 275) 16 | .setColor(0x00A2E8) 17 | .addRect(0, 0, 634, 675) 18 | .addImage(plate, 0, 0, 550, 275) 19 | .addImage(body, 92, 106, 139, 151) 20 | .toBuffer(); 21 | }; 22 | try { 23 | const person = message.mentions.users.first().avatarURL; 24 | const result = await getSlapped(person); 25 | await message.channel.send({ 26 | files: [{ 27 | attachment: result, 28 | name: 'delete.png' 29 | }] 30 | }); 31 | } catch (error) { 32 | throw error; 33 | } 34 | }; 35 | 36 | module.exports.config = { 37 | name: "delete", 38 | aliases: [], 39 | usage: "", 40 | commandCategory: "canvas", 41 | cooldownTime: '0' 42 | }; -------------------------------------------------------------------------------- /commands/canvas/distort.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | const { createCanvas, loadImage } = require('canvas'); 4 | const canvasFuncs = require('../../handlers/canvas.js'); 5 | 6 | module.exports.run = async (bot, message, args, funcs) => { 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | try { 9 | let distort_level = parseInt(args.slice(1).join(' ')); 10 | if (isNaN(distort_level)) return message.channel.send('Needs to be a valid number to change the distort amount.'); 11 | const { body } = await request.get(message.mentions.users.first().avatarURL); 12 | const data = await loadImage(body); 13 | const canvas = createCanvas(data.width, data.height); 14 | const ctx = canvas.getContext('2d'); 15 | ctx.drawImage(data, 0, 0); 16 | canvasFuncs.distort(ctx, distort_level, 0, 0, data.width, data.height); 17 | const attachment = canvas.toBuffer(); 18 | return message.channel.send({ files: [{ attachment, name: 'greyscale.png' }] }); 19 | } catch (err) { 20 | return message.channel.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 21 | } 22 | }; 23 | 24 | module.exports.config = { 25 | name: "distort", 26 | aliases: [], 27 | usage: "", 28 | commandCategory: "canvas", 29 | cooldownTime: '0' 30 | }; -------------------------------------------------------------------------------- /commands/canvas/greyscale.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const { createCanvas, loadImage } = require('canvas'); 3 | const canvasFuncs = require('../../handlers/canvas.js'); 4 | module.exports.run = async (bot, message, args, funcs) => { 5 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 6 | try { 7 | const { body } = await request.get(message.mentions.users.first().avatarURL); 8 | const data = await loadImage(body); 9 | const canvas = createCanvas(data.width, data.height); 10 | const ctx = canvas.getContext('2d'); 11 | ctx.drawImage(data, 0, 0); 12 | canvasFuncs.greyscale(ctx, 0, 0, data.width, data.height); 13 | const attachment = canvas.toBuffer(); 14 | return message.channel.send({ files: [{ attachment, name: 'greyscale.png' }] }); 15 | } catch (err) { 16 | return message.channel.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "greyscale", 22 | aliases: [], 23 | usage: "", 24 | commandCategory: "canvas", 25 | cooldownTime: '0' 26 | }; -------------------------------------------------------------------------------- /commands/canvas/invert.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const { createCanvas, loadImage } = require('canvas'); 3 | const canvasFuncs = require('../../handlers/canvas.js'); 4 | module.exports.run = async (bot, message, args, funcs) => { 5 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 6 | try { 7 | const { body } = await request.get(message.mentions.users.first().avatarURL); 8 | const data = await loadImage(body); 9 | const canvas = createCanvas(data.width, data.height); 10 | const ctx = canvas.getContext('2d'); 11 | ctx.drawImage(data, 0, 0); 12 | canvasFuncs.invert(ctx, 0, 0, data.width, data.height); 13 | const attachment = canvas.toBuffer(); 14 | return message.channel.send({ files: [{ attachment, name: 'greyscale.png' }] }); 15 | } catch (err) { 16 | return message.channel.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "invert", 22 | aliases: [], 23 | usage: "", 24 | commandCategory: "canvas", 25 | cooldownTime: '0' 26 | }; -------------------------------------------------------------------------------- /commands/canvas/jail.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to jail."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/jail.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(420, 420) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 420, 420) 17 | .addImage(plate, 0, 0, 420, 420) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'jailed.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "jail", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/look.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/look-what-karen-have.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(768, 432) 15 | .rotate(-6.5 * (Math.PI / 180)) 16 | .addImage(body, 514, 50, 512, 512) 17 | .rotate(6.5 * (Math.PI / 180)) 18 | .addImage(plate, 0, 0, 768, 432) 19 | .toBuffer(); 20 | }; 21 | try { 22 | const person = message.mentions.users.first().avatarURL; 23 | const result = await getSlapped(person); 24 | await message.channel.send({ 25 | files: [{ 26 | attachment: result, 27 | name: 'look.png' 28 | }] 29 | }); 30 | } catch (error) { 31 | throw error; 32 | } 33 | }; 34 | 35 | module.exports.config = { 36 | name: "look", 37 | aliases: [], 38 | usage: "", 39 | commandCategory: "canvas", 40 | cooldownTime: '0' 41 | }; -------------------------------------------------------------------------------- /commands/canvas/noob.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to noob!."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/noob.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(420, 420) 15 | .addImage(plate, 0, 0, 420, 420) 16 | .addImage(body, 160, 28, 100, 100, { 17 | type: "round", 18 | radius: 50 19 | }) 20 | //.restore() 21 | .toBuffer(); 22 | }; 23 | try { 24 | const person = message.mentions.users.first().avatarURL; 25 | const result = await getSlapped(person); 26 | await message.channel.send({ 27 | files: [{ 28 | attachment: result, 29 | name: 'lolnoob!.png' 30 | }] 31 | }); 32 | } catch (error) { 33 | throw error; 34 | } 35 | }; 36 | 37 | module.exports.config = { 38 | name: "noob", 39 | aliases: [], 40 | usage: "", 41 | commandCategory: "canvas", 42 | cooldownTime: '0' 43 | }; -------------------------------------------------------------------------------- /commands/canvas/noobstamp.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to noob!."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/noobstamp.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(501, 363) 15 | .addImage(body, 0, 0, 501, 363) 16 | .addImage(plate, 0, 0, 501, 363) 17 | //.restore() 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'lolnoob!.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "noobstamp", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/paint.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | 4 | module.exports.run = async (bot, message, args, funcs) => { 5 | const { 6 | Canvas 7 | } = require('canvas-constructor'); 8 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 9 | const getSlapped = async (person) => { 10 | const plate = await fsn.readFile('./assets/images/bob-ross.png'); 11 | const png = person.replace('.gif', '.png'); 12 | const { 13 | body 14 | } = await request.get(png); 15 | return new Canvas(600, 755) 16 | .resetTransformation() 17 | .rotate(3 * (Math.PI / 180)) 18 | .addImage(body, 30, 19, 430, 430) 19 | .rotate(-3 * (Math.PI / 180)) 20 | .addImage(plate, 0, 0, 600, 755) 21 | .toBuffer(); 22 | }; 23 | try { 24 | const person = message.mentions.users.first().avatarURL; 25 | const result = await getSlapped(person); 26 | await message.channel.send({ 27 | files: [{ 28 | attachment: result, 29 | name: 'paint.png' 30 | }] 31 | }); 32 | } catch (error) { 33 | throw error; 34 | } 35 | }; 36 | 37 | module.exports.config = { 38 | name: "paint", 39 | aliases: [], 40 | usage: "", 41 | commandCategory: "canvas", 42 | cooldownTime: '0' 43 | }; -------------------------------------------------------------------------------- /commands/canvas/pornhub.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return message.channel.send("You didn't mention a user to pornhub."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/ph.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(640, 336) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 640, 336) 17 | .addImage(plate, 0, 0, 640, 336) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'ph.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "pornhub", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/power.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/i-have-the-power.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(720, 536) 15 | .setColor(0x00A2E8) 16 | .addImage(plate, 0, 0, 720, 536) 17 | .addImage(body, 345, 23, 169, 169, { 18 | type: 'round', 19 | radius: 85 20 | }) 21 | .toBuffer(); 22 | }; 23 | try { 24 | const person = message.mentions.users.first().avatarURL; 25 | const result = await getSlapped(person); 26 | await message.channel.send({ 27 | files: [{ 28 | attachment: result, 29 | name: 'power.png' 30 | }] 31 | }); 32 | } catch (error) { 33 | throw error; 34 | } 35 | }; 36 | 37 | module.exports.config = { 38 | name: "power", 39 | aliases: [], 40 | usage: "", 41 | commandCategory: "canvas", 42 | cooldownTime: '0' 43 | }; -------------------------------------------------------------------------------- /commands/canvas/pride.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to pride."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/gay.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(900, 761) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 900, 761) 17 | .addImage(plate, 0, 0, 900, 761) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'rainbow.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "pride", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/rejected.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/look-at-this-photograph.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(250, 250) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 250, 250) 17 | .addImage(plate, 0, 0, 250, 250) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'rejected.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "rejected", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/rip.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/pay_respects.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(720, 405) 15 | .addRect(0, 0, 720, 405) 16 | .setColor('#000000') 17 | .addImage(body, 110, 45, 90, 90) 18 | .resetTransformation() 19 | .addImage(plate, 0, 0, 720, 405) 20 | .toBuffer(); 21 | }; 22 | try { 23 | const person = message.mentions.users.first().avatarURL; 24 | const result = await getSlapped(person); 25 | await message.channel.send({ 26 | files: [{ 27 | attachment: result, 28 | name: 'rip.png' 29 | }] 30 | }); 31 | } catch (error) { 32 | throw error; 33 | } 34 | }; 35 | 36 | module.exports.config = { 37 | name: "rip", 38 | aliases: [], 39 | usage: "", 40 | commandCategory: "canvas", 41 | cooldownTime: '0' 42 | }; -------------------------------------------------------------------------------- /commands/canvas/rude.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to make rude."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/rude.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(1851, 1828) 15 | .setColor(0x00A2E8) 16 | .addImage(body, 0, 0, 1851, 1828) 17 | //.restore() 18 | .addImage(plate, 0, 0, 800, 80) 19 | .toBuffer(); 20 | }; 21 | try { 22 | const person = message.mentions.users.first().avatarURL; 23 | const result = await getSlapped(person); 24 | await message.channel.send({ 25 | files: [{ 26 | attachment: result, 27 | name: 'rude.png' 28 | }] 29 | }); 30 | } catch (error) { 31 | throw error; 32 | } 33 | }; 34 | 35 | module.exports.config = { 36 | name: "rude", 37 | aliases: [], 38 | usage: "", 39 | commandCategory: "canvas", 40 | cooldownTime: '0' 41 | }; -------------------------------------------------------------------------------- /commands/canvas/shit.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/plate_shit.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(634, 775) 15 | .setColor(0x00A2E8) 16 | .addRect(0, 0, 434, 675) 17 | .addImage(plate, 0, 0, 634, 775) 18 | .addImage(body, 200, 505, 169, 169, { 19 | type: 'round', 20 | radius: 85 21 | }) 22 | .toBuffer(); 23 | }; 24 | try { 25 | const person = message.mentions.users.first().avatarURL; 26 | const result = await getSlapped(person); 27 | await message.channel.send({ 28 | files: [{ 29 | attachment: result, 30 | name: 'power.png' 31 | }] 32 | }); 33 | } catch (error) { 34 | throw error; 35 | } 36 | }; 37 | 38 | module.exports.config = { 39 | name: "shit", 40 | aliases: [], 41 | usage: "", 42 | commandCategory: "canvas", 43 | cooldownTime: '0' 44 | }; -------------------------------------------------------------------------------- /commands/canvas/slap.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to slap."); 8 | const getSlapped = async (slapper, slapped) => { 9 | const plate = await fsn.readFile('./assets/images/slap.png'); 10 | const png = slapper.replace('.gif', '.png'); 11 | const png1 = slapped.replace(`.gif`, `.png`); 12 | const pngSlapper = await request.get(png); 13 | const pngSlapped = await request.get(png1); 14 | return new Canvas(600, 600) 15 | .setColor(0x00A2E8) 16 | .resetTransformation() 17 | .addImage(plate, 0, 0, 600, 600) 18 | .addImage(pngSlapper.body, 270, 100, 200, 200) 19 | .addImage(pngSlapped.body, 10, 350, 250, 250) 20 | .toBuffer(); 21 | }; 22 | try { 23 | const slapped = message.mentions.users.first().avatarURL; 24 | const slapper = message.author.avatarURL; 25 | const result = await getSlapped(slapper, slapped); 26 | await message.channel.send({ 27 | files: [{ 28 | attachment: result, 29 | name: 'slap.png' 30 | }] 31 | }); 32 | } catch (error) { 33 | throw error; 34 | } 35 | }; 36 | 37 | module.exports.config = { 38 | name: "slap", 39 | aliases: [], 40 | usage: "", 41 | commandCategory: "canvas", 42 | cooldownTime: '0' 43 | }; -------------------------------------------------------------------------------- /commands/canvas/tattoo.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/the-ultimate-tattoo.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(750, 1089) 15 | .setColor(0x6B363E) 16 | .addImage(plate, 0, 0, 750, 1089) 17 | .addImage(body, 200, 645, 320, 320, { 18 | type: 'round', 19 | radius: 156 20 | }) 21 | .toBuffer(); 22 | }; 23 | try { 24 | const person = message.mentions.users.first().avatarURL; 25 | const result = await getSlapped(person); 26 | await message.channel.send({ 27 | files: [{ 28 | attachment: result, 29 | name: 'tattoo.png' 30 | }] 31 | }); 32 | } catch (error) { 33 | throw error; 34 | } 35 | }; 36 | 37 | module.exports.config = { 38 | name: "tattoo", 39 | aliases: [], 40 | usage: "", 41 | commandCategory: "canvas", 42 | cooldownTime: '0' 43 | }; -------------------------------------------------------------------------------- /commands/canvas/thuglife.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("No mentions found in your message."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/thug-life.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(250, 250) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 250, 250) 17 | .addImage(plate, 0, 0, 250, 250) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'thuglife.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "thuglife", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/toonie.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("Please mention somebody to transform into a toonie."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/toonie.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(550, 540) 15 | .addImage(plate, 0, 0, 550, 540) 16 | .addImage(body, 100, 100, 350, 350, { 17 | type: "round", 18 | radius: 175 19 | }) 20 | //.restore() 21 | .toBuffer(); 22 | }; 23 | try { 24 | 25 | const person = message.mentions.users.first().avatarURL; 26 | const result = await getSlapped(person); 27 | await message.channel.send({ 28 | files: [{ 29 | attachment: result, 30 | name: 'toonie.png' 31 | }] 32 | }); 33 | } catch (error) { 34 | throw error; 35 | } 36 | }; 37 | 38 | module.exports.config = { 39 | name: "toonie", 40 | aliases: [], 41 | usage: "", 42 | commandCategory: "canvas", 43 | cooldownTime: '0' 44 | }; -------------------------------------------------------------------------------- /commands/canvas/triggered.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to trigger."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/triggered.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(480, 480) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 480, 480) 17 | .addImage(plate, 0, 150, 480, 480) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'triggered.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "triggered", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/canvas/wasted.js: -------------------------------------------------------------------------------- 1 | const request = require('node-superfetch'); 2 | const fsn = require("fs-nextra"); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | const { 5 | Canvas 6 | } = require('canvas-constructor'); 7 | if (message.mentions.users.size < 1) return send("You didn't mention a user to waste."); 8 | const getSlapped = async (person) => { 9 | const plate = await fsn.readFile('./assets/images/wasted.png'); 10 | const png = person.replace('.gif', '.png'); 11 | const { 12 | body 13 | } = await request.get(png); 14 | return new Canvas(420, 420) 15 | .resetTransformation() 16 | .addImage(body, 0, 0, 420, 420) 17 | .addImage(plate, 0, 0, 420, 420) 18 | .toBuffer(); 19 | }; 20 | try { 21 | const person = message.mentions.users.first().avatarURL; 22 | const result = await getSlapped(person); 23 | await message.channel.send({ 24 | files: [{ 25 | attachment: result, 26 | name: 'wasted.png' 27 | }] 28 | }); 29 | } catch (error) { 30 | throw error; 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "wasted", 36 | aliases: [], 37 | usage: "", 38 | commandCategory: "canvas", 39 | cooldownTime: '0' 40 | }; -------------------------------------------------------------------------------- /commands/economy/balance.js: -------------------------------------------------------------------------------- 1 | function numberWithCommas(x) { 2 | return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); 3 | } 4 | 5 | const { richEmbed } = require('discord.js'); 6 | 7 | module.exports.run = async (bot, message, args, funcs, con) => { 8 | con.query(`SELECT gs.economyEnabled AS economy FROM guildSettings AS gs WHERE gs.guildId ="${message.guild.id}"`, (e, row) => { 9 | if (row[0].economy == "false") return; 10 | try { 11 | let whoto = message.mentions.members.first() || message.member; 12 | con.query(`SELECT * FROM guildCash WHERE guildId = "${message.guild.id}" AND userId = "${whoto.id}"`, (e, row2) => { 13 | if (!row2 || row2.length == 0) return funcs.send(`User does not have any money.`); 14 | let networth = row2[0].userCash; 15 | const embed = new richEmbed() 16 | .setAuthor(whoto.user.tag, whoto.user.avatarURL) 17 | .setColor(funcs.rc()) 18 | .setFooter(bot.user.username) 19 | .addField(`Cash:`, `$` + numberWithCommas(networth)) 20 | .addField(`Banked cash:`, `$` + numberWithCommas(row2[0].userBankedCash)) 21 | .setThumbnail(whoto.user.avatarURL); 22 | message.channel.send(embed); 23 | }); 24 | } catch (e) { 25 | console.error; 26 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 27 | } 28 | }); 29 | }; 30 | 31 | module.exports.config = { 32 | name: "balance", 33 | aliases: ['bal'], 34 | usage: "Use this command to see somebody's balance.", 35 | commandCategory: "economy", 36 | cooldownTime: '3' 37 | }; -------------------------------------------------------------------------------- /commands/economy/daily.js: -------------------------------------------------------------------------------- 1 | module.exports.run = async (bot, message, args, funcs, con) => { 2 | try { 3 | con.query(`SELECT gs.economyEnabled AS economy FROM guildSettings AS gs WHERE gs.guildId ="${message.guild.id}"`, (e, row) => { 4 | if (row[0].economy == "false") return; 5 | con.query(`SELECT * FROM guildCash WHERE guildId = "${message.guild.id}" AND userId = "${message.author.id}"`, (e, row2) => { 6 | if (!row2) { 7 | console.log('inserting in guildCash from daily') 8 | con.query(`INSERT INTO guildCash (guildId, userId, userCash, userBankedCash, username, hasRecievedCash, hasBeenRobbed, has_cheated) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [message.guild.id, message.author.id, cashToGive, 0, message.author.username, "false", "false", "false"]); 9 | } 10 | con.query(`UPDATE guildCash SET userCash = ${row2[0].userCash + 500} WHERE guildId = ${message.guild.id} AND userId = ${message.author.id}`); 11 | funcs.send(`You got your daily 500$.`); 12 | }); 13 | }); 14 | } catch (err) { 15 | console.log(err) 16 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "daily", 22 | aliases: [], 23 | usage: "Use this command to get your daily cash. (1 day cooldown)", 24 | commandCategory: "economy", 25 | cooldownTime: '86400' 26 | }; -------------------------------------------------------------------------------- /commands/economy/work.js: -------------------------------------------------------------------------------- 1 | module.exports.run = async (bot, message, args, funcs, con) => { 2 | con.query(`SELECT gs.economyEnabled AS economy FROM guildSettings AS gs WHERE gs.guildId ="${message.guild.id}"`, (e, row) => { 3 | if (row[0].economy == "false") return; 4 | con.query(`SELECT * FROM guildCash WHERE guildId ="${message.guild.id}" AND userId ="${message.author.id}"`, async (e, row) => { 5 | row = row[0]; 6 | try { 7 | funcs.send(`You've worked and earned 500$!`); 8 | con.query(`UPDATE guildCash SET userCash = ${row.userCash + 500} WHERE guildId = ${message.guild.id} AND userId = ${message.author.id}`); 9 | } catch (err) { 10 | console.log(err) 11 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 12 | } 13 | }); 14 | }); 15 | }; 16 | 17 | module.exports.config = { 18 | name: "work", 19 | aliases: [], 20 | usage: "Use this command to go to work and earn money. (1 day cooldown)", 21 | commandCategory: "economy", 22 | cooldownTime: '86400' 23 | }; -------------------------------------------------------------------------------- /commands/fun/advice.js: -------------------------------------------------------------------------------- 1 | const req = require('node-superfetch'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | const { 5 | body 6 | } = await req.get('http://api.adviceslip.com/advice'); 7 | funcs.send(JSON.parse(body.toString()).slip.advice); 8 | } catch (e) { 9 | console.log(e); 10 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 11 | } 12 | }; 13 | 14 | module.exports.config = { 15 | name: "advice", 16 | aliases: [], 17 | usage: "Use this command to get some advice.", 18 | commandCategory: "fun", 19 | cooldownTime: "5" 20 | }; -------------------------------------------------------------------------------- /commands/fun/afk.js: -------------------------------------------------------------------------------- 1 | module.exports.run = async (bot, message, args, funcs, con) => { 2 | try { 3 | con.query(`SELECT * FROM afk WHERE guildId = '${message.guild.id}' AND userId = '${message.author.id}'`, (err, rows) => { 4 | if (err) return funcs.send(`An error occurred! Error: ${err.message}`); 5 | const reason = args.join(` `) || "No reason provided"; 6 | if (!rows || rows.length == 0) { 7 | con.query(`INSERT INTO afk (guildId, userId, isAfk, afkReason) VALUES (?, ?, ?, ?)`, [message.guild.id, message.author.id, 1, con.escape(reason)]); 8 | } 9 | con.query(`UPDATE afk SET isAfk = 1, afkReason =${con.escape(reason)} WHERE guildId = '${message.guild.id}' AND userId = '${message.author.id}'`); 10 | funcs.send(`You are now afk for: ${reason}.`); 11 | }); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "afk", 20 | aliases: [], 21 | usage: "Use this command to go afk.", 22 | commandCategory: "fun", 23 | cooldownTime: '5' 24 | }; -------------------------------------------------------------------------------- /commands/fun/age.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | message.channel.send(`__**What year have you been born in?**__`).then(() => { 3 | message.channel.awaitMessages(m => m.author.id === message.author.id, { 4 | max: 1, 5 | errors: ["time"], 6 | time: 30000 7 | }).then((response) => { 8 | response = parseInt(response.array()[0].content); 9 | if (isNaN(response)) return funcs.send(`Not a valid birth year!`, true); 10 | if (response >= new Date().getFullYear()) return funcs.send(`Not a valid birth year!`, true); 11 | funcs.send(`A person that has been born in ${response} would be ${new Date().getFullYear() - response} years old in ${new Date().getFullYear()}.`); 12 | }).catch((e) => { 13 | funcs.send(`You ran out of time or an error occured!`); 14 | console.log(`Error: ${e.message} in guild ${message.guild.name} command age`); 15 | }); 16 | }); 17 | }; 18 | 19 | module.exports.config = { 20 | name: "age", 21 | aliases: [], 22 | usage: "Use this command to calculate your age.", 23 | commandCategory: "fun", 24 | cooldownTime: '5' 25 | }; -------------------------------------------------------------------------------- /commands/fun/avatar.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = (bot, message, args, funcs) => { 3 | const person = message.mentions.members.first() || message.member; 4 | const embed = new richEmbed() 5 | .setAuthor(message.author.tag, message.author.avatarURL) 6 | .setColor(funcs.rc()) 7 | .setFooter(bot.user.username) 8 | .setImage(person.user.avatarURL) 9 | .setURL(person.user.avatarURL) 10 | .setTitle(`Download`); 11 | message.channel.send(embed); 12 | }; 13 | 14 | module.exports.config = { 15 | name: "avatar", 16 | aliases: ["a"], 17 | usage: "Use this command to access someone's avatar.", 18 | commandCategory: "fun", 19 | cooldownTime: '5' 20 | }; -------------------------------------------------------------------------------- /commands/fun/cat.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { body } = await request 6 | .get("https://www.reddit.com/r/cats.json?sort=top&t=week") 7 | .query({ 8 | limit: 800 9 | }); 10 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 11 | if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 12 | const randomnumber = Math.floor(Math.random() * allowed.length); 13 | const embed = new richEmbed() 14 | .setColor(funcs.rc()) 15 | .setTitle(allowed[randomnumber].data.title) 16 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 17 | .setImage(allowed[randomnumber].data.url) 18 | .setFooter("Image provided by r/cats"); 19 | message.channel.send(embed); 20 | } catch (err) { 21 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 22 | } 23 | }; 24 | 25 | module.exports.config = { 26 | name: "cat", 27 | aliases: [""], 28 | usage: "Sends random pictures of cats.", 29 | commandCategory: "fun", 30 | cooldownTime: "5" 31 | }; 32 | -------------------------------------------------------------------------------- /commands/fun/catfact.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const req = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs, con) => { 4 | try { 5 | const { 6 | body 7 | } = await req 8 | .get("https://catfact.ninja/fact"); 9 | const embed = new richEmbed() 10 | .setTitle(`Cat Fact`) 11 | .setDescription(`${body.fact}`) 12 | .setColor(funcs.rc()); 13 | message.channel.send(embed); 14 | } catch (err) { 15 | console.log(err) 16 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "catfact", 22 | aliases: [], 23 | usage: "Use this command to get a random cat fact.", 24 | commandCategory: "fun", 25 | cooldownTime: '5' 26 | }; -------------------------------------------------------------------------------- /commands/fun/charcount.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let what = args.join(` `); 5 | if (!what) return funcs.send(`You did not enter anything to display the character count of.`); 6 | let e = new richEmbed() 7 | .setColor(funcs.rc()) 8 | .addField(`Text:`, what) 9 | .addField(`Count:`, `${what.length} character(s).`) 10 | .setTimestamp() 11 | .setThumbnail(bot.user.avatarURL); 12 | message.channel.send(e); 13 | } catch (err) { 14 | console.log(err) 15 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 16 | } 17 | }; 18 | 19 | module.exports.config = { 20 | name: "charcount", 21 | aliases: [], 22 | usage: "Use this command to get the character count of something.", 23 | commandCategory: "fun", 24 | cooldownTime: '5' 25 | }; -------------------------------------------------------------------------------- /commands/fun/clapify.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | try { 3 | let text = args.join(` `); 4 | if (!text) return funcs.send(`You can't clapify nothing.`); 5 | funcs.send(`:clap: ${text} :clap:`); 6 | } catch (err) { 7 | console.log(err) 8 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 9 | } 10 | }; 11 | 12 | module.exports.config = { 13 | name: "clapify", 14 | aliases: [], 15 | usage: "Meme review.", 16 | commandCategory: "fun", 17 | cooldownTime: '5' 18 | }; -------------------------------------------------------------------------------- /commands/fun/coinflip.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | var things = [ 3 | "heads", 4 | 'tails' 5 | ]; 6 | module.exports.run = (bot, message, args, funcs) => { 7 | try { 8 | const embed = new richEmbed() 9 | .setTitle("Coin Flip") 10 | .setTimestamp() 11 | .setThumbnail(bot.user.avatarURL) 12 | .setAuthor(message.author.username) 13 | .setColor(funcs.rc()) 14 | .addField(`Coin flipped:`, things[Math.floor(Math.random() * things.length)]); 15 | message.channel.send(embed); 16 | } catch (e) { 17 | console.error; 18 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 19 | } 20 | }; 21 | 22 | module.exports.config = { 23 | name: "coinflip", 24 | aliases: [], 25 | usage: "Use this command to flip a coin.", 26 | commandCategory: "fun", 27 | cooldownTime: '5' 28 | }; -------------------------------------------------------------------------------- /commands/fun/disableshrug.js: -------------------------------------------------------------------------------- 1 | module.exports.run = async (bot, message, args, send) => { 2 | try { 3 | message.channel.send(`¯\_(ツ)_/¯`); 4 | if (!message.guild.me.hasPermission(permissionNeeded)) { 5 | message.delete(); 6 | } 7 | return; 8 | } catch (e) { 9 | console.error; 10 | send(`Oh no! An error occurred! \`${e.message}\`.`); 11 | } 12 | }; 13 | 14 | module.exports.config = { 15 | name: "disabledshrug", 16 | aliases: ["dshrug"], 17 | usage: "Use this command to shrug, weirder.", 18 | commandCategory: "fun", 19 | cooldownTime: '5' 20 | }; -------------------------------------------------------------------------------- /commands/fun/dm.js: -------------------------------------------------------------------------------- 1 | module.exports.run = async (bot, message, args, funcs) => { 2 | try { 3 | let dmUser = message.channel.members.find(c => c.id == args[0]); 4 | if (!dmUser) return message.channel.send(`I can\t seem to find a user with ID: ${args[0]}, make sure thats a valid users id and try again.`); 5 | //con.query(`SELECT * FROM userSettings WHERE guildId ="${message.guild.id}" AND userId ="${whoto.id}"`).then(row1 => { 6 | //if (row1 !== undefined && row1.dms == "false") return send(`User doesn't want to receive any dms right now.`); 7 | let userMessage = args.slice(1).join(` `); 8 | if (!userMessage) return funcs.send(`Please provide something to dm that user!`); 9 | funcs.send(`Message sent!`); 10 | dmUser.send(`__**${message.author.username} says: ${userMessage}**__`); 11 | //}); 12 | } catch (err) { 13 | console.log(err); 14 | funcs.send(`Oh no! An error occurred! \`${err.message}\`.`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "dm", 20 | aliases: [], 21 | usage: "Use this command to dm a user something.", 22 | commandCategory: "fun", 23 | cooldownTime: '60' 24 | }; -------------------------------------------------------------------------------- /commands/fun/embed.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | 3 | module.exports.run = (bot, message, args, funcs) => { 4 | const text = args.join(` `).substr(0, 1000) || "No text provided."; 5 | const embed = new richEmbed().setDescription(text).setColor(funcs.rc()); 6 | message.channel.send(embed); 7 | }; 8 | 9 | module.exports.config = { 10 | name: "embed", 11 | aliases: ["em"], 12 | usage: "Put a message in an embed.", 13 | commandCategory: "fun", 14 | cooldownTime: '5' 15 | }; 16 | -------------------------------------------------------------------------------- /commands/fun/math.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const math = require('mathjs'); 3 | module.exports.run = (bot, message, args, funcs) => { 4 | try { 5 | let whatto = args.join(` `); 6 | if (!whatto) return send(`Please provide a math equation to solve.`); 7 | let result = math.evaluate(whatto).toString(); 8 | const embed = new richEmbed() 9 | .setTitle("Math Result") 10 | .setColor(funcs.rc()) 11 | .setThumbnail(bot.user.avatarURL) 12 | .setTimestamp() 13 | .addField(`Equation:`, `\`\`\`js\n${whatto}\`\`\``, true) 14 | .addField(`Result:`, `\`\`\`js\n${result}\`\`\``, true); 15 | message.delete(); 16 | message.channel.send(embed).catch(() => funcs.send('Invalid expression.')); 17 | } catch (e) { 18 | return funcs.send('Invalid expression.') 19 | } 20 | }; 21 | 22 | module.exports.config = { 23 | name: "math", 24 | aliases: [], 25 | usage: "Help answer your math question", 26 | commandCategory: "fun", 27 | cooldownTime: '5' 28 | }; -------------------------------------------------------------------------------- /commands/fun/opinion.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | message.channel.send(`***Enter the object to get my opinion about or type exit to cancel***`) 5 | .then(() => { 6 | message.channel.awaitMessages(m => m.author.id === message.author.id, { 7 | max: 1, 8 | time: 30000, 9 | errors: ['time'], 10 | }) 11 | .then((obj1) => { 12 | if (!obj1) return; 13 | obj1 = obj1.array()[0]; 14 | let opinions = [`I have a good opinion about ${obj1.content}! :+1:`, `I hate ${obj1.content}.. :nauseated_face:`, `${obj1.content} is okay, I guess.`]; 15 | let opinion = opinions[Math.floor(Math.random() * opinions.length)]; 16 | let embed = new richEmbed() 17 | .setTimestamp() 18 | .setColor(funcs.rc()) 19 | .setDescription(`My opinion: ${opinion}`) 20 | .setThumbnail(bot.user.avatarURL); 21 | message.channel.send(embed); 22 | }) 23 | .catch((e) => { 24 | console.log(e); 25 | send(`Time has expired.`); 26 | }); 27 | }); 28 | } catch (e) { 29 | console.error; 30 | send(`Oh no! An error occurred! \`${e.message}\`.`); 31 | } 32 | }; 33 | 34 | module.exports.config = { 35 | name: "opinion", 36 | aliases: [], 37 | usage: "Bot gives you his opinion on something.", 38 | commandCategory: "fun", 39 | cooldownTime: '5' 40 | }; -------------------------------------------------------------------------------- /commands/fun/percentage.js: -------------------------------------------------------------------------------- 1 | module.exports.run = async (bot, message, args, funcs) => { 2 | try { 3 | let min = args[0]; 4 | if (!min) return send(`Please provide a first number.`); 5 | let actualmin = parseInt(min); 6 | if (isNaN(actualmin)) return funcs.send(`Not a valid first number.`); 7 | let max = args[1]; 8 | if (!max) return send(`Please provide a second number.`); 9 | let actualmax = parseInt(max); 10 | if (isNaN(actualmax)) return funcs.send(`Not a valid second number.`); 11 | let math = (actualmin / actualmax) * 100; 12 | send(`${min} is ${Math.floor(math)}% of ${max}`); 13 | } catch (e) { 14 | console.error; 15 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 16 | } 17 | }; 18 | 19 | module.exports.config = { 20 | name: "percentage", 21 | aliases: [], 22 | usage: "Helps you calculate the percent.", 23 | commandCategory: "fun", 24 | cooldownTime: '5' 25 | }; -------------------------------------------------------------------------------- /commands/fun/randombreed.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const req = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await req 8 | .get("https://catfact.ninja/breeds"); 9 | let num = Math.floor(Math.random() * body.data.length); 10 | const embed = new richEmbed() 11 | .setTitle(`${body.data[num].breed}`) 12 | .addField(`Country:`, body.data[num].country) 13 | .addField(`Origin:`, body.data[num].origin) 14 | .addField(`Coat:`, body.data[num].coat) 15 | .addField(`Pattern:`, body.data[num].pattern) 16 | .setColor(funcs.rc()); 17 | message.channel.send(embed); 18 | } catch (e) { 19 | console.error; 20 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 21 | } 22 | }; 23 | 24 | module.exports.config = { 25 | name: "randombreed", 26 | aliases: [], 27 | usage: "Shows you a random cat breed.", 28 | commandCategory: "fun", 29 | cooldownTime: '5' 30 | }; -------------------------------------------------------------------------------- /commands/fun/roll.js: -------------------------------------------------------------------------------- 1 | module.exports.run = async (bot, message, args, funcs) => { 2 | try { 3 | let num = parseInt(args.join(` `)); 4 | if (!num) return funcs.send(`Please provide a number to roll the dice!`); 5 | if (isNaN(num)) return funcs.send(`Not a valid number to roll.`); 6 | if (!isFinite(num)) return funcs.send(`Cannot roll an infinite number.`); 7 | let dice = Math.floor(Math.random() * num) + 1; 8 | funcs.send(`The dice rolled ${dice}.`); 9 | } catch (e) { 10 | console.error; 11 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 12 | } 13 | }; 14 | 15 | module.exports.config = { 16 | name: "roll", 17 | aliases: [], 18 | usage: "Roll the dice.", 19 | commandCategory: "fun", 20 | cooldownTime: '5' 21 | }; -------------------------------------------------------------------------------- /commands/fun/rr.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let stuff = [ 5 | "Boom! :boom: You're dead! :skull:", 6 | "Wow you made it alive.. :upside_down:" 7 | ]; 8 | const embed = new richEmbed() 9 | .setTitle("Rousian Roullete.") 10 | .setColor(funcs.rc()) 11 | .setTimestamp() 12 | .setDescription(stuff[Math.floor(Math.random() * stuff.length)]); 13 | message.channel.send(embed); 14 | } catch (e) { 15 | console.error; 16 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "rr", 22 | aliases: [], 23 | usage: "Play russian rulette.", 24 | commandCategory: "fun", 25 | cooldownTime: '5' 26 | }; -------------------------------------------------------------------------------- /commands/fun/sexy-rate.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | const moment = require("moment"); 3 | const ms = require("ms"); 4 | 5 | module.exports.run = (bot, message, args, funcs) => { 6 | const person = message.mentions.members.first(); 7 | if (!person) return funcs.send(`You did not mention anybody to rate!`); 8 | const rate = Math.floor(Math.random() * 100) == 0 ? 1 : Math.floor(Math.random() * 100); 9 | const embed = new richEmbed() 10 | .setAuthor(message.author.tag, person.user.avatarURL) 11 | .setColor(funcs.rc()) 12 | .setFooter(bot.user.username) 13 | .setDescription(`I would say ${person.user.username} is ${rate}% sexy!`) 14 | .setThumbnail(message.author.avatarURL); 15 | message.channel.send(embed); 16 | }; 17 | 18 | module.exports.config = { 19 | name: "sexy-rate", 20 | aliases: ['st'], 21 | usage: "Rates someone's sexyness.", 22 | commandCategory: "fun", 23 | cooldownTime: "0" 24 | }; 25 | -------------------------------------------------------------------------------- /commands/fun/sexyrate.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | module.exports.run = (bot, message, args, funcs) => { 3 | const person = message.mentions.members.first(); 4 | if (!person) return funcs.send(`You did not mention anybody to rate!`); 5 | const rate = Math.floor(Math.random() * 100) == 0 ? 1 : Math.floor(Math.random() * 100); 6 | const embed = new richEmbed() 7 | .setAuthor(message.author.tag, person.user.avatarURL) 8 | .setColor(funcs.rc()) 9 | .setFooter(bot.user.username) 10 | .setDescription(`I would say ${person.user.username} is ${rate}% sexy!`) 11 | .setThumbnail(message.author.avatarURL); 12 | message.channel.send(embed); 13 | }; 14 | 15 | module.exports.config = { 16 | name: "sexyrate", 17 | aliases: ['st'], 18 | usage: "Rates someone's sexyness.", 19 | commandCategory: "fun", 20 | cooldownTime: "0" 21 | }; 22 | -------------------------------------------------------------------------------- /commands/fun/ship.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let first = args[0]; 5 | if (!first) return funcs.send(`You did not enter the first object to ship!`); 6 | let second = args[1]; 7 | if (!second) return funcs.send(`You did not enter the second object to ship!`); 8 | let percentage = Math.floor(Math.random() * 100); 9 | let em = new richEmbed() 10 | .setTimestamp() 11 | .setTitle(`Ship`) 12 | .setDescription(`I ship ${first} and ${second} ${percentage}%!`) 13 | .setColor(funcs.rc()); 14 | message.channel.send(em); 15 | } catch (e) { 16 | console.error; 17 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 18 | } 19 | }; 20 | 21 | module.exports.config = { 22 | name: "ship", 23 | aliases: [''], 24 | usage: "Ship two objects/people together", 25 | commandCategory: "fun", 26 | cooldownTime: "0" 27 | }; -------------------------------------------------------------------------------- /commands/fun/today.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const req = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | text 7 | } = await req 8 | .get('http://history.muffinlabs.com/date'); 9 | const body = JSON.parse(text); 10 | const events = body.data.Events; 11 | const event = events[Math.floor(Math.random() * events.length)]; 12 | const embed = new richEmbed() 13 | .setColor(funcs.rc()) 14 | .setURL(body.url) 15 | .setTitle(`On this day (${body.date})...`) 16 | .setTimestamp() 17 | .setDescription(`${event.year}: ${event.text}`); 18 | return message.channel.send(embed).catch(console.error); 19 | } catch (e) { 20 | console.error; 21 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 22 | } 23 | }; 24 | 25 | module.exports.config = { 26 | name: "today", 27 | aliases: [''], 28 | usage: "Random Thing that happened today.", 29 | commandCategory: "fun", 30 | cooldownTime: "0" 31 | }; -------------------------------------------------------------------------------- /commands/fun/upvote.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | const embed = new richEmbed() 5 | .setColor(funcs.rc()) 6 | .addField("Can upvote the bot at: ", "https://discordbots.org/bot/535162498534473738/vote"); 7 | return message.channel.send(embed); 8 | } catch (err) { 9 | console.log(err) 10 | return message.channel.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 11 | } 12 | }; 13 | 14 | module.exports.config = { 15 | name: "upvote", 16 | aliases: [''], 17 | usage: "Upvote the bot", 18 | commandCategory: "miscellaneous", 19 | cooldownTime: "0" 20 | }; -------------------------------------------------------------------------------- /commands/fun/wur.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.rrrather.com/botapi"); 9 | if (body.nsfw == true) return funcs.send(`Not allowed to send a NSFW WuR question in a SFW channel.`); 10 | let embed = new richEmbed() 11 | .setAuthor(message.author.username, message.author.avatarURl) 12 | .setThumbnail(bot.user.avatarURL) 13 | .setTitle(body.title) 14 | .addField(`A:`, body.choicea) 15 | .setURL(body.link) 16 | .setFooter(`Tags: ` + body.tags) 17 | .addField(`B:`, body.choiceb) 18 | .setColor(funcs.rc()) 19 | .setTimestamp(); 20 | message.channel.send(embed).then(m => { 21 | m.react('🅰'); 22 | m.react('🅱'); 23 | }); 24 | } catch (err) { 25 | if (err.status === 404) return funcs.send('Could not find any results.'); 26 | if (err.status === 522) return funcs.send('Could not find any results.'); 27 | console.log(err); 28 | return funcs.send(`Oh no! An error occurred! \`${err.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "wur", 34 | aliases: [''], 35 | usage: "Play would you rather with the bot.", 36 | commandCategory: "fun", 37 | cooldownTime: "3" 38 | }; -------------------------------------------------------------------------------- /commands/info/botinfo.js: -------------------------------------------------------------------------------- 1 | const { richEmbed, version } = require("discord.js"); 2 | const ms = require('ms'); 3 | 4 | module.exports.run = (bot, message, args, funcs) => { 5 | try { 6 | const embed = new richEmbed() 7 | .setColor(funcs.rc()) 8 | .setTitle(':computer: Corius Stats') 9 | .setDescription('Corius\'s current statistics.') 10 | .addField('**__Bot:__**', `Uptime: ${ms(bot.uptime)}\nCommands: ${bot.commands.size}\nUsers/Channels/Servers:\n${bot.users.size.toLocaleString()}/${bot.channels.size.toLocaleString()}/${bot.guilds.size.toLocaleString()}`) 11 | .addField('**__Server:__**', `Memory: ${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MBS/1024MBS\nCPU: Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz\nOS: Linux (x64)`) 12 | .addField('**__Versions:__**', `Node.js: ${process.version}\nDiscord.js: v${version}`) 13 | message.channel.send(embed); 14 | } catch (e) { 15 | console.error; 16 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "botinfo", 22 | aliases: [""], 23 | usage: "Gives you the bots info.", 24 | commandCategory: "info", 25 | cooldownTime: '0' 26 | }; 27 | -------------------------------------------------------------------------------- /commands/info/guildinfo.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const filterLevels = ['Off', 'No Role', 'Everyone']; 3 | const verificationLevels = ['None', 'Low', 'Medium', '(╯°□°)╯︵ ┻━┻', '┻━┻ ミヽ(ಠ益ಠ)ノ彡┻━┻']; 4 | module.exports.run = async (bot, message, args, funcs) => { 5 | try { 6 | const guild = message.guild; 7 | const embed = new richEmbed() 8 | .setColor(funcs.rc()) 9 | .setTitle('Guild Info') 10 | .addField('**__Info:__**', `Owner: ${guild.owner.username}\nGuild ID: ${guild.id}\nRegion: ${guild.region}\nServer Created On: ${guild.createdAt.toDateString()}`) 11 | .addField('**__Stats:__**', `Members: ${guild.memberCount}\nChannels: ${guild.channels.size}\nEmojis: ${guild.emojis.size}\nRoles: ${guild.roles.size}`) 12 | .addField('**__Misc:__**', `Verification Level: ${verificationLevels[guild.verificationLevel]}\nExplicit FIlter: ${filterLevels[guild.explicitContentFilter]}`) 13 | message.channel.send(embed); 14 | } catch (e) { 15 | console.log(e); 16 | send(`Oh no, an error occurred!\n${e.message}`); 17 | } 18 | }; 19 | 20 | module.exports.config = { 21 | name: "guildinfo", 22 | aliases: ["gi"], 23 | usage: "Use this command to get the guild's information.", 24 | commandCategory: "info", 25 | cooldownTime: "5" 26 | }; -------------------------------------------------------------------------------- /commands/info/memberinfo.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | const embed = new richEmbed() 5 | .setColor(funcs.rc()) 6 | .setTitle('Server Member Info') 7 | .addField('**__Info:__**', `Online users: ${message.guild.members.filter(m => m.presence.status == "online").size}\nOffline users: ${message.guild.members.filter(m => m.presence.status == "offline").size}\nTotal Users: ${message.guild.members.size}\nTotal Bots: ${message.guild.members.filter(m => m.user.bot == true).size}`) 8 | message.channel.send(embed); 9 | } catch (e) { 10 | console.error; 11 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 12 | } 13 | }; 14 | 15 | module.exports.config = { 16 | name: "memberinfo", 17 | aliases: [""], 18 | usage: "Use this command to get the guild's member information.", 19 | commandCategory: "info", 20 | cooldownTime: "5" 21 | }; -------------------------------------------------------------------------------- /commands/info/roleinfo.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | let roleName = args.join(' ') 4 | let role = message.guild.roles.find(r => r.name == roleName); 5 | if (!role) return message.channel.send(`I couldn't find the role: ${roleName} in this server.`); 6 | try { 7 | const guild = message.guild; 8 | const embed = new richEmbed() 9 | .setColor(funcs.rc()) 10 | .setTitle('Role Info') 11 | .addField('**__Info:__**', `Name: ${role.name}\n Role ID: ${role.id}\nColor: ${role.hexColor.toUpperCase()}\nCreated At: ${role.createdAt.toDateString()}\nHoisted: ${role.hoist ? 'Yes' : 'No'}\nMentionable: ${role.mentionable ? 'Yes' : 'No'}`) 12 | message.channel.send(embed); 13 | } catch (e) { 14 | console.log(e); 15 | send(`Oh no, an error occurred!\n${e.message}`); 16 | } 17 | }; 18 | 19 | module.exports.config = { 20 | name: "roleinfo", 21 | aliases: [""], 22 | usage: "Use this command to get information on a role.", 23 | commandCategory: "info", 24 | cooldownTime: "5" 25 | }; -------------------------------------------------------------------------------- /commands/info/website.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | try { 3 | funcs.send('Bots offical website: https://corius.site'); 4 | } catch (err) { 5 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 6 | } 7 | }; 8 | 9 | module.exports.config = { 10 | name: "website", 11 | aliases: [], 12 | usage: "Sends you the bots website.", 13 | commandCategory: "info", 14 | cooldownTime: "0" 15 | }; 16 | -------------------------------------------------------------------------------- /commands/leveling/prestige.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs, con) => { 2 | con.query(`SELECT * FROM guildSettings WHERE guildId ="${message.guild.id}"`, async (e, row) => { 3 | row = row[0]; 4 | if (row.levelingEnabled == "false") return; 5 | con.query(`SELECT * FROM guildLeveling WHERE guildId ="${message.guild.id}" AND userId ="${message.author.id}"`, async (e, row2) => { 6 | if (row2.length == 0 || row2[0].userLevel < 50) return funcs.send(`You do not have enough levels to prestige! (you need level 50)`); 7 | con.query(`UPDATE guildLeveling SET userPrestige =${row2[0].userPrestige + 1}, userLevel=${row2[0].userLevel - 50}, userXP=${row2[0].userXP - 20000} WHERE guildId ="${message.guild.id}" AND userId ="${message.author.id}"`); 8 | funcs.send(`You have prestiged! (${row2[0].userPrestige + 1})`); 9 | }); 10 | }); 11 | }; 12 | 13 | module.exports.config = { 14 | name: "prestige", 15 | aliases: [], 16 | usage: "Use this command to prestige.", 17 | commandCategory: "leveling", 18 | cooldownTime: "0" 19 | }; 20 | -------------------------------------------------------------------------------- /commands/miscellaneous/commandcount.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | funcs.send(`I currently have: ${bot.commands.size} commands.`); 3 | }; 4 | 5 | module.exports.config = { 6 | name: "commandcount", 7 | aliases: ["ccount"], 8 | usage: "Get the total command count for the bot.", 9 | commandCategory: "miscellaneous", 10 | cooldownTime: '0' 11 | }; 12 | -------------------------------------------------------------------------------- /commands/miscellaneous/invite.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | message.channel.send(`https://discordapp.com/api/oauth2/authorize?client_id=491699193585467393&permissions=506850678&scope=bot`); 3 | }; 4 | 5 | module.exports.config = { 6 | name: "invite", 7 | aliases: ["inv"], 8 | usage: "Get an invite for the bot.", 9 | commandCategory: "miscellaneous", 10 | cooldownTime: '5' 11 | }; 12 | -------------------------------------------------------------------------------- /commands/miscellaneous/ping.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | const moment = require("moment"); 3 | const ms = require("ms"); 4 | 5 | module.exports.run = (bot, message, args, funcs) => { 6 | const embed = new richEmbed() 7 | .setColor(funcs.rc()) 8 | .setTitle("Ping") 9 | .addField(":clock: Ping:", `${Math.round(bot.ping)}ms`) 10 | .addField(`:robot: Uptime:`, `${ms(bot.uptime)}`); 11 | message.channel.send(embed); 12 | }; 13 | 14 | module.exports.config = { 15 | name: "ping", 16 | aliases: ["pong"], 17 | usage: "Check the status of the bot.", 18 | commandCategory: "miscellaneous", 19 | cooldownTime: "5" 20 | }; 21 | -------------------------------------------------------------------------------- /commands/miscellaneous/reminder.js: -------------------------------------------------------------------------------- 1 | const ms = require("ms"); 2 | module.exports.run = (bot, message, args, funcs) => { 3 | const time = args[0]; 4 | if (!time) return funcs.send(`Missing argument: --> time + s (seconds) / m (minutes) / h (hours) / d (days) <-- reminder\nExample: reminder 2m to eat`); 5 | if (!time.endsWith("s") && !time.endsWith("m") && !time.endsWith("h") && !time.endsWith("d")) return funcs.send(`Not a valid time.`); 6 | const actualTime = parseInt(ms(time)); 7 | if (isNaN(actualTime) || actualTime <= parseInt(ms('1s'))) return funcs.send(`Not a valid time.`); 8 | if (actualTime >= parseInt(ms("5d"))) return funcs.send(`Time cannot be higher than 5 days.`); 9 | const reminder = args.slice(1).join(` `); 10 | if (!reminder) return funcs.send(`Missing argument: time --> reminder <--`); 11 | const rmd = reminder.substr(0, 700); 12 | funcs.send(`:alarm_clock: I will remind you in ${time}!`) 13 | setTimeout(() => { 14 | funcs.send(`${message.member}, you asked me to remind you: ${rmd}`); 15 | }, actualTime); 16 | }; 17 | 18 | module.exports.config = { 19 | name: "reminder", 20 | aliases: ["rmd"], 21 | usage: "Get reminded of something once a period of time has passed.", 22 | commandCategory: "miscellaneous", 23 | cooldownTime: "5" 24 | }; 25 | -------------------------------------------------------------------------------- /commands/music/clearqueue.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.clearqueue(message, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "clearqueue", 13 | aliases: [], 14 | usage: "Removes everything in the queue", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/currentsong.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.currentSong(message, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "currentsong", 13 | aliases: ['currsong'], 14 | usage: "Tells you whats currently playing", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/leave.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.leave(message, bot, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "leave", 13 | aliases: [], 14 | usage: "Leaves the current voice chat", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/pause.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.pause(message, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "pause", 13 | aliases: [], 14 | usage: "Pauses the currently playing music.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/play.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.play(message, args, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "play", 13 | aliases: [], 14 | usage: "Play music with the bot.", 15 | commandCategory: "music", 16 | cooldownTime: "10" 17 | }; -------------------------------------------------------------------------------- /commands/music/queue.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.queue(message, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "queue", 13 | aliases: [], 14 | usage: "Views the current queue in the server.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/radio.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.radio(message, args, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "radio", 13 | aliases: [], 14 | usage: "Plays music from the radio.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/radiostations.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.radioStations(message); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "radiostations", 13 | aliases: [], 14 | usage: "View what radio stations you can listen to.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/removesong.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.removesong(message, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "removesong", 13 | aliases: [], 14 | usage: "Removes a song from the queue.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/resume.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.resume(message, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "resume", 13 | aliases: [], 14 | usage: "Resume paused music.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/shuffle.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.shuffle(message, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "shuffle", 13 | aliases: [], 14 | usage: "Shuffles the songs in the queue.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/skip.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.skip(message, bot, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "skip", 13 | aliases: [], 14 | usage: "Skip the current playing song.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/stopradio.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.stopRadio(message, bot, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "stopradio", 13 | aliases: [], 14 | usage: "Stops the radio from playing music.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/music/volume.js: -------------------------------------------------------------------------------- 1 | const musicfuncs = require('../../handlers/music.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | musicfuncs.volume(message, args, funcs); 5 | } catch (e) { 6 | console.log(e); 7 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 8 | } 9 | }; 10 | 11 | module.exports.config = { 12 | name: "volume", 13 | aliases: [], 14 | usage: "Allows you to control the musics volume.", 15 | commandCategory: "music", 16 | cooldownTime: "0" 17 | }; -------------------------------------------------------------------------------- /commands/nsfw/4k.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/HighResNSFW.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "4k", 31 | aliases: [], 32 | usage: "Use this command to get a nsfw image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5', 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/amateur.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/Amateur.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "amateur", 31 | aliases: [], 32 | usage: "Use this command to get a nsfw image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/anal.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/anal.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(rc) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "anal", 31 | aliases: [], 32 | usage: "Use this command to an image with a hot mom.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/ass.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/ass.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "ass", 29 | aliases: [], 30 | usage: "Use this command to an image with a hot mom.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/asshole.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/Asshole.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "asshole", 31 | aliases: [], 32 | usage: "Use this command to get an asshole image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/bbw.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/BBW.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "bbw", 31 | aliases: [], 32 | usage: "Use this command to get a nsfw image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/bdsm.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/bdsm.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "bdsm", 31 | aliases: [], 32 | usage: "random image off r/bdsm.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/bikinis.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/bikinis.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "bikinis", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/bikinis.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/blonde.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/Blonde.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "blonde", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/Blonde.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/bottomless.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/Bottomless.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "bottomless", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/Bottomless.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/brunette.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/brunette.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "brunette", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/brunette.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/college.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/collegensfw.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "collegensfw", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/collegensfw.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/cosplay.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/nsfwcosplay.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "cosplay", 31 | aliases: [], 32 | usage: "Use this command to get a nsfw image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5', 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/curvy.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/curvy.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "curvy", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/curvy.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/dick.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/penis.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | if (!message.channel.nsfw) return funcs.send(`Cannot send nsfw in a sfw channel.`); 13 | const allowed = body.data.children; 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err); 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "dick", 30 | aliases: [], 31 | usage: "Use this command to get an image with a dick from r/penis.", 32 | commandCategory: "nsfw", 33 | cooldownTime: '5' 34 | }; -------------------------------------------------------------------------------- /commands/nsfw/echhi.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/ecchi.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "cosplay", 31 | aliases: [], 32 | usage: "Use this command to get a nsfw image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5', 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/furrynsfw.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/yiff.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "furrynsfw", 31 | aliases: [], 32 | usage: "Use this command to get a nsfw image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/gonewild.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/gonewild.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "gonewild", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/gonewild.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/milf.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/milf.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "milf", 31 | aliases: [], 32 | usage: "Use this command to an image with a milf.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/moreporn.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/gonewild.json") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | .setFooter("Image provided by r/gonewild"); 23 | message.channel.send(embed); 24 | } catch (err) { 25 | console.log(err); 26 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 27 | } 28 | }; 29 | 30 | module.exports.config = { 31 | name: "moreporn", 32 | aliases: [], 33 | usage: "Use this command to get even more porn.", 34 | commandCategory: "nsfw", 35 | cooldownTime: '5' 36 | }; -------------------------------------------------------------------------------- /commands/nsfw/nude.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/Nude_Selfie.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 15 | const allowed = body.data.children; 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "nude", 31 | aliases: [], 32 | usage: "Use this command to an image with a hot mom.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/onoff.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/OnOff.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "onoff", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/OnOff.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/petite.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/Petite.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 15 | const allowed = body.data.children; 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "petite", 31 | aliases: [], 32 | usage: "Use this command to get a petite image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/porn.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/nsfw.json") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "porn", 31 | aliases: [], 32 | usage: "Use this command to get a nsfw image.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/porngif.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return message.channel.send("Cannot send NSFW content in a SFW channel."); 5 | try { 6 | const { body } = await request 7 | .get('https://www.reddit.com/r/adultgifs.json?sort=top&t=week') 8 | .query({ 9 | limit: 800 10 | }); 11 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 12 | if (!allowed.length) return message.channel.send('It seems we are out of fresh memes!, Try again later.'); 13 | const randomnumber = Math.floor(Math.random() * allowed.length) 14 | let image = allowed[randomnumber].data.url 15 | let imagefix = image.replace(".gifv", ".gif") 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(imagefix) 21 | return message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err); 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "porngif", 30 | aliases: [], 31 | usage: "Use this command to search for a porn GIF.", 32 | commandCategory: "nsfw", 33 | cooldownTime: '5' 34 | }; -------------------------------------------------------------------------------- /commands/nsfw/public.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/naughtyinpublic.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "public", 31 | aliases: [], 32 | usage: "Use this command to an image with a hot mom.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/pussy.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/pussy.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "pussy", 31 | aliases: [], 32 | usage: "Use this command to an image with a hot mom.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/redheads.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/redheads.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "redheads", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/redheads.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/redtube.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Can't send NSFW content in a SFW channel.`); 5 | let thing = args.join(` `); 6 | if (!thing) return funcs.send(`Please enter something to search on redtube!`); 7 | try { 8 | const { 9 | body 10 | } = await request 11 | .get(`https://api.redtube.com/?data=redtube.Videos.searchVideos&output=json&search=${thing}&thumbsize=medium`); 12 | if (body.count == 0) return funcs.send(`No results found.`); 13 | let embed = new richEmbed() 14 | .setTitle(`Redtube`) 15 | .addField(`Searched for:`, thing) 16 | .addField(`Found:`, body.videos[0].video.title) 17 | .addField(`Duration:`, body.videos[0].video.duration) 18 | .addField(`Views:`, body.videos[0].video.views) 19 | .addField(`URL:`, body.videos[0].video.url) 20 | .setColor(funcs.rc()) 21 | .setThumbnail(body.videos[0].video.thumb); 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "redtube", 31 | aliases: [], 32 | usage: "Use this command to redtube something.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/snapchat.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/snapchatgw.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "snapchat", 31 | aliases: [], 32 | usage: "Use this command to an image with a hot mom.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/tattoos.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/altgonewild.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = body.data.children; 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | message.channel.send(embed); 21 | } catch (err) { 22 | console.log(err); 23 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 24 | } 25 | }; 26 | 27 | module.exports.config = { 28 | name: "tattoos", 29 | aliases: [], 30 | usage: "Use this command to an image off of r/altgonewild.", 31 | commandCategory: "nsfw", 32 | cooldownTime: '5' 33 | }; -------------------------------------------------------------------------------- /commands/nsfw/tits.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/tits.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 15 | const allowed = body.data.children; 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "tits", 31 | aliases: [], 32 | usage: "Use this command to an image with a hot mom.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/nsfw/uniform.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/MilitaryGoneWild.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | //const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | //if (!allowed.length) return send(`Can't find any other images right now, try again later.`); 14 | const allowed = body.data.children; 15 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 16 | const randomnumber = Math.floor(Math.random() * allowed.length); 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setTitle(allowed[randomnumber].data.title) 20 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 21 | .setImage(allowed[randomnumber].data.url) 22 | message.channel.send(embed); 23 | } catch (err) { 24 | console.log(err); 25 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 26 | } 27 | }; 28 | 29 | module.exports.config = { 30 | name: "uniform", 31 | aliases: [], 32 | usage: "Use this command to an image with a hot mom.", 33 | commandCategory: "nsfw", 34 | cooldownTime: '5' 35 | }; -------------------------------------------------------------------------------- /commands/owner/exec.js: -------------------------------------------------------------------------------- 1 | const { exec } = require('child_process'); 2 | module.exports.run = (bot, message, args) => { 3 | if (message.author.id !== "130515926117253122") return message.channel.send("Only bot owner can use this command."); 4 | const code = args.join(' '); 5 | if (!code) return message.channel.send('You provided no input silly dev.'); 6 | exec(code, (error, stdout, stderr) => { 7 | const input = `\`\`\`Bash\n${code}\n\`\`\``; 8 | if (error) { 9 | let output = `\`\`\`Bash\n${error}\n\`\`\``; 10 | message.channel.send(input, { 11 | split: true 12 | }); 13 | return message.channel.send(output, { 14 | split: true 15 | }); 16 | } else { 17 | const output = stderr || stdout; 18 | const output2 = `\`\`\`Bash\n${output}\n\`\`\``; 19 | message.channel.send(output2, { 20 | split: true 21 | }); 22 | } 23 | }); 24 | }; 25 | 26 | module.exports.config = { 27 | name: "exec", 28 | aliases: ["exec"], 29 | usage: "Don't use this unless you know what you're doing.", 30 | commandCategory: "owner", 31 | cooldownTime: '0' 32 | }; -------------------------------------------------------------------------------- /commands/owner/forceleave.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | if (message.author.id !== "130515926117253122" && message.author.id !== "307472480627326987") return message.channel.send("Only bot owner can use this command."); 3 | const guildToLeave = args.join('') 4 | const checkGuild = bot.guilds.get(guildToLeave); 5 | if (!checkGuild) return message.channel.send(`Im not in the guild with the ID: ${guildToLeave}`) 6 | try { 7 | if (message.guild.id === guildToLeave) return ('Please only use this command to force leave other guilds.') 8 | checkGuild.leave(); 9 | funcs.send(`I have left the guild with ID: ${guildToLeave}`) 10 | } catch (err) { 11 | console.log(err.stack) 12 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 13 | } 14 | }; 15 | 16 | module.exports.config = { 17 | name: "forceleave", 18 | aliases: [""], 19 | usage: "Forces the bot to leave a guild.", 20 | commandCategory: "owner", 21 | cooldownTime: '0' 22 | }; 23 | -------------------------------------------------------------------------------- /commands/owner/guildlist.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = (bot, message, args, funcs) => { 3 | if (message.author.id !== "130515926117253122" && message.author.id !== "307472480627326987") return message.channel.send("Only bot owner can use this command."); 4 | try { 5 | let guilds = bot.guilds.map(g => `Name: ${g.name}, Membercount: ${g.members.size}, ID: ${g.id}`).join('\n'); 6 | if (bot.guilds.size >= 1) { 7 | message.channel.send("```" + guilds + "```", { 8 | split: { 9 | prepend: "```", 10 | append: "```" 11 | } 12 | }); 13 | return; 14 | } 15 | let embed = new richEmbed() 16 | .setTimestamp() 17 | .setThumbnail(bot.user.avatarURL) 18 | .setFooter(`Total guilds: ${bot.guilds.size}`) 19 | .setColor(funcs.rc()) 20 | bot.guilds.forEach(guild => { 21 | embed.addField(`__**${guild.name}**__`, `Owner: ${guild.owner.user.tag}\nMembercount: ${guild.members.size}\nID: ${guild.id}`) 22 | }); 23 | message.channel.send(embed); 24 | } catch (e) { 25 | console.log(e); 26 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 27 | } 28 | }; 29 | 30 | module.exports.config = { 31 | name: "guildlist", 32 | aliases: [], 33 | usage: "Allows you to see what guilds the bot is in.", 34 | commandCategory: "owner", 35 | cooldownTime: '0' 36 | }; 37 | -------------------------------------------------------------------------------- /commands/owner/reboot.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | if (message.author.id !== "130515926117253122") return message.channel.send("Only bot owner can use this command."); 3 | process.exit(1); 4 | }; 5 | 6 | module.exports.config = { 7 | name: "reboot", 8 | aliases: [""], 9 | usage: "Hard reboots the bot [NEEDS TO USE PM2].", 10 | commandCategory: "owner", 11 | cooldownTime: '0' 12 | }; 13 | -------------------------------------------------------------------------------- /commands/owner/reload.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | module.exports.run = (bot, message, args, funcs) => { 3 | try { 4 | const groupName = args[0]; 5 | let commandName = args[1]; 6 | if (!groupName) return message.channel.send('***You need to provide a command category, stupid not having very nice ass and in the same time being an idiot.***'); 7 | if (!bot.commands.has(commandName) && !bot.aliases.has(commandName)) { 8 | return message.channel.send("***That command does not exist.***"); 9 | } else if (!bot.commands.has(commandName) && bot.aliases.has(commandName)) { 10 | commandName = bot.commands.get(bot.aliases.get(commandName)).config.name; 11 | } 12 | delete require.cache[require.resolve(`../${groupName}/${commandName}.js`)]; 13 | bot.commands.delete(commandName); 14 | const props = require(`../${groupName}/${commandName}.js`); 15 | bot.commands.set(commandName, props); 16 | message.channel.send(`***The command ${commandName} has been reloaded.***`); 17 | } catch (e) { 18 | console.log(e.message); 19 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 20 | } 21 | }; 22 | 23 | module.exports.config = { 24 | name: "reload", 25 | aliases: ["rd"], 26 | usage: "Reloads the bot.", 27 | commandCategory: "owner", 28 | cooldownTime: '0' 29 | }; -------------------------------------------------------------------------------- /commands/owner/resetgame.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | try { 3 | if (message.author.id !== "130515926117253122" && message.author.id !== "307472480627326987") return message.channel.send("Only bot owner can use this command."); 4 | bot.user.setPresence({ 5 | game: { 6 | name: `in ${bot.guilds.size} servers | c!help`, 7 | type: "PLAYING" 8 | } 9 | }); 10 | funcs.send(`Game reset!`); 11 | } catch (e) { 12 | console.error; 13 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 14 | } 15 | }; 16 | 17 | module.exports.config = { 18 | name: "resetgame", 19 | aliases: [], 20 | usage: "Resets the bots game back to default.", 21 | commandCategory: "owner", 22 | cooldownTime: '0' 23 | }; 24 | -------------------------------------------------------------------------------- /commands/owner/setgame.js: -------------------------------------------------------------------------------- 1 | module.exports.run = (bot, message, args, funcs) => { 2 | if (message.author.id !== "130515926117253122" && message.author.id !== "307472480627326987") return message.channel.send("Only bot owner can use this command."); 3 | try { 4 | bot.user.setPresence({ 5 | game: { 6 | name: args.join(` `) 7 | } 8 | }).catch((e) => { 9 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 10 | }); 11 | funcs.send(`Game set to ${args.join(` `)}.`); 12 | } catch (e) { 13 | console.error; 14 | funcs.send(`Oh no, an error occurred!\n${e.message}`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "setgame", 20 | aliases: [], 21 | usage: "Allows you to set what game the bots playing.", 22 | commandCategory: "owner", 23 | cooldownTime: '0' 24 | }; 25 | -------------------------------------------------------------------------------- /commands/reddit/aww.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/aww.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/aww"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | } catch (e) { 27 | console.error; 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "aww", 34 | aliases: [""], 35 | usage: "Use this command to get an image that makes you go aww from r/aww.", 36 | commandCategory: "reddit", 37 | cooldownTime: "5" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/comics.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/comics.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/comics"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | } catch (e) { 27 | console.error; 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "comics", 34 | aliases: [""], 35 | usage: "Use this command to get an image from r/comics.", 36 | commandCategory: "reddit", 37 | cooldownTime: "5" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/dog.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/dogpictures.json") 9 | .query({ 10 | limit: 800 11 | }); 12 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | .setFooter("Image provided by r/dogpictures"); 21 | message.channel.send(embed); 22 | } catch (e) { 23 | console.log(e); 24 | return funcs.send(`Oh no, an error occurred: \`${e.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "dog", 30 | aliases: [], 31 | usage: "Use this command to get a dog image from r/dogpictures.", 32 | cooldownTime: '5', 33 | commandCategory: "reddit" 34 | }; -------------------------------------------------------------------------------- /commands/reddit/fellowkids.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/FellowKids.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/FellowKids"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | } catch (e) { 27 | console.error; 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "fellowkids", 34 | aliases: [""], 35 | usage: "Use this command to get an image from r/FellowKids.", 36 | commandCategory: "reddit", 37 | cooldownTime: "5" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/funny.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/funny.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/funny"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return message.channel.send(`***Oh no, an error occurred: \`${err.message}\`. Try again later!***`); 25 | } 26 | } catch (e) { 27 | console.error(e); 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "funny", 34 | aliases: [], 35 | usage: "Use this command to get an image that makes you laugh from r/funny.", 36 | cooldownTime: '5', 37 | commandCategory: "reddit" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/gaming.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/gaming.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/gaming"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | } catch (e) { 27 | console.error; 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "gaming", 34 | aliases: [""], 35 | usage: "Use this command to get an image from r/gaming.", 36 | commandCategory: "reddit", 37 | cooldownTime: "5" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/gardening.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/gardening.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | .setFooter("Image provided by r/gardening"); 21 | message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err) 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "gardening", 30 | aliases: [], 31 | usage: "Use this command to get an image with gardening from r/gardening.", 32 | cooldownTime: '5', 33 | commandCategory: "reddit" 34 | }; -------------------------------------------------------------------------------- /commands/reddit/gatekeeping.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/gatekeeping.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/gatekeeping"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | } catch (e) { 27 | console.error; 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "gatekeeping", 34 | aliases: [""], 35 | usage: "Use this command to get an image from r/gatekeeping.", 36 | commandCategory: "reddit", 37 | cooldownTime: "5" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/meme.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/memes.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/memes"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return message.channel.send(`***Oh no, an error occurred: \`${e.message}\`. Try again later!***`); 25 | } 26 | } catch (err) { 27 | console.log(err); 28 | funcs.send(`Oh no! An error occurred! \`${err.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "meme", 34 | aliases: [], 35 | usage: "Use this command to get a meme.", 36 | cooldownTime: '5', 37 | commandCategory: "reddit" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/motivate.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/GetMotivated.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | .setFooter("Image provided by r/GetMotivated"); 21 | message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err); 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "motivate", 30 | aliases: [], 31 | usage: "Use this command to motivate somebody.", 32 | cooldownTime: '5', 33 | commandCategory: "reddit" 34 | }; -------------------------------------------------------------------------------- /commands/reddit/naiceinglish.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/engrish.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | .setFooter("Image provided by r/engrish"); 21 | message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err) 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "naiceinglish", 30 | aliases: [], 31 | usage: "Use this command to get an image with perfect english from r/engrish.", 32 | cooldownTime: '5', 33 | commandCategory: "reddit" 34 | }; -------------------------------------------------------------------------------- /commands/reddit/programmerhumor.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/ProgrammerHumor.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | .setFooter("Image provided by r/ProgrammerHumor"); 21 | message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err) 24 | return message.channel.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "programmerhumor", 30 | aliases: [], 31 | usage: "Use this command to get an image with programming humor from r/ProgrammerHumor.", 32 | commandCategory: "reddit", 33 | cooldownTime: '5', 34 | }; -------------------------------------------------------------------------------- /commands/reddit/showerthoughts.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/showerthoughts.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | .setFooter("Image provided by r/showerthoughts"); 21 | message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err) 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "showerthoughts", 30 | aliases: [], 31 | usage: "Use this command to get a shower thought.", 32 | cooldownTime: '5', 33 | commandCategory: "reddit" 34 | }; -------------------------------------------------------------------------------- /commands/reddit/wellthatsucks.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const { 6 | body 7 | } = await request 8 | .get("https://www.reddit.com/r/Wellthatsucks.json?sort=top&t=week") 9 | .query({ 10 | limit: 800 11 | }); 12 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 13 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 14 | const randomnumber = Math.floor(Math.random() * allowed.length); 15 | const embed = new richEmbed() 16 | .setColor(funcs.rc()) 17 | .setTitle(allowed[randomnumber].data.title) 18 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 19 | .setImage(allowed[randomnumber].data.url) 20 | .setFooter("Image provided by r/WellThatSucks"); 21 | message.channel.send(embed); 22 | } catch (err) { 23 | console.log(err) 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | }; 27 | 28 | module.exports.config = { 29 | name: "wellthatsucks", 30 | aliases: [], 31 | usage: "Use this command to get an image that sucks from r/WellThatSucks.", 32 | commandCategory: "reddit", 33 | cooldownTime: '5' 34 | }; -------------------------------------------------------------------------------- /commands/reddit/wholesome.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/wholesomememes.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/wholesomememes"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | } catch (e) { 27 | console.error; 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "wholesome", 34 | aliases: [""], 35 | usage: "Use this command to get an image from r/wholesomememes", 36 | commandCategory: "reddit", 37 | cooldownTime: "5" 38 | }; -------------------------------------------------------------------------------- /commands/reddit/woosh.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | try { 6 | const { 7 | body 8 | } = await request 9 | .get("https://www.reddit.com/r/woooosh.json?sort=top&t=week") 10 | .query({ 11 | limit: 800 12 | }); 13 | const allowed = message.channel.nsfw ? body.data.children : body.data.children.filter(post => !post.data.over_18); 14 | if (!allowed.length) return funcs.send(`Can't find any other images right now, try again later.`); 15 | const randomnumber = Math.floor(Math.random() * allowed.length); 16 | const embed = new richEmbed() 17 | .setColor(funcs.rc()) 18 | .setTitle(allowed[randomnumber].data.title) 19 | .setDescription("Posted by: " + allowed[randomnumber].data.author) 20 | .setImage(allowed[randomnumber].data.url) 21 | .setFooter("Image provided by r/woooosh"); 22 | message.channel.send(embed); 23 | } catch (e) { 24 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 25 | } 26 | } catch (e) { 27 | console.error; 28 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 29 | } 30 | }; 31 | 32 | module.exports.config = { 33 | name: "woosh", 34 | aliases: [""], 35 | usage: "Use this command to get an image that makes you go aww from r/woooosh.", 36 | commandCategory: "reddit", 37 | cooldownTime: "5" 38 | }; -------------------------------------------------------------------------------- /commands/roleplay/bite.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to bite!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can bite yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://i.pinimg.com/originals/a4/30/3c/a4303c3a2939c8075832e05a91d9076c.gif") 9 | .setTitle(`${whotto.user.username}, ${message.author.username} has bitten you!`) 10 | .setColor(funcs.rc()); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "bite", 20 | aliases: [], 21 | usage: "Use this command to bite somebody.", 22 | commandCategory: "roleplay", 23 | cooldownTime: '5' 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/crush.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to crush!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can have a crush on yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://68.media.tumblr.com/4385f81b08e9a3377f0ef64e4e974735/tumblr_o97ertfVfU1vp16bjo1_500.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${whotto.user.username}, ${message.author.username} has a crush on you uwu owo`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "crush", 20 | aliases: [], 21 | usage: "Use this command to have a crush on somebody.", 22 | commandCategory: "roleplay", 23 | cooldownTime: '5' 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/cuddle.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to cuddle!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can cuddle yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://media.giphy.com/media/nTeeb8thSiS0U/giphy.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${whotto.user.username}, you got a cuddle from ${message.author.username}, uwu owo.`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "cuddle", 20 | aliases: [], 21 | usage: "Use this command to cuddle somebody.", 22 | commandCategory: "roleplay", 23 | cooldownTime: '5' 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/dropkick.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whoto = message.mentions.members.first(); 5 | if (!whoto) return funcs.send(`Please mention somebody to dropkick..`); 6 | const embed = new richEmbed() 7 | .setTitle("Drop Kicked") 8 | .setDescription(`${whoto.user.username}, you got a drop kick from ${message.author.username}!`) 9 | .setColor(funcs.rc()) 10 | .setImage("https://media1.tenor.com/images/a72eff6ea423b438178defb24d613e46/tenor.gif?itemid=9412329") 11 | .setTimestamp(); 12 | message.channel.send(embed); 13 | } catch (err) { 14 | console.log(err) 15 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 16 | } 17 | }; 18 | 19 | module.exports.config = { 20 | name: "dropkick", 21 | aliases: [], 22 | usage: "Use this command to dropkick somebody.", 23 | cooldownTime: '5', 24 | commandCategory: "roleplay" 25 | }; -------------------------------------------------------------------------------- /commands/roleplay/fitstbump.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to fistbump!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can fistbump yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://media.giphy.com/media/hfYnqeqVeO4pO/giphy.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${message.author.username} fist bumped ${whotto.user.username}!`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "fistbump", 20 | aliases: [], 21 | usage: "Use this command to fistbump somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/highfive.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to highfive!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can highfive yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://media.giphy.com/media/l0K4b2JSocmgkOpCU/giphy.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${message.author.username} high-fived ${whotto.user.username}!`); 11 | message.channel.send(embed); 12 | } catch (e) { 13 | console.error; 14 | funcs.send(`Oh no! An error occurred! \`${e.message}\`.`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "highfive", 20 | aliases: [], 21 | usage: "Use this command to highfive somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/holdhands.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to kiss!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Please mention somebody to hold their hands!`); 7 | let embed = new richEmbed() 8 | .setImage("https://media1.tenor.com/images/47d18b56a850217a46b517da4325d132/tenor.gif?itemid=11496625") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${whotto.user.username}, ${message.author.username} held your hands uwu owo.`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "holdhands", 20 | aliases: [], 21 | usage: "Use this command to hold somebody's hands.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/hug.js: -------------------------------------------------------------------------------- 1 | const { richEmbed} = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to hug!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can hug yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://68.media.tumblr.com/4385f81b08e9a3377f0ef64e4e974735/tumblr_o97ertfVfU1vp16bjo1_500.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${whotto.user.username}, you got a hug from ${message.author.username}, uwu owo.`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "hug", 20 | aliases: [], 21 | usage: "Use this command to hug somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/kiss.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | let whotto = message.mentions.members.first(); 6 | if (!whotto) return funcs.send(`Please mention somebody to kiss!`); 7 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can kiss yourself..`); 8 | let embed = new richEmbed() 9 | .setImage("https://otakustreintaneras.files.wordpress.com/2017/03/tumblr_ol4thvqn7f1twgfw0o4_500.gif") 10 | .setColor(funcs.rc()) 11 | .setTitle(`${whotto.user.username}, you got a kiss from ${message.author.username}, uwu owo.`); 12 | message.channel.send(embed); 13 | } catch (err) { 14 | console.log(err) 15 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 16 | } 17 | }; 18 | 19 | module.exports.config = { 20 | name: "kiss", 21 | aliases: [], 22 | usage: "Use this command to kiss somebody.", 23 | cooldownTime: '5', 24 | commandCategory: "roleplay" 25 | }; -------------------------------------------------------------------------------- /commands/roleplay/pat.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to pat!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can pat yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://media.giphy.com/media/ARSp9T7wwxNcs/giphy.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${whotto.user.username}, you got patted by ${message.author.username}, uwu owo.`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "pat", 20 | aliases: [], 21 | usage: "Use this command to pat somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/poke.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to poke!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you would want to poke yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://thumbs.gfycat.com/FastCheerfulDolphin-small.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${whotto.user.username}, you got poked by ${message.author.username}.`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "poke", 20 | aliases: [], 21 | usage: "Use this command to poke somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/punch.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to punch!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you would want to punch yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://media.giphy.com/media/fO1c8eUlcx2bS/giphy.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`Ouch! ${whotto.user.username}, you got punched by ${message.author.username}.`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "punch", 20 | aliases: [], 21 | usage: "Use this command to punch somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/stare.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to stare at!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you can stare at yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://i.gifer.com/OFLD.gif") 9 | .setTitle(`${whotto.user.username}, ${message.author.username} is staring at you..`) 10 | .setColor(funcs.rc()); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "stare", 20 | aliases: [], 21 | usage: "Use this command to stare at somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/tackle.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to tackle!`); 6 | if (whotto.id == message.author.id) return funcs.send(`Ummm.. I am not sure if you would want to tackle yourself..`); 7 | let embed = new richEmbed() 8 | .setImage("https://i.pinimg.com/originals/4e/29/b9/4e29b9c52638e8114c14f7e55cef24a3.gif") 9 | .setColor(funcs.rc()) 10 | .setTitle(`${whotto.user.username}, you got tackled by ${message.author.username}.`); 11 | message.channel.send(embed); 12 | } catch (err) { 13 | console.log(err) 14 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 15 | } 16 | }; 17 | 18 | module.exports.config = { 19 | name: "tackle", 20 | aliases: [], 21 | usage: "Use this command to tackle somebody.", 22 | cooldownTime: '5', 23 | commandCategory: "roleplay" 24 | }; -------------------------------------------------------------------------------- /commands/roleplay/wave.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require("discord.js"); 2 | module.exports.run = async (bot, message, args, funcs) => { 3 | try { 4 | let whotto = message.mentions.members.first(); 5 | if (!whotto) return funcs.send(`Please mention somebody to wave at!`); 6 | if (whotto.id == message.author.id) 7 | return funcs.send(`Ummm.. I am not sure if you can wave at yourself..`); 8 | let embed = new richEmbed() 9 | .setImage("https://media.tenor.com/images/73ce6a152fdf3fa2645f6153c646c9b7/tenor.gif") 10 | .setTitle(`${whotto.user.username}, ${message.author.username} waved at you!`) 11 | .setColor(funcs.rc()); 12 | message.channel.send(embed); 13 | } catch (err) { 14 | console.log(err) 15 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 16 | } 17 | }; 18 | 19 | module.exports.config = { 20 | name: "wave", 21 | aliases: [], 22 | usage: "Use this command to wave at somebody.", 23 | cooldownTime: '5', 24 | commandCategory: "roleplay" 25 | }; -------------------------------------------------------------------------------- /commands/search/mdn.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | try { 5 | const query = args.join(" "); 6 | const { 7 | body 8 | } = await request 9 | .get('https://developer.mozilla.org/en-US/search.json') 10 | .query({ 11 | q: query, 12 | locale: 'en-US', 13 | highlight: false 14 | }); 15 | if (!body.documents.length) return funcs.send('Could not find any results.'); 16 | const data = body.documents[0]; 17 | const embed = new richEmbed() 18 | .setColor(funcs.rc()) 19 | .setAuthor('Mozilla Developer Network', 'https://i.imgur.com/DFGXabG.png', 'https://developer.mozilla.org/') 20 | .setURL(data.url) 21 | .setTitle(data.title) 22 | .setDescription(data.excerpt); 23 | return message.channel.send(embed); 24 | } catch (err) { 25 | if (err.status === 404) return msg.say('Could not find any results.'); 26 | console.log(err); 27 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 28 | } 29 | }; 30 | 31 | module.exports.config = { 32 | name: "mdn", 33 | aliases: [''], 34 | usage: "Search mdn.", 35 | commandCategory: "search", 36 | cooldownTime: "5" 37 | }; -------------------------------------------------------------------------------- /commands/search/wiki.js: -------------------------------------------------------------------------------- 1 | const { richEmbed } = require('discord.js'); 2 | const request = require('node-superfetch'); 3 | module.exports.run = async (bot, message, args, funcs) => { 4 | if (!message.channel.nsfw) return funcs.send(`Cannot send NSFW content in a SFW channel.`); 5 | try { 6 | const query = args.join(' '); 7 | const { body } = await request 8 | .get('https://en.wikipedia.org/w/api.php') 9 | .query({ 10 | action: 'query', 11 | prop: 'extracts', 12 | format: 'json', 13 | titles: query, 14 | exintro: '', 15 | explaintext: '', 16 | redirects: '', 17 | formatversion: 2 18 | }); 19 | if (body.query.pages[0].missing) return funcs.send('No Results found.'); 20 | const embed = new richEmbed() 21 | .setColor(funcs.rc()) 22 | .setTitle(body.query.pages[0].title) 23 | .setAuthor('Wikipedia', 'https://i.imgur.com/a4eeEhh.png') 24 | .setDescription(body.query.pages[0].extract.substr(0, 2000).replace(/[\n]/g, '\n\n')); 25 | return message.channel.send(embed); 26 | } catch (err) { 27 | if (err.status === 404) return msg.say('Could not find any results.'); 28 | console.log(err); 29 | return funcs.send(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); 30 | } 31 | }; 32 | 33 | module.exports.config = { 34 | name: "wikipedia", 35 | aliases: ['wiki'], 36 | usage: "Searchs wikipedia for your query.", 37 | commandCategory: "search", 38 | cooldownTime: "0" 39 | }; 40 | -------------------------------------------------------------------------------- /events/guild/guildCreate.js: -------------------------------------------------------------------------------- 1 | const create = require('../../handlers/addDbEntry'); 2 | 3 | module.exports = async (bot, guild) => { 4 | try { 5 | const guildId = guild.id; 6 | await create.addDbEntry(guildId); 7 | console.log(`The Guild ID: ${guild.id} has been writen to the db.`); 8 | bot.channels.get(`628619189795422209`).send(`Bot has been invited to a new server!\nName: ${guild.name}\nID: ${guild.id}\nOwner: ${guild.owner.displayName}\nMembercount: ${guild.memberCount}`); 9 | if (guildId === '264445053596991498') return; 10 | if (guildId === '110373943822540800') return; 11 | guild.owner.user.send(`***Hey there! Thanks for inviting Corius to your server. The default prefix is "c!". We also have a website and a help command for documentation! Enjoy Corius. https://corius.site/.***`).catch(() => console.log('Failed to dm guild owner')); 12 | } catch (err) { 13 | console.log(err); 14 | } 15 | }; -------------------------------------------------------------------------------- /events/guild/guildMemberRemove.js: -------------------------------------------------------------------------------- 1 | const memLeavefuncs = require('./../../handlers/memberleave.js'); 2 | const { dbConnect } = require('./../../handlers/dbConnection.js'); 3 | 4 | let con; 5 | con = dbConnect(); 6 | 7 | module.exports = async (bot, member) => { 8 | con.query(`SELECT gwls.leaveMessageEnabled, gwls.leaveMessage, gwls.leaveChannel, gde.events, gs.rolePersistEnabled FROM guildWLSystem as gwls LEFT JOIN guildDisabledSettings as gde ON gde.guildId = gwls.guildId LEFT JOIN guildSettings as gs ON gs.guildId = gwls.guildId WHERE gwls.guildId ="${member.guild.id}"`, (e, row) => { 9 | row = row[0]; 10 | if (row.rolePersistEnabled === 'true') { 11 | con.query(`SELECT * FROM guildRolePersist WHERE guildId ="${member.guild.id}" AND userId ="${member.id}"`, (e, roles) => { 12 | memLeavefuncs.rolePersist(roles, member); 13 | }); 14 | } 15 | if (row.leaveMessageEnabled === 'true') { 16 | memLeavefuncs.guildLeaveMessage(bot, row, member); 17 | } 18 | }); 19 | }; -------------------------------------------------------------------------------- /events/guild/voiceStateUpdate.js: -------------------------------------------------------------------------------- 1 | module.exports = (bot, oldMember, newMember) => { 2 | let newUserChannel = newMember.voiceChannel 3 | let oldUserChannel = oldMember.voiceChannel 4 | const GuildCheck = bot.channels.get(oldMember.voiceChannelID); 5 | if (GuildCheck) { 6 | if (oldUserChannel !== undefined && oldUserChannel !== newUserChannel) { 7 | if (oldUserChannel.members.size === 1) { 8 | GuildCheck.leave(); 9 | } 10 | } 11 | } 12 | }; -------------------------------------------------------------------------------- /handlers/command.js: -------------------------------------------------------------------------------- 1 | const { readdirSync } = require("fs"); 2 | const funcs = require("./funcs.js"); 3 | const getParent = new funcs().getParent; 4 | 5 | module.exports = bot => { 6 | const load = dirs => { 7 | const commands = readdirSync(`../commands/${dirs}`).filter(d => 8 | d.endsWith(".js") 9 | ); 10 | for (let file of commands) { 11 | const pull = require(`../commands/${dirs}/${file}`); 12 | try { 13 | bot.commands.set(pull.config.name, pull); 14 | bot.usage.set(pull.config.name, pull.config.usage); 15 | bot.cooldownTime.set(pull.config.name, pull.config.cooldownTime); 16 | pull.config.aliases.forEach(alias => { 17 | bot.aliases.set(alias, pull.config.name); 18 | }); 19 | } catch (err) { 20 | console.log(`Failed to load command: ${file} Error: ${err.message}`); 21 | } 22 | //pull.config.category = getParent(pull.config.name); 23 | } 24 | }; 25 | ["canvas", "leveling", "economy", "fun", "info", "miscellaneous", "moderation", "music", "nsfw", "owner", "reddit", "roleplay", "search"].forEach(x => load(x)); 26 | }; 27 | -------------------------------------------------------------------------------- /handlers/dbConnection.js: -------------------------------------------------------------------------------- 1 | const mysql = require('mysql'); 2 | const con = mysql.createConnection({ 3 | host: 'Your db hosts ip', 4 | port: '3306', 5 | database: 'database name', 6 | user: 'database user', 7 | password: 'database password' 8 | }); 9 | 10 | con.connect(function (err) { 11 | if (err) { 12 | console.log(`Db failed to connect Ouput:${err.message}`); 13 | setTimeout(con.connect, 2000); 14 | } 15 | }); 16 | 17 | con.on('error', (err) => { 18 | if (err.code === 'PROTOCOL_CONNECTION_LOST') { 19 | console.log('DB disconnected attempting reconnection') 20 | con.connect((err) => { 21 | if (err) throw err; 22 | console.log('DB reconnected!') 23 | }); 24 | } else { 25 | throw err; 26 | } 27 | }) 28 | con.on('connect', () => { 29 | console.log(`Connected!`) 30 | }) 31 | 32 | module.exports = { 33 | dbConnect: () => { 34 | return con 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /handlers/error.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | disconnect: () => { 3 | console.warn('Disconnected!'); 4 | }, 5 | reconnecting: () => { 6 | console.log("Bot reconnecting..."); 7 | }, 8 | warn: (err) => { 9 | console.warn('[WARNING]', err); 10 | }, 11 | error: (err) => { 12 | console.error(err.message); 13 | }, 14 | DiscordAPIError: (err) => { 15 | console.log('[DiscordAPIError]', err); 16 | }, 17 | uncaughtException: (err) => { 18 | console.error(`[uncaughtException] ${err.stack}`); 19 | process.exit(1); 20 | }, 21 | unhandledRejection: (err, promise) => { 22 | console.log('[unhandledRejection]', `Reason: ${err.stack}`); 23 | }, 24 | }; -------------------------------------------------------------------------------- /handlers/event.js: -------------------------------------------------------------------------------- 1 | const { readdirSync } = require('fs'); 2 | module.exports = (bot) => { 3 | const load = dirs => { 4 | const events = readdirSync(`../events/${dirs}`).filter(d => d.endsWith('.js')); 5 | for (let file of events) { 6 | let eName = file.split('.')[0]; 7 | const evt = require(`../events/${dirs}/${file}`); 8 | bot.on(eName, evt.bind(null, bot)); 9 | } 10 | }; 11 | ['client', 'guild'].forEach(x => load(x)); 12 | }; 13 | -------------------------------------------------------------------------------- /handlers/funcs.js: -------------------------------------------------------------------------------- 1 | function Funcs(message) { 2 | 3 | //# Functions 4 | 5 | this.send = (textToSend, x, timeToDelete) => { 6 | message.channel.send(`**__${textToSend}__**`).then(m => { 7 | if (x === true) { 8 | m.react("❌"); 9 | } else if (x === false) { 10 | m.react("✅"); 11 | } else { 12 | 13 | } 14 | if (timeToDelete >= 1) { 15 | m.delete(timeToDelete); 16 | } 17 | }); 18 | }; 19 | 20 | this.getParent = command => { 21 | const groups = ["fun", "miscellaneous"]; 22 | 23 | groups.forEach(async group => { 24 | const ffile = async () => { 25 | return require(`./../../commands/${group}/${command}`); 26 | }; 27 | const file = await ffile().catch((err) => console.log(err)); 28 | if (file) { 29 | return group; 30 | } else { 31 | return; 32 | } 33 | return file; 34 | }); 35 | }; 36 | 37 | this.trimArray = (arr, maxLen = 10) => { 38 | if (arr.length > maxLen) { 39 | const len = arr.length - maxLen; 40 | arr = arr.slice(0, maxLen); 41 | arr.push(`${len} more...`); 42 | } 43 | return arr; 44 | } 45 | 46 | //# Variables 47 | 48 | this.rc = () => { 49 | return require("randomcolor")({ 50 | alpha: 5 51 | }); 52 | }; 53 | 54 | } 55 | 56 | module.exports = Funcs; 57 | -------------------------------------------------------------------------------- /handlers/memberleave.js: -------------------------------------------------------------------------------- 1 | const { dbConnect } = require('./dbConnection.js'); 2 | 3 | let con; 4 | con = dbConnect(); 5 | 6 | module.exports = { 7 | //removeUserFromDB: () => { 8 | // May be needed later for now just gonna comment it 9 | // }, 10 | rolePersist: (roles, member) => { 11 | if (member.roles.size == 0) return; 12 | let roles1 = member.roles.filter(r => r.position < member.guild.me.highestRole.position).map(r => r.name).join("¶"); 13 | con.query(`SELECT * FROM guildRolePersist WHERE guildId ="${member.guild.id}" AND userId ="${member.id}"`, (e, row1) => { 14 | if (row1.length >= 1) { 15 | con.query(`UPDATE guildRolePersist SET userRoles = "${roles1}" WHERE guildId = ${member.guild.id} AND userId = ${member.id}`); 16 | } else { 17 | con.query(`INSERT INTO guildRolePersist (guildId, userId, userRoles) VALUES (?, ?, ?)`, [member.guild.id, member.id, roles1]); 18 | } 19 | }); 20 | }, 21 | guildLeaveMessage: (bot, row, member) => { 22 | let lMessage = row.leaveMessage.replace(/\%NAME\%/g, member.user.username).replace(/\%GUILDNAME\%/g, member.guild.name).replace(/\%MEMBERCOUNT\%/g, member.guild.members.size); 23 | let lChannel = member.guild.channels.find(c => c.name == row.leaveChannel); 24 | if (!lChannel) return; 25 | bot.channels.get(lChannel.id).send(`**__${lMessage}__**`); 26 | } 27 | }; -------------------------------------------------------------------------------- /handlers/miscfuncs.js: -------------------------------------------------------------------------------- 1 | const yes = ['yes', 'y', 'ye', 'yeah', 'yup', 'yea', 'ya']; 2 | const no = ['no', 'n', 'nah', 'nope', 'nop']; 3 | 4 | module.exports = { 5 | shuffle: (array) => { 6 | const arr = array.slice(0); 7 | for (let i = arr.length - 1; i >= 0; i--) { 8 | const j = Math.floor(Math.random() * (i + 1)); 9 | const temp = arr[i]; 10 | arr[i] = arr[j]; 11 | arr[j] = temp; 12 | } 13 | return arr; 14 | 15 | }, 16 | verify: async (channel, user, time = 30000) => { 17 | const filter = res => { 18 | const value = res.content.toLowerCase(); 19 | return res.author.id === user.id && (yes.includes(value) || no.includes(value)); 20 | }; 21 | const verify = await channel.awaitMessages(filter, { 22 | max: 1, 23 | time 24 | }); 25 | if (!verify.size) return 0; 26 | const choice = verify.first().content.toLowerCase(); 27 | if (yes.includes(choice)) return true; 28 | if (no.includes(choice)) return false; 29 | return false; 30 | } 31 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lightbulb", 3 | "version": "1.0.0", 4 | "description": "discord bot", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [ 10 | "bot" 11 | ], 12 | "author": "Katrix", 13 | "license": "ISC", 14 | "dependencies": { 15 | "canvas": "^2.6.1", 16 | "canvas-constructor": "^3.2.0", 17 | "cheerio": "^1.0.0-rc.3", 18 | "discord.js": "^11.6.4", 19 | "express": "^4.17.1", 20 | "fs": "0.0.1-security", 21 | "fs-nextra": "^0.3.8", 22 | "got": "^9.6.0", 23 | "install": "^0.13.0", 24 | "jshint": "^2.12.0", 25 | "mathjs": "^7.5.1", 26 | "moment": "^2.27.0", 27 | "ms": "^2.1.1", 28 | "mysql": "^2.18.1", 29 | "node-fetch": "^2.6.1", 30 | "node-gyp": "^5.1.1", 31 | "node-pre-gyp": "^0.13.0", 32 | "node-superfetch": "^0.1.10", 33 | "opusscript": "0.0.7", 34 | "randomcolor": "^0.5.4", 35 | "sqlite": "^3.0.6", 36 | "ytdl-core": "^2.1.7", 37 | "ytdl-core-discord": "^1.2.1" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /utils/activity.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "text": "Gwen Stefani", 3 | "type": "LISTENING" 4 | }, 5 | { 6 | "text": "Self Learning", 7 | "type": "Playing" 8 | }, 9 | { 10 | "text": "The Last Of Us Part II", 11 | "type": "Playing" 12 | }, 13 | { 14 | "text": "with your heart", 15 | "type": "Playing" 16 | }, 17 | { 18 | "text": "anime", 19 | "type": "WATCHING" 20 | }, 21 | { 22 | "text": "with other bots", 23 | "type": "PLAYING" 24 | }, 25 | { 26 | "text": "Visual Studio Code", 27 | "type": "PLAYING" 28 | }, 29 | { 30 | "text": "Phillip J. Fry Code", 31 | "type": "WATCHING" 32 | } 33 | ] -------------------------------------------------------------------------------- /utils/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "Bots token", 3 | "prefix": "c!", 4 | "dblKey": "Key for posting bot stats to top.gg", 5 | "botsggkey": "key for posting to bots stats", 6 | "OPENWEATHERMAP_KEY": "Weather api key", 7 | "GITHUB_USER": "Github username", 8 | "GITHUB_PASS": "github pass" 9 | } -------------------------------------------------------------------------------- /utils/radiostations.json: -------------------------------------------------------------------------------- 1 | { 2 | "noisefm": { 3 | "name": "Noise FM", 4 | "url": "https://play.sas-media.ru/play" 5 | }, 6 | "freshfm": { 7 | "name": "103.1 Fresh FM", 8 | "url": "https://live.leanstream.co//CFHKFM?args=web_01%22,%22mp3%22:%22https:\/\/live.leanstream.co\/CFHKFM-MP3?args=web_02" 9 | }, 10 | "classicrock": { 11 | "name": "Classic Rock", 12 | "url": "http://mp3channels.webradio.rockantenne.de/classic-perlen" 13 | }, 14 | "country": { 15 | "name": "Country", 16 | "url": "http://live.leanstream.co/CKDKFM" 17 | }, 18 | "hits": { 19 | "name": "Todays Hits", 20 | "url": "http://19353.live.streamtheworld.com/977_HITS.mp3" 21 | }, 22 | "vegas": { 23 | "name": "Vibe of Vegas", 24 | "url": "http://icyrelay.181.fm/181-vibe_128k.mp3" 25 | }, 26 | "glee": { 27 | "name": "Glee Radio", 28 | "url": "http://bigrradio-edge1.cdnstream.com/5112_128" 29 | }, 30 | "hiphop": { 31 | "name": "Hip Hop", 32 | "url": "http://listen.one.hiphop/live.mp3" 33 | }, 34 | "rap": { 35 | "name": "Rap", 36 | "url": "http://198.105.216.204:8146/stream/1/" 37 | } 38 | } --------------------------------------------------------------------------------