├── .github ├── FUNDING.yml └── dependabot.yml ├── .gitignore ├── README.md ├── config.js ├── package.json ├── shrinkwrap.yaml └── src ├── commands ├── Admin │ ├── add-role.js │ ├── clear.js │ ├── create-embed.js │ ├── findemoji.js │ ├── lock_channel.js │ ├── remove-role.js │ ├── role-list.js │ ├── strealemoji.js │ ├── ticket.js │ └── unlock_channel.js ├── Anti_swear │ ├── add.js │ ├── list.js │ └── remove.js ├── Backup │ ├── backup-json │ │ ├── 891916183467589632.json │ │ ├── 900702307426107392.json │ │ └── 900974932006141952.json │ ├── create-backup.js │ └── load-backup.js ├── Fun │ ├── 8ball.js │ ├── avs.js │ ├── bed.js │ ├── changemymind.js │ ├── clyde.js │ ├── delete.js │ ├── eject.js │ ├── emojify.js │ ├── fox.js │ ├── jail.js │ ├── joke.js │ ├── kiss.js │ ├── lovecalc.js │ ├── meme.js │ ├── nitro.js │ ├── owo.js │ ├── punch.js │ ├── qrcode.js │ ├── quote.js │ ├── slap.js │ ├── smug.js │ ├── spank.js │ ├── stonks.js │ ├── trash.js │ ├── wanted.js │ └── yt_comment.js ├── Games │ ├── akinator.js │ ├── rps.js │ └── tictactoe.js ├── Levels │ ├── add-role.js │ ├── leaderboard.js │ ├── list.js │ ├── rank.js │ └── remove-role.js ├── Misc │ ├── avatar.js │ ├── botInfo.js │ ├── emoji-list.js │ ├── ping.js │ ├── reaction.js │ ├── role-info.js │ ├── say.js │ ├── serverInfo.js │ └── userInfo.js ├── Moderation │ ├── ban.js │ ├── kick.js │ ├── mute.js │ ├── nuke.js │ ├── reset-warn.js │ ├── unmute.js │ ├── warn.js │ └── warnings.js ├── Owner │ ├── chat-all-owner-guild.js │ ├── emoji-list.js │ ├── eval.js │ ├── reload.js │ └── serverlist.js ├── Search │ ├── djsdosc.js │ ├── github.js │ ├── steam.js │ └── yt-search.js ├── Settings │ ├── set-auto.js │ ├── set-channel.js │ ├── set-message.js │ ├── set-prefix.js │ └── view-msg.js └── Utility │ ├── afk.js │ ├── embed.js │ ├── help.js │ ├── invite.js │ └── sudo.js ├── dashboard └── app.js ├── events └── Guild │ ├── Afk.js │ ├── Anti-swear.js │ ├── Bot-add-remove.js │ ├── Emit.js │ ├── Interaction.js │ ├── Level.js │ ├── Message.js │ ├── Music.js │ ├── Starboard.js │ ├── Welcome-leave.js │ └── level-role.js ├── handlers └── handler.js ├── index.js ├── interaction ├── buttons │ ├── Ticket │ │ ├── ticket-1.js │ │ ├── ticket-2.js │ │ ├── ticket-3.js │ │ ├── ticket-4.js │ │ ├── ticket-5.js │ │ └── ticket.js │ └── template.md ├── selects │ └── template.md └── slash │ ├── Admin │ ├── create-embed.js │ └── custom-cmd.js │ ├── Music │ ├── delQueue.js │ ├── getQueue.js │ ├── jump.js │ ├── lyrics.js │ ├── pause.js │ ├── play.js │ ├── repeat.js │ ├── resume.js │ ├── skip.js │ ├── stop.js │ └── volume.js │ ├── giveaway │ ├── g-drop.js │ ├── g-end.js │ ├── g-reroll.js │ └── g-start.js │ └── other │ ├── avatar.js │ ├── hastebin.js │ ├── ping.js │ ├── report.js │ └── ship.js └── structures ├── Client.js ├── Other ├── image.js └── options.js ├── SlashCommands.js ├── antiCrash.js ├── mongoose.js └── verifyConfig.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: ['https://dghbot.ddns.net','https://dblist.ddns.net'] 4 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "npm" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | json.sqlite 2 | data -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bot: { 3 | token: "", //Bot Token from https://discord.com/developers/applications 4 | prefix: "!", //Bot Prefix 5 | owners: ["740947753135243354", "767726828311543820"], //Bot Onwer ID 6 | maintenance: false, 7 | mongourl: 8 | "", //https://mongodb.com/cloud/atlas/register 9 | invite: 10 | "", //Link Invite Bot 11 | bot_add_description: 12 | "You've just added me to **{guild}**.\nThank you for adding me to your server", 13 | bot_remove_description: 14 | "You got me out on the **{guild}** server, sorry if there's a mistake on me" 15 | }, 16 | status: { 17 | stats: "", //Status Bot 18 | type: "", //Playing Bot 19 | name: "" //Status Playing 20 | }, 21 | dash: { 22 | secret: "", //SECRET Bot 23 | id: "", //ID Bot 24 | url: "" //URL 25 | }, 26 | server: { 27 | id: "", //Server ID 28 | invite: "https://discord.gg/3grkbgFCFs" //Server Support 29 | }, 30 | image: { 31 | welcome: 32 | "https://cdn.glitch.com/02e867ae-7c7c-4637-ace7-66ea251fe9d5%2Fwelcome.png?v=1613195262594", //Image WelcomeCard 33 | leave: 34 | "https://cdn.glitch.com/02e867ae-7c7c-4637-ace7-66ea251fe9d5%2Fwelcome.png?v=1613195262594", //Image LeaveCard 35 | level: 36 | "https://cdn.glitch.com/2337366e-e123-49db-827b-3e28e03e7910%2Fimages.jpeg?1623811398590", //Image LevelCard 37 | help: 38 | "https://media.discordapp.net/attachments/806082492498706442/900573349577633802/standard_1.gif", //Image Cmd Help.js 39 | guild_add: 40 | "https://cdn.discordapp.com/attachments/829696536396955649/856381256379400202/20210621_105311.jpg", //Image Guild Add 41 | guild_remove: "", 42 | leaderboard: 43 | "https://i.pinimg.com/736x/d1/00/7b/d1007b46e6175f49f53712f16e4f6a3c.jpg" //Image Leaderboard Card 44 | }, 45 | mod: { 46 | muted_defauld: "Muted", // bot will make Roles muted for members who got muted 47 | limit_warn: 3, //bot will kick member if it has 3 warns 48 | limit_muted: 5 //bot will kick member if it has 5 Muted 49 | }, 50 | logs: { 51 | boton: "", //Channel ID Bot Online 52 | botadd: "", //Channel ID Bot Add In Guild 53 | botdel: "", //Channel ID Bot Remove in Guild 54 | botreport: "", 55 | boterror: "" 56 | }, 57 | giveaway: { 58 | default: { 59 | storage: "./data/giveaways.json", 60 | default: { 61 | botsCanWin: false, 62 | embedColor: "#FF0000", 63 | embedColorEnd: "#FF0000", 64 | reaction: "882659092559196190" 65 | } 66 | } 67 | } 68 | }; 69 | 70 | //Don't Delete This Source Creation! 71 | //Made By Sintya & Fc Glitch 72 | //Owner Sintya 73 | //Developer Fc Glitch & Androz2091 74 | //My Github: Sintya4 75 | //My Developer Github: CODE-GLITCH & Androz2091 76 | //Join My Server: dgh-bot.ddns.net/dc 77 | //Is there a problem with our source? ask us! 78 | //Copyright 2021 © DGH BOT V3 79 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tungsted-accordion", 3 | "version": "1.0.0", 4 | "description": "- Made By Sintya - Edit By Sintya - Made on 12/5/2021 - All Cmd Working - Copyright 2021 - Github: Sintya4 - Discord Name: @么Sintya#0001 - Discord ID: 740947753135243354 - Source Github: [DGH BOT V3](https://github.com/Sintya4/PREMIUM-DGH-BOT-V3) - Dashboard: [Click](https://dgh-bot.ddns.net) - Bot Name: DGH BOT V3 - Support My server - Link: https://dgh-bot.ddns.net/dc - Owner: [👑] 么Sintya#0001 [@Sintya4](https://github.com/Sintya4)", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node src/index" 9 | }, 10 | "keywords": [], 11 | "engines": { 12 | "node": "16.x" 13 | }, 14 | "author": "", 15 | "license": "ISC", 16 | "dependencies": { 17 | "discord.js": "^13.2.0", 18 | "discord.js-akinator": "^3.3.0", 19 | "discord-yt-poster": "^3.1.2", 20 | "quickmongo": "^3.0.2", 21 | "moment": "^2.29.1", 22 | "humanize-duration": "^3.27.0", 23 | "canvas": "^2.8.0", 24 | "node-superfetch": "^0.2.3", 25 | "br": "git+https://github.com/Sintya4/discord-image-generation-v", 26 | "canvacord": "^5.2.3", 27 | "one-liner-joke": "^1.2.2", 28 | "something-random-on-discord": "^3.4.4", 29 | "https": "^1.0.0", 30 | "fs": "^0.0.2", 31 | "axios": "^0.24.0", 32 | "discord-xp": "^1.1.16", 33 | "util": "^0.12.4", 34 | "ms": "^2.1.3", 35 | "common-tags": "^1.8.0", 36 | "lodash": "^4.17.21", 37 | "quick.db": "^7.1.3", 38 | "merge-options": "^3.0.4", 39 | "events": "^3.3.0", 40 | "glob": "^7.1.7", 41 | "path": "^0.12.7", 42 | "express": "^4.17.1", 43 | "discord-giveaways": "^5.0.0", 44 | "node-fetch": "^2.6.1", 45 | "body-parser": "^1.19.0", 46 | "express-session": "^1.17.2", 47 | "http": "^0.0.0", 48 | "sourcebin_js": "^0.0.2", 49 | "discord-backup": "^3.0.1", 50 | "youtube-sr": "^4.1.6", 51 | "ytsr": "^3.5.3", 52 | "yt-search": "^2.10.0", 53 | "dblist.api": "^1.1.1", 54 | "@koenie06/discord.js-music": "^1.2.9", 55 | "discord-dashboard": "github:Sintya4/discord-dashboard", 56 | "dbd-capriham-theme": "github:Sintya4/dbd-capriham-theme" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /shrinkwrap.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | discord.js: 13.1.0 3 | packages: 4 | /@discordjs/builders/0.5.0: 5 | dependencies: 6 | '@sindresorhus/is': 4.0.1 7 | discord-api-types: 0.22.0 8 | ow: 0.27.0 9 | ts-mixer: 6.0.0 10 | tslib: 2.3.1 11 | dev: false 12 | engines: 13 | node: '>=14.0.0' 14 | npm: '>=7.0.0' 15 | resolution: 16 | integrity: sha512-HP5y4Rqw68o61Qv4qM5tVmDbWi4mdTFftqIOGRo33SNPpLJ1Ga3KEIR2ibKofkmsoQhEpLmopD1AZDs3cKpHuw== 17 | /@discordjs/collection/0.2.1: 18 | dev: false 19 | engines: 20 | node: '>=14.0.0' 21 | resolution: 22 | integrity: sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog== 23 | /@discordjs/form-data/3.0.1: 24 | dependencies: 25 | asynckit: 0.4.0 26 | combined-stream: 1.0.8 27 | mime-types: 2.1.32 28 | dev: false 29 | engines: 30 | node: '>= 6' 31 | resolution: 32 | integrity: sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg== 33 | /@sapphire/async-queue/1.1.4: 34 | dev: false 35 | engines: 36 | node: '>=14' 37 | npm: '>=6' 38 | resolution: 39 | integrity: sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA== 40 | /@sindresorhus/is/4.0.1: 41 | dev: false 42 | engines: 43 | node: '>=10' 44 | resolution: 45 | integrity: sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g== 46 | /@types/node/16.6.1: 47 | dev: false 48 | resolution: 49 | integrity: sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw== 50 | /@types/ws/7.4.7: 51 | dependencies: 52 | '@types/node': 16.6.1 53 | dev: false 54 | resolution: 55 | integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== 56 | /asynckit/0.4.0: 57 | dev: false 58 | resolution: 59 | integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= 60 | /callsites/3.1.0: 61 | dev: false 62 | engines: 63 | node: '>=6' 64 | resolution: 65 | integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 66 | /combined-stream/1.0.8: 67 | dependencies: 68 | delayed-stream: 1.0.0 69 | dev: false 70 | engines: 71 | node: '>= 0.8' 72 | resolution: 73 | integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 74 | /delayed-stream/1.0.0: 75 | dev: false 76 | engines: 77 | node: '>=0.4.0' 78 | resolution: 79 | integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 80 | /discord-api-types/0.22.0: 81 | dev: false 82 | engines: 83 | node: '>=12' 84 | resolution: 85 | integrity: sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg== 86 | /discord.js/13.1.0: 87 | dependencies: 88 | '@discordjs/builders': 0.5.0 89 | '@discordjs/collection': 0.2.1 90 | '@discordjs/form-data': 3.0.1 91 | '@sapphire/async-queue': 1.1.4 92 | '@types/ws': 7.4.7 93 | discord-api-types: 0.22.0 94 | node-fetch: 2.6.1 95 | ws: 7.5.3 96 | dev: false 97 | engines: 98 | node: '>=16.6.0' 99 | npm: '>=7.0.0' 100 | resolution: 101 | integrity: sha512-gxO4CXKdHpqA+WKG+f5RNnd3srTDj5uFJHgOathksDE90YNq/Qijkd2WlMgTTMS6AJoEnHxI7G9eDQHCuZ+xDA== 102 | /dot-prop/6.0.1: 103 | dependencies: 104 | is-obj: 2.0.0 105 | dev: false 106 | engines: 107 | node: '>=10' 108 | resolution: 109 | integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== 110 | /is-obj/2.0.0: 111 | dev: false 112 | engines: 113 | node: '>=8' 114 | resolution: 115 | integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 116 | /lodash.isequal/4.5.0: 117 | dev: false 118 | resolution: 119 | integrity: sha1-QVxEePK8wwEgwizhDtMib30+GOA= 120 | /mime-db/1.49.0: 121 | dev: false 122 | engines: 123 | node: '>= 0.6' 124 | resolution: 125 | integrity: sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== 126 | /mime-types/2.1.32: 127 | dependencies: 128 | mime-db: 1.49.0 129 | dev: false 130 | engines: 131 | node: '>= 0.6' 132 | resolution: 133 | integrity: sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== 134 | /node-fetch/2.6.1: 135 | dev: false 136 | engines: 137 | node: 4.x || >=6.0.0 138 | resolution: 139 | integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 140 | /ow/0.27.0: 141 | dependencies: 142 | '@sindresorhus/is': 4.0.1 143 | callsites: 3.1.0 144 | dot-prop: 6.0.1 145 | lodash.isequal: 4.5.0 146 | type-fest: 1.4.0 147 | vali-date: 1.0.0 148 | dev: false 149 | engines: 150 | node: '>=12' 151 | resolution: 152 | integrity: sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ== 153 | /ts-mixer/6.0.0: 154 | dev: false 155 | resolution: 156 | integrity: sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ== 157 | /tslib/2.3.1: 158 | dev: false 159 | resolution: 160 | integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 161 | /type-fest/1.4.0: 162 | dev: false 163 | engines: 164 | node: '>=10' 165 | resolution: 166 | integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== 167 | /vali-date/1.0.0: 168 | dev: false 169 | engines: 170 | node: '>=0.10.0' 171 | resolution: 172 | integrity: sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY= 173 | /ws/7.5.3: 174 | dev: false 175 | engines: 176 | node: '>=8.3.0' 177 | peerDependencies: 178 | bufferutil: ^4.0.1 179 | utf-8-validate: ^5.0.2 180 | resolution: 181 | integrity: sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== 182 | registry: 'https://registry.npmjs.org/' 183 | shrinkwrapMinorVersion: 9 184 | shrinkwrapVersion: 3 185 | specifiers: 186 | discord.js: ^13.0.1 187 | -------------------------------------------------------------------------------- /src/commands/Admin/add-role.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "addroleall", 3 | aliases: ["arall", "aroleall", "giveroleall"], 4 | description: "Add a role to all user of the current server", 5 | category: "admin", 6 | args: true, 7 | usage: "addroleall ", 8 | P_user: ["MANAGE_ROLES"], 9 | P_bot: ["MANAGE_ROLES"], 10 | run: async (client, message, args) => { 11 | const role = 12 | message.guild.roles.cache.find( 13 | role => role.name === args.join(" ").slice(1) 14 | ) || 15 | message.mentions.roles.first() || 16 | message.guild.roles.cache.get(args.join(" ").slice(1)); 17 | 18 | if (message.guild.me.roles.highest.comparePositionTo(role) < 0) { 19 | return client.send( 20 | `${await client.emoji("DGH_error")} My role is not high enough than **${ 21 | role.name 22 | }** role!`, 23 | { message } 24 | ); 25 | } 26 | 27 | if (message.member.roles.highest.comparePositionTo(role) < 0) { 28 | return client.send( 29 | `${await client.emoji("DGH_error")} Your role must be higher than **${ 30 | role.name 31 | }** role!`, 32 | { message } 33 | ); 34 | } 35 | 36 | if (!role) { 37 | return client.send( 38 | (await client.emoji("DGH_info")) + "Please provide a valid role", 39 | { message } 40 | ); 41 | } 42 | let type = new client.Discord.MessageActionRow().addComponents( 43 | new client.Discord.MessageButton() 44 | .setStyle("PRIMARY") 45 | .setLabel("Bots") 46 | .setCustomId("bot"), 47 | new client.Discord.MessageButton() 48 | .setStyle("PRIMARY") 49 | .setLabel("Members") 50 | .setCustomId("member") 51 | ); 52 | let embed = new client.Discord.MessageEmbed().setDescription( 53 | "Choose, the Roles are given to all types?" 54 | ); 55 | let msg = await message.channel.send({ 56 | embeds: [embed], 57 | components: [type] 58 | }); 59 | let filter = i => i.user.id === message.author.id; 60 | let collector = msg.createMessageComponentCollector({ 61 | filter 62 | }); 63 | collector.on("collect", async i => { 64 | if (i.customId === "member") { 65 | message.guild.members.cache 66 | .filter(member => !member.user.bot) 67 | .map(a => a.roles.add(role)); 68 | msg.delete(); 69 | return client.send( 70 | `${await client.emoji("DGH_success")} Successfully Added **${ 71 | role.name 72 | }** to Members`, 73 | { message } 74 | ); 75 | } 76 | if (i.customId === "bot") { 77 | message.guild.members.cache 78 | .filter(member => member.user.bot) 79 | .map(a => a.roles.add(role)); 80 | msg.delete(); 81 | return client.send( 82 | `${await client.emoji("DGH_success")} Successfully Added **${ 83 | role.name 84 | }** to Bots`, 85 | { message } 86 | ); 87 | } 88 | }); 89 | } 90 | }; 91 | -------------------------------------------------------------------------------- /src/commands/Admin/clear.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | module.exports = { 3 | name: "clear", 4 | aliases: ["purge"], 5 | category: "admin", 6 | P_bot: ["MANAGE_MESSAGES"], 7 | P_user: ["MANAGE_MESSAGES"], 8 | description: "Delete messages from the channel", 9 | run: async (client, message, args) => { 10 | await message.delete(); 11 | let amount = Number(args[0], 10) || parseInt(args[0]); 12 | if (isNaN(amount) || !Number.isInteger(amount)) { 13 | return client.send("Please enter a number of messages to purge.", { 14 | message 15 | }); 16 | } else if (!amount || amount < 2) { 17 | return client.send("Please enter a number of message between 2", { 18 | message 19 | }); 20 | } 21 | if (amount <= amount + 200) { 22 | if (Math.floor(amount / 100) % 100 === 0) { 23 | message.channel.bulkDelete(amount, true).then(m => { 24 | client.send(`✅ Cleared **${m.size}**/**${amount}** messages!`, { 25 | timeout: 4000, 26 | message 27 | }); 28 | }); 29 | } else if (Math.floor(amount / 100) % 100) { 30 | setTimeout(() => { 31 | for (let i = 0; i < Math.floor(amount / 100) % 100; i++) { 32 | message.channel.bulkDelete(100, true); 33 | } 34 | }, 1000); 35 | setTimeout(() => { 36 | client.send(`✅ Cleared **${amount}**/**${amount}** messages!`, { 37 | timeout: 4000, 38 | message 39 | }); 40 | }, 3000); 41 | } else if (amount % 100 === 0) { 42 | message.channel.bulkDelete(amount, true).then(m => { 43 | client.send(`✅ Cleared **${m.size}**/**${amount}** messages!`, { 44 | timeout: 4000, 45 | message 46 | }); 47 | }); 48 | } else { 49 | let s = await message.channel.bulkDelete(amount % 100, true); 50 | client.send(`✅ Cleared **${s.size}**/**${amount}** messages!`, { 51 | timeout: 4000, 52 | message 53 | }); 54 | } 55 | } 56 | } 57 | }; 58 | -------------------------------------------------------------------------------- /src/commands/Admin/create-embed.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "create-embed", 5 | category: "admin", 6 | description: "create a embed a command in a certain channel. supports embed!", 7 | P_user: ["MANAGE_MESSAGES"], 8 | P_bot: ["EMBED_LINKS"], 9 | run: async (client, message, args) => { 10 | message.delete(); 11 | let channel = message.mentions.channels.first(); 12 | if (!channel) 13 | return message.reply({ 14 | embeds: [ 15 | new Discord.MessageEmbed() 16 | .setColor("GOLD") 17 | .setDescription( 18 | "Please provide a **valid** channel to send the embed" 19 | ) 20 | ] 21 | }); 22 | client.ops.embedder(message, channel); 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /src/commands/Admin/findemoji.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | name: "findemoji", 6 | aliases: ["finde"], 7 | category: "admin", 8 | description: "Steals Emoji from Other Servers to ur Server.", 9 | P_bot: ["MANAGE_EMOJIS"], 10 | P_user: ["MANAGE_EMOJIS"], 11 | 12 | run: async (client, message, args) => { 13 | let pages = new client.Discord.MessageActionRow().addComponents( 14 | new client.Discord.MessageButton() 15 | .setStyle("PRIMARY") 16 | .setLabel("❮ BACK") 17 | .setCustomId("previous"), 18 | new client.Discord.MessageButton() 19 | .setStyle("PRIMARY") 20 | .setLabel("NEXT ❯") 21 | .setCustomId("next"), 22 | new client.Discord.MessageButton() 23 | .setStyle("SUCCESS") 24 | .setLabel("ADD ✓") 25 | .setCustomId("add"), 26 | new client.Discord.MessageButton() 27 | .setStyle("DANGER") 28 | .setLabel("CANCEL ❌") 29 | .setCustomId("cancel") 30 | ); 31 | let emojis = await fetch("https://emoji.gg/api/").then(res => res.json()); 32 | const q = args 33 | .join(" ") 34 | .toLowerCase() 35 | .trim() 36 | .split(" ") 37 | .join("_"); 38 | let matches = emojis.filter(s => s.title == q || s.title.includes(q)); 39 | 40 | let noResult = new discord.MessageEmbed() 41 | .setDescription( 42 | `| ${await client.emoji("DGH_error")} No Results found for ${args.join( 43 | " " 44 | )}!` 45 | ) 46 | .setColor("FF2052"); 47 | 48 | let page = 0; 49 | let i0 = 0; 50 | let i1 = 10; 51 | 52 | if (!matches.length) return message.channel.send({ embeds: [noResult] }); 53 | let embed = new discord.MessageEmbed() 54 | .setTitle(matches[page].title) 55 | .setURL("https://discordemoji.com/emoji/" + matches[page].slug) 56 | .setColor("00FFFF") 57 | .setImage(matches[page].image) 58 | .setFooter(`Emoji ${page + 1}/${matches.length}`); 59 | let msg = await message.channel.send({ 60 | embeds: [embed], 61 | components: [pages] 62 | }); 63 | 64 | let filter = i => i.user.id === message.author.id; 65 | let collector = msg.createMessageComponentCollector({ 66 | filter, 67 | time: 10000 68 | }); 69 | 70 | collector.on("collect", async i => { 71 | if (i.customId === "previous") { 72 | i0 = i0 - 10; 73 | i1 = i1 - 10; 74 | page = page - 1; 75 | if (i1 < 9) return msg.delete(); 76 | let embed = new discord.MessageEmbed() 77 | .setTitle(matches[page].title) 78 | .setURL("https://discordemoji.com/emoji/" + matches[page].slug) 79 | .setColor("00FFFF") 80 | .setImage(matches[page].image) 81 | .setFooter(`Emoji ${page + 1}/${matches.length}`); 82 | 83 | msg.edit({ embeds: [embed] }); 84 | } 85 | if (i.customId === "next") { 86 | i0 = i0 + 10; 87 | i1 = i1 + 10; 88 | page = page + 1; 89 | 90 | if (i1 > matches.length + 10) return msg.delete(); 91 | if (!i0 || !i1) return msg.delete(); 92 | let embed = new discord.MessageEmbed() 93 | .setTitle(matches[page].title) 94 | .setURL("https://discordemoji.com/emoji/" + matches[page].slug) 95 | .setColor("00FFFF") 96 | .setImage(matches[page].image) 97 | .setFooter(`Emoji ${page + 1}/${matches.length}`); 98 | 99 | msg.edit({ embeds: [embed] }); 100 | } 101 | if (i.customId === "add") { 102 | const res = matches[page]; 103 | let created; 104 | message.channel.sendTyping(); 105 | try { 106 | created = await message.guild.emojis.create(res.image, res.title); 107 | message.channel.sendTyping(); 108 | } catch { 109 | message.channel.sendTyping(); 110 | client.send(`Unable to add ${res.title}.`, { message }); 111 | } 112 | let embed = new discord.MessageEmbed() 113 | .setColor("00FFFF") 114 | .setDescription( 115 | `${await client.emoji( 116 | "DGH_success" 117 | )} Successfully added ${created}!` 118 | ); 119 | 120 | msg.edit({ embeds: [embed], components: [] }); 121 | message.channel.sendTyping(); 122 | } 123 | if (i.customId === "cancel") { 124 | msg.delete(); 125 | return client.send("Cancelled command.", { message }); 126 | } 127 | }); 128 | collector.on("end", async i => { 129 | let embed = new discord.MessageEmbed() 130 | .setTitle(matches[page].title) 131 | .setURL("https://discordemoji.com/emoji/" + matches[page].slug) 132 | .setColor("00FFFF") 133 | .setImage(matches[page].image) 134 | .setFooter(`Emoji ${page + 1}/${matches.length}`); 135 | pages.components[0].setDisabled(true); 136 | pages.components[1].setDisabled(true); 137 | pages.components[2].setDisabled(true); 138 | msg.edit({ embeds: [embed], components: [pages] }); 139 | }); 140 | } 141 | }; 142 | -------------------------------------------------------------------------------- /src/commands/Admin/lock_channel.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | const ms = require("ms"); 3 | module.exports = { 4 | name: "lock-channel", 5 | description: "Locks a Channel", 6 | category: "admin", 7 | usage: "lock-channel <...reason>\nlock-channel <...time>", 8 | P_user: ["MANAGE_CHANNELS"], 9 | P_bot: ["MANAGE_CHANNELS"], 10 | run: async (client, message, args) => { 11 | const [...reason] = args; 12 | const duration = reason[0] ? ms(reason[0]) : false; 13 | if (duration) reason.shift(); 14 | const _reason = reason.join(" ") || "There is no definite reason"; 15 | 16 | message.channel.permissionOverwrites.edit(message.guild.id, { 17 | SEND_MESSAGES: false 18 | }); 19 | const embed = new Discord.MessageEmbed() 20 | .setTitle("Channel Updates") 21 | .setDescription( 22 | `🔒 ${message.channel} has been Locked\nReason: ${_reason}\n${ 23 | duration ? `Time : ${ms(duration)}` : "" 24 | } 25 | ` 26 | ) 27 | .setColor("RANDOM"); 28 | await message.channel.send({ embeds: [embed] }); 29 | message.delete(); 30 | if (duration && !isNaN(duration)) { 31 | setTimeout(async () => { 32 | message.channel.permissionOverwrites.edit(message.guild.id, { 33 | SEND_MESSAGES: true 34 | }); 35 | const embed = new Discord.MessageEmbed() 36 | .setTitle("Channel Updates") 37 | .setDescription(`🔒 ${message.channel} has been Unlocked`) 38 | .setColor("RANDOM"); 39 | await message.channel.send({ embeds: [embed] }); 40 | }, Number(duration)); 41 | } 42 | } 43 | }; 44 | -------------------------------------------------------------------------------- /src/commands/Admin/remove-role.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "removeroleall", 3 | aliases: ["rrall", "rroleall"], 4 | description: "Delete a role to all user of the current server", 5 | category: "admin", 6 | args: true, 7 | usage: "removeroleall ", 8 | P_user: ["MANAGE_ROLES"], 9 | P_bot: ["MANAGE_ROLES"], 10 | run: async (client, message, args) => { 11 | const role = 12 | message.guild.roles.cache.find( 13 | role => role.name === args.join(" ").slice(1) 14 | ) || 15 | message.mentions.roles.first() || 16 | message.guild.roles.cache.get(args.join(" ").slice(1)); 17 | 18 | if (message.guild.me.roles.highest.comparePositionTo(role) < 0) { 19 | return client.send( 20 | `${await client.emoji("DGH_error")} My role is not high enough than **${ 21 | role.name 22 | }** role!`, 23 | { message } 24 | ); 25 | } 26 | 27 | if (message.member.roles.highest.comparePositionTo(role) < 0) { 28 | return client.send( 29 | `${await client.emoji("DGH_error")} Your role must be higher than **${ 30 | role.name 31 | }** role!`, 32 | { message } 33 | ); 34 | } 35 | 36 | if (!role) { 37 | return client.send( 38 | (await client.emoji("DGH_info")) + "Please provide a valid role", 39 | { message } 40 | ); 41 | } 42 | let type = new client.Discord.MessageActionRow().addComponents( 43 | new client.Discord.MessageButton() 44 | .setStyle("PRIMARY") 45 | .setLabel("Bots") 46 | .setCustomId("bot"), 47 | new client.Discord.MessageButton() 48 | .setStyle("PRIMARY") 49 | .setLabel("Members") 50 | .setCustomId("member") 51 | ); 52 | let embed = new client.Discord.MessageEmbed().setDescription( 53 | "Choose, the Roles are delete to all types?" 54 | ); 55 | let msg = await message.channel.send({ 56 | embeds: [embed], 57 | components: [type] 58 | }); 59 | let filter = i => i.user.id === message.author.id; 60 | let collector = msg.createMessageComponentCollector({ 61 | filter 62 | }); 63 | collector.on("collect", async i => { 64 | if (i.customId === "member") { 65 | message.guild.members.cache 66 | .filter(member => !member.user.bot) 67 | .map(a => a.roles.remove(role)); 68 | msg.delete(); 69 | 70 | return client.send( 71 | `${await client.emoji("DGH_success")} Successfully Delete **${ 72 | role.name 73 | }** to Members`, 74 | { message } 75 | ); 76 | } 77 | if (i.customId === "bot") { 78 | message.guild.members.cache 79 | .filter(member => member.user.bot) 80 | .map(a => a.roles.remove(role)); 81 | msg.delete(); 82 | return client.send( 83 | `${await client.emoji("DGH_success")} Successfully Delete **${ 84 | role.name 85 | }** to Bots`, 86 | { message } 87 | ); 88 | } 89 | }); 90 | } 91 | }; 92 | -------------------------------------------------------------------------------- /src/commands/Admin/role-list.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | name: "rolelist", 4 | category: "admin", 5 | description: "Check the roles for this guild ", 6 | run: async (client, message, args) => { 7 | client.ops.rolelist(message); 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /src/commands/Admin/strealemoji.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { MessageEmbed } = require("discord.js"); 3 | 4 | module.exports = { 5 | name: "stealemoji", 6 | category: "admin", 7 | args: true, 8 | description: "stealemoji ", 9 | usage: "stealemoji ", 10 | P_user: ["MANAGE_EMOJIS"], 11 | P_bot: ["MANAGE_EMOJIS"], 12 | run: async (client, message, args) => { 13 | const emojis = args.join(" ").match(/?/gi); 14 | if (!emojis) 15 | return client.send(`:x: | **Provde The emojis to add**`, { message }); 16 | emojis.forEach(emote => { 17 | let emoji = Discord.Util.parseEmoji(emote); 18 | if (emoji.id) { 19 | const Link = `https://cdn.discordapp.com/emojis/${emoji.id}.${ 20 | emoji.animated ? "gif" : "png" 21 | }`; 22 | message.guild.emojis 23 | .create(`${Link}`, `${`${emoji.name}`}`) 24 | .then(async em => 25 | client.send( 26 | `${await client.emoji( 27 | "DGH_success" 28 | )} Emoji Has Been Added! | Emoji : ${em.toString()}`, 29 | { message } 30 | ) 31 | ) 32 | .catch(async error => { 33 | client.send( 34 | (await client.emoji("DGH_error")) + " | an Error occured", 35 | { message } 36 | ); 37 | }); 38 | } 39 | }); 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /src/commands/Admin/ticket.js: -------------------------------------------------------------------------------- 1 | const { 2 | Client, 3 | Message, 4 | MessageEmbed, 5 | MessageButton, 6 | MessageActionRow 7 | } = require("discord.js"); 8 | module.exports = { 9 | name: "ticket-panel", 10 | P_user: ["MANAGE_MESSAGES"], 11 | category: "admin", 12 | run: async (client, message, args) => { 13 | message.delete() 14 | const embed = new MessageEmbed() 15 | .setColor("BLUE") 16 | .setAuthor( 17 | message.guild.name, 18 | message.guild.iconURL({ 19 | dynamic: true 20 | }) 21 | ) 22 | .setDescription( 23 | "__**How to make a ticket**__\n" + 24 | "> Click on the reaction that relates to your need\n" + 25 | "> Once the ticket is made you will be able to type in there" 26 | ) 27 | .setTitle("Tickets") 28 | .setThumbnail( 29 | "https://media.discordapp.net/attachments/733317247522832445/767777222080725022/download-ticket-ticket-free-entertainment-icon-orange-ticket-design-0.png" 30 | ); 31 | const bt = new MessageActionRow().addComponents( 32 | new MessageButton() 33 | .setCustomId("tic") 34 | .setEmoji("🎫") 35 | .setLabel("Create Ticket!") 36 | .setStyle("PRIMARY") 37 | ); 38 | message.channel.send({ 39 | embeds: [embed], 40 | components: [bt] 41 | }); 42 | } 43 | }; 44 | -------------------------------------------------------------------------------- /src/commands/Admin/unlock_channel.js: -------------------------------------------------------------------------------- 1 | const Discord = module.require("discord.js"); 2 | 3 | module.exports = { 4 | name: "unlock-channel", 5 | description: "Unlocks a Channel", 6 | category: "admin", 7 | P_user: ["MANAGE_CHANNELS"], 8 | P_bot: ["MANAGE_CHANNELS"], 9 | run: async (client, message, args) => { 10 | message.channel.permissionOverwrites.edit(message.guild.id, { 11 | SEND_MESSAGES: true 12 | }); 13 | const embed = new Discord.MessageEmbed() 14 | .setTitle("Channel Updates") 15 | .setDescription(`🔒 ${message.channel} has been Unlocked`) 16 | .setColor("RANDOM"); 17 | await message.channel.send({ embeds: [embed] }); 18 | message.delete(); 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /src/commands/Anti_swear/add.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "add-word", 3 | category: "anti_swear", 4 | description: "Visiting members to say rude", 5 | P_user: ["VIEW_CHANNEL", "MANAGE_GUILD"], 6 | P_bot: ["VIEW_CHANNEL", "MANAGE_GUILD"], 7 | run: async (client, message, args) => { 8 | let pog = await client.data.get(`words_${message.guild.id}`); 9 | let word = args[0]; 10 | if (!word) { 11 | let embed = new client.Discord.MessageEmbed() 12 | .setTitle("Error") 13 | .setDescription(`:x: | **No word provided**\nFormat: \`+addword fk\``) 14 | .setFooter( 15 | message.author.tag, 16 | message.author.displayAvatarURL() 17 | ) 18 | .setThumbnail(message.guild.iconURL()) 19 | .setColor("#FF0000"); 20 | return message.channel.send({ 21 | embeds: [embed] 22 | }); 23 | } 24 | if (pog && pog.find(find => find.word == word)) { 25 | let embed = new client.Discord.MessageEmbed(); 26 | embed.setAuthor(message.guild.name, message.guild.iconURL()); 27 | embed.setTitle("Error"); 28 | embed.setDescription(`:x: | **The word is already on the database**`); 29 | embed.setFooter( 30 | message.author.tag, 31 | message.author.displayAvatarURL({ dynamic: true }) 32 | ); 33 | embed.setTimestamp(); 34 | embed.setThumbnail(message.author.displayAvatarURL({ dynamic: true })); 35 | return message.channel.send({ 36 | embeds: [embed] 37 | }); 38 | } 39 | let yes = { 40 | word: word, 41 | author: message.author.tag 42 | }; 43 | client.data.push(`words_${message.guild.id}`, yes); 44 | let embed = new client.Discord.MessageEmbed(); 45 | embed.setAuthor(message.guild.name, message.guild.iconURL()); 46 | embed.setTitle("Success"); 47 | embed.setThumbnail(message.guild.iconURL()); 48 | embed.setDescription(`**The word has been added!**`); 49 | embed.setFooter( 50 | message.author.tag, 51 | message.author.displayAvatarURL({ dynamic: true }) 52 | ); 53 | embed.setColor("RANDOM"); 54 | embed.setTimestamp(); 55 | message.channel.send({ 56 | embeds: [embed] 57 | }); 58 | } 59 | }; 60 | -------------------------------------------------------------------------------- /src/commands/Anti_swear/list.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | module.exports = { 3 | name: "words", 4 | P_user: ["VIEW_CHANNEL", "MANAGE_GUILD"], 5 | P_bot: ["VIEW_CHANNEL", "MANAGE_GUILD"], 6 | category: "anti_swear", 7 | run: async (client, message, args) => { 8 | let embed = new Discord.MessageEmbed(); 9 | embed.setTitle(`${message.guild.name} | Anti Swear words list`); 10 | embed.setThumbnail(message.guild.iconURL()); 11 | embed.setFooter(message.author.tag, message.author.displayAvatarURL()); 12 | embed.setColor("GREEN"); 13 | let words = await client.data.get(`words_${message.guild.id}`); 14 | if (words && words.length) { 15 | let array = []; 16 | words.forEach(x => { 17 | array.push(`**Word:** \`${x.word}\` | **added By:** ${x.author}`); 18 | }); 19 | embed.setDescription(`${array.join("\n")}`); 20 | embed.setFooter( 21 | message.author.tag, 22 | message.author.displayAvatarURL({ dynamic: true }) 23 | ); 24 | } else { 25 | return client.send(await client.emoji("DGH_error") +" | **There are No words.**",{message}); 26 | } 27 | 28 | return message.channel.send({ embeds: [embed] }); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /src/commands/Anti_swear/remove.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | module.exports = { 3 | name: "remove-word", 4 | P_user: ["VIEW_CHANNEL", "MANAGE_GUILD"], 5 | P_bot: ["VIEW_CHANNEL", "MANAGE_GUILD"], 6 | category: "anti_swear", 7 | run: async (client, message, args) => { 8 | let pog = await client.data.get(`words_${message.guild.id}`); 9 | let word = args[0]; 10 | if (!word) { 11 | let embed = new Discord.MessageEmbed() 12 | .setTitle("Error") 13 | .setDescription(`:x: | **No word provided**\nFormat: \`+delword fk\``) 14 | .setFooter( 15 | message.author.tag, 16 | message.author.displayAvatarURL() 17 | ) 18 | .setThumbnail(message.guild.iconURL()) 19 | .setColor("#FF0000"); 20 | return message.channel.send({ 21 | embeds: [embed] 22 | }); 23 | } 24 | if (pog) { 25 | let data = pog.find(x => x.word.toLowerCase() === word.toLowerCase()); 26 | let No = new Discord.MessageEmbed(); 27 | No.setAuthor( 28 | message.author.tag, 29 | message.author.displayAvatarURL({ dynamic: true }) 30 | ); 31 | No.setDescription(`:x: | **Word Not Found**`); 32 | No.setColor("#FF0000"); 33 | No.setFooter( 34 | message.guild.name, 35 | message.guild.iconURL() 36 | ); 37 | No.setThumbnail(message.guild.iconURL()); 38 | if (!data) return message.channel.send({ embeds: [No] }); 39 | let yes = pog.indexOf(data); 40 | delete pog[yes]; 41 | var filter = pog.filter(x => { 42 | return x != null && x != ""; 43 | }); 44 | client.data.set(`words_${message.guild.id}`, filter); 45 | let embed = new Discord.MessageEmbed(); 46 | embed.setAuthor(message.author.tag, message.author.displayAvatarURL()); 47 | embed.setDescription(`**The word has been deleted!** `); 48 | embed.setFooter( 49 | message.guild.name, 50 | message.guild.iconURL() 51 | ); 52 | embed.setColor("GREEN"); 53 | embed.setTimestamp(); 54 | return message.channel.send({ embeds: [embed] }); 55 | } else { 56 | let embed = new Discord.MessageEmbed(); 57 | embed.setAuthor(message.author.tag, message.author.displayAvatarURL()); 58 | embed.setDescription(`:x: | **The word was not found!**`); 59 | embed.setFooter( 60 | message.guild.name, 61 | message.guild.iconURL() 62 | ); 63 | embed.setColor("#FF0000"); 64 | embed.setTimestamp(); 65 | 66 | return message.channel.send({ embeds: [embed] }); 67 | } 68 | } 69 | }; 70 | -------------------------------------------------------------------------------- /src/commands/Backup/create-backup.js: -------------------------------------------------------------------------------- 1 | const backup = require("discord-backup"); 2 | backup.setStorageFolder(__dirname + "/backup-json/"); 3 | module.exports = { 4 | name: "create-backup", 5 | description: "Create Backup Servers", 6 | P_user: ["ADMINISTRATOR"], 7 | P_bot: ["MANAGE_ROLES","MANAGE_GUILD","MANAGE_EMOJIS","MANAGE_CHANNELS","VIEW_CHANNEL","SEND_MESSAGES","MANAGE_WEBHOOKS"], 8 | category: "backup", 9 | run: async (client, message, args) => { 10 | let backupData = await backup.create(message.guild, { 11 | jsonBeautify: true, 12 | saveImages: "base64" 13 | }); 14 | let embed = new client.Discord.MessageEmbed() 15 | .setColor("RANDOM") 16 | .setDescription( 17 | `Server: ${message.guild.name}\nThe backup has been created! To load it, type this command on the server of your choice: \`load-backup ${backupData.id}\`` 18 | ); 19 | client.send(null,{ embed: [embed], type:true, message}); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /src/commands/Backup/load-backup.js: -------------------------------------------------------------------------------- 1 | const backup = require("discord-backup"); 2 | module.exports = { 3 | name: "load-backup", 4 | description: "load a saved backup, yeah some of them may not saved", 5 | P_user: ["ADMINISTRATOR"], 6 | P_bot: ["MANAGE_ROLES","MANAGE_GUILD","MANAGE_EMOJIS","MANAGE_CHANNELS","VIEW_CHANNEL","SEND_MESSAGES","MANAGE_WEBHOOKS"], 7 | args: true, 8 | usage: "load-backup ", 9 | category: "backup", 10 | run: async (client, message, args) => { 11 | backup 12 | .fetch(args[0]) 13 | .then(async () => { 14 | let cc = await client.awaitReply( 15 | `${await client.emoji( 16 | "DGH_info" 17 | )} | When the backup is loaded, all the channels, roles, etc. will be replaced! Type \`confirm\` to confirm!`, 18 | { message, time: 20000 } 19 | ); 20 | if (!cc) 21 | return client.send( 22 | `${await client.emoji( 23 | "DGH_error" 24 | )} | Time's up! Cancelled backup loading!`, 25 | { 26 | message 27 | } 28 | ); 29 | if (cc === "confirm") { 30 | backup 31 | .load(args[0], message.guild) 32 | .then(async () => { 33 | client.send( 34 | `${await client.emoji("DGH_info")} | Start loading the backup!`, 35 | { message, type: true } 36 | ); 37 | }) 38 | .catch(err => { 39 | return client.send( 40 | ":x: | Sorry, an error occurred... Please check that I have administrator permissions!", 41 | { message } 42 | ); 43 | }); 44 | } 45 | }) 46 | .catch(async e => { 47 | return client.send( 48 | `${await client.emoji("DGH_error")} | No backup found for ${args.slice( 49 | 0 50 | ).join(" ")}`, 51 | { message } 52 | ); 53 | }); 54 | } 55 | }; 56 | -------------------------------------------------------------------------------- /src/commands/Fun/8ball.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "8ball", 5 | description: "ask the 8ball a question", 6 | usage: "8ball ", 7 | args: true, 8 | category: "fun", 9 | run: async (client, message, args) => { 10 | let replies = [ 11 | "I think so", 12 | "Yes", 13 | "I guess", 14 | "Yeah absolutely", 15 | "Maybe", 16 | "Possibly", 17 | "No", 18 | "Most likely", 19 | "I Didnt Ask", 20 | "I dont know", 21 | "Without a doubt", 22 | "Indeed", 23 | "For sure", 24 | "I dont care" 25 | ]; 26 | 27 | let result = Math.floor(Math.random() * replies.length); 28 | let question = args.join(" "); 29 | 30 | let embed = new MessageEmbed() 31 | 32 | .setColor("#000488") 33 | .addField(`**${message.author.username}'s question**`, question) 34 | .addField("**the 8ball says**", replies[result]) 35 | .setThumbnail(message.author.displayAvatarURL()); 36 | 37 | message.reply({ embeds: [embed] }); 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /src/commands/Fun/avs.js: -------------------------------------------------------------------------------- 1 | const { createCanvas, loadImage } = require("canvas"); 2 | const request = require("node-superfetch"); 3 | module.exports = { 4 | name: "avatarfusion", 5 | category: "fun", 6 | aliases: ["avs"], 7 | description: "", 8 | args: true, 9 | usage: 10 | "[first mention | first username | first ID | first nickname] ", 11 | P_bot: ["ATTACH_FILES"], 12 | run: async (client, message, args) => { 13 | if (!args[0]) 14 | return client.send( 15 | "**Which User Would You Like To Be The Base?**", 16 | {message} 17 | ); 18 | if (!args[1]) 19 | return client.send( 20 | "**Which User Would You Like To Put Over The Base?**", 21 | {message} 22 | ); 23 | let base = 24 | message.mentions.members.first() || 25 | message.guild.members.cache.get(args[0]) || 26 | message.guild.members.cache.find( 27 | r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase() 28 | ) || 29 | message.guild.members.cache.find( 30 | r => r.displayName === args[0].toLocaleLowerCase() 31 | ); 32 | if (!base) return client.send("**Base User Not Found!**", {message}); 33 | let overlay = 34 | message.mentions.members.first(2)[1] || 35 | message.guild.members.cache.get(args[1]) || 36 | message.guild.members.cache.find( 37 | r => r.user.username.toLowerCase() === args[1].toLocaleLowerCase() 38 | ) || 39 | message.guild.members.cache.find( 40 | r => r.displayName === args[1].toLocaleLowerCase() 41 | ); 42 | if (!overlay) return client.send("**Overlay User Not Found!**", {message}); 43 | const baseAvatarURL = base.user.displayAvatarURL({ 44 | format: "png", 45 | size: 512 46 | }); 47 | const overlayAvatarURL = overlay.user.displayAvatarURL({ 48 | format: "png", 49 | size: 512 50 | }); 51 | try { 52 | const baseAvatarData = await request.get(baseAvatarURL); 53 | const baseAvatar = await loadImage(baseAvatarData.body); 54 | const overlayAvatarData = await request.get(overlayAvatarURL); 55 | const overlayAvatar = await loadImage(overlayAvatarData.body); 56 | const canvas = createCanvas(baseAvatar.width, baseAvatar.height); 57 | const ctx = canvas.getContext("2d"); 58 | ctx.globalAlpha = 0.5; 59 | ctx.drawImage(baseAvatar, 0, 0); 60 | ctx.drawImage(overlayAvatar, 0, 0, baseAvatar.width, baseAvatar.height); 61 | return message.channel.send({ 62 | files: [{ attachment: canvas.toBuffer(), name: "avatarfusion.png" }] 63 | }); 64 | } catch (err) { 65 | return client.send( 66 | `Oh no, an error occurred: \`${err.message}\`. Try again later!`, 67 | {message} 68 | ); 69 | } 70 | } 71 | }; 72 | -------------------------------------------------------------------------------- /src/commands/Fun/bed.js: -------------------------------------------------------------------------------- 1 | const DIG = require("br"); 2 | 3 | module.exports = { 4 | name: "bed", 5 | description: "", 6 | usage: "bed ", 7 | args: true, 8 | category: "fun", 9 | P_bot: ["ATTACH_FILES"], 10 | run: async (client, message, args) => { 11 | const Member = 12 | message.mentions.members.first() || 13 | message.guild.members.cache.get(args[0]) || 14 | client; 15 | let avatar2 = message.author.displayAvatarURL(); 16 | let avatar1 = Member.user.displayAvatarURL(); 17 | let img = await new DIG.Bed().getImage( 18 | avatar1.replace("webp", "png"), 19 | avatar2.replace("webp", "png") 20 | ); 21 | message.channel.send({ files: [{ attachment: img, name: "bed.png" }] }); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /src/commands/Fun/changemymind.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | name: "changemymind", 6 | aliases: ["cmm"], 7 | description: "Change my mind", 8 | category: "fun", 9 | P_bot: ["ATTACH_FILES"], 10 | run: async (client, message, args) => { 11 | const text = args.join(" "); 12 | if (!text) return client.send("Please provide text", {message}); 13 | const sendMsg = await client.send("⚙ Processing Image..", {message}); 14 | const data = await fetch( 15 | `https://nekobot.xyz/api/imagegen?type=changemymind&text=${text}` 16 | ).then(res => res.json()); 17 | sendMsg.delete(); 18 | const embed = new MessageEmbed() 19 | .setFooter(message.author.username) 20 | .setColor("BLUE") 21 | .setDescription( 22 | `[Click here if the image failed to load.](${data.message})` 23 | ) 24 | .setImage(data.message) 25 | .setTimestamp(); 26 | 27 | message.channel.send({ embeds: [embed] }); 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /src/commands/Fun/clyde.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | name: "clyde", 6 | description: "Let clyde say something", 7 | category: "fun", 8 | P_bot: ["ATTACH_FILES"], 9 | run: async (client, message, args) => { 10 | const text = args.join(" "); 11 | if (!text) return client.send("Please provide text", {message}); 12 | const sendMsg = await client.send("⚙ Processing Image..", {message}); 13 | const data = await fetch( 14 | `https://nekobot.xyz/api/imagegen?type=clyde&text=${text}` 15 | ).then(res => res.json()); 16 | sendMsg.delete(); 17 | const embed = new MessageEmbed() 18 | .setFooter(message.author.username) 19 | .setColor("BLUE") 20 | .setDescription( 21 | `[Click here if the image failed to load.](${data.message})` 22 | ) 23 | .setImage(data.message) 24 | .setTimestamp(); 25 | 26 | message.channel.send({ embeds: [embed] }); 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /src/commands/Fun/delete.js: -------------------------------------------------------------------------------- 1 | const DIG = require("br"); 2 | 3 | module.exports = { 4 | name: "delete", 5 | description: "", 6 | usage: "delete ", 7 | category: "fun", 8 | P_bot: ["ATTACH_FILES"], 9 | args: true, 10 | run: async (client, message, args) => { 11 | const Member = 12 | message.mentions.members.first() || 13 | message.guild.members.cache.get(args[0]) || 14 | message.member; 15 | let avatar2 = Member.user.displayAvatarURL(); 16 | let img = await new DIG.Delete().getImage(avatar2.replace("webp","png")); 17 | message.channel.send({ files: [{ attachment: img, name: "delete.png" }] }); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /src/commands/Fun/eject.js: -------------------------------------------------------------------------------- 1 | const discord = require('discord.js') 2 | const fetch = require('node-fetch') 3 | 4 | module.exports = { 5 | name: "eject", 6 | description: "eject someone from the spaceship - Among us Command", 7 | P_bot: ["ATTACH_FILES"], 8 | usage: "eject ", 9 | category: "fun", 10 | run: async (client, message, args) => { 11 | const user = await client.resolveUser(args[0]) 12 | const imp = [true, false]; 13 | const imposter = imp[Math.floor(Math.random() * imp.length)]; 14 | const crew = ["black", "blue", "brown", "cyan", "darkgreen", "lime", "orange", "pink", "purple", "red", "white", "yellow"] 15 | const crewmate = crew[Math.floor(Math.random() * crew.length)]; 16 | 17 | if(!user) { 18 | return client.send(`${message.author} Please specify a user to eject by mentioning them!`, {message}) 19 | } 20 | 21 | const data = await fetch(`https://vacefron.nl/api//ejected?name=${user.username}&impostor=${imposter}&crewmate=${crewmate}`) 22 | 23 | const embed = new discord.MessageEmbed() 24 | .setAuthor(message.author.username + "#" + message.author.discriminator, message.author.displayAvatarURL()) 25 | .setTitle(await client.translate(`${message.author.username} decided to eject ${user.username}`)) 26 | .setFooter(message.author.username) 27 | .setColor("BLUE") 28 | .setDescription(`[Click here, if the image didn't load!](${data.url})`) 29 | .setImage(`${data.url}`) 30 | .setTimestamp(); 31 | 32 | message.channel.send({embeds: [embed]}); 33 | } 34 | } -------------------------------------------------------------------------------- /src/commands/Fun/emojify.js: -------------------------------------------------------------------------------- 1 | const mapping = { 2 | " ": " ", 3 | "0": ":zero:", 4 | "1": ":one:", 5 | "2": ":two:", 6 | "3": ":three:", 7 | "4": ":four:", 8 | "5": ":five:", 9 | "6": ":six:", 10 | "7": ":seven:", 11 | "8": ":eight:", 12 | "9": ":nine:", 13 | "!": ":grey_exclamation:", 14 | "?": ":grey_question:", 15 | "#": ":hash:", 16 | "?": ":grey_question:", 17 | "*": ":asterisk:" 18 | }; 19 | 20 | "abcdefghijklmnopqrstuvwxyz".split("").forEach(c => { 21 | mapping[c] = mapping[c.toUpperCase()] = ` :regional_indicator_${c}:`; 22 | }); 23 | 24 | module.exports = { 25 | name: "emojify", 26 | aliases: [], 27 | category: "fun", 28 | usage: "emojify ", 29 | args: true, 30 | description: "Returns provided text in emojify (emotes) form.", 31 | run: async (client, message, args) => { 32 | await message.delete(); 33 | message.channel.send({ 34 | content: args 35 | .join(" ") 36 | .split("") 37 | .map(c => mapping[c] || c) 38 | .join("") 39 | }); 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /src/commands/Fun/fox.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | module.exports = { 4 | name: "fox", 5 | category: "fun", 6 | description: "Random pictures of a fox", 7 | cooldown: 2000, 8 | P_bot: ["ATTACH_FILES"], 9 | run: async (client, message, args) => { 10 | const response = await fetch("https://randomfox.ca/floof/"); 11 | const { image } = await response.json(); 12 | message.channel.send({ 13 | embeds: [ 14 | new Discord.MessageEmbed() 15 | .setColor("RANDOM") 16 | .setDescription("https://randomfox.ca/") 17 | .setImage(image) 18 | ] 19 | }); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /src/commands/Fun/jail.js: -------------------------------------------------------------------------------- 1 | const DIG = require("br"); 2 | 3 | module.exports = { 4 | name: "jail", 5 | description: "", 6 | usage: "jail ", 7 | args: true, 8 | category: "fun", 9 | P_bot: ["ATTACH_FILES"], 10 | run: async (client, message, args) => { 11 | const Member = 12 | message.mentions.members.first() || 13 | message.guild.members.cache.get(args[0]) || 14 | message.member; 15 | let avatar2 = Member.user.displayAvatarURL(); 16 | let img = await new DIG.Jail().getImage(avatar2.replace("webp", "png")); 17 | message.channel.send({ files: [{ attachment: img, name: "jail.png" }] }); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /src/commands/Fun/joke.js: -------------------------------------------------------------------------------- 1 | const joke = require("one-liner-joke"); 2 | const Discord = require("discord.js"); 3 | module.exports = { 4 | name: "joke", 5 | category: "fun", 6 | description: "Get a random joke!", 7 | run: async (client, message, args) => { 8 | let jEmbed = new Discord.MessageEmbed() 9 | .addField("Joke", await client.translate(joke.getRandomJoke().body)) 10 | .setColor("RANDOM") 11 | .setTimestamp() 12 | .setFooter(`Requested by ${message.author.tag}`); 13 | message.channel.send({ embeds: [jEmbed] }); 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /src/commands/Fun/kiss.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | const { Random } = require("something-random-on-discord"); 3 | 4 | module.exports = { 5 | name: "kiss", 6 | category: "fun", 7 | args: true, 8 | usage: "kiss <@user>", 9 | description: "Kiss someone", 10 | run: async (client, message, args) => { 11 | let target = 12 | message.mentions.members.first() || 13 | message.guild.members.cache.get(args[0]) || 14 | message.member; 15 | let data = await Random.getAnimeImgURL("kiss"); 16 | let embed = new discord.MessageEmbed() 17 | .setImage(data) 18 | .setColor("RANDOM") 19 | .setFooter( 20 | `${message.author.username} kisses ${target.user.username}` 21 | 22 | ) 23 | .setTimestamp(); 24 | message.channel.send({ embeds: embed }); 25 | } 26 | }; 27 | -------------------------------------------------------------------------------- /src/commands/Fun/lovecalc.js: -------------------------------------------------------------------------------- 1 | const Canvas = require("canvas"); 2 | const Discord = require("discord.js"); 3 | module.exports = { 4 | name: "lovecalc", 5 | category: "fun", 6 | aliases: ["lc"], 7 | P_bot: ["ATTACH_FILES"], 8 | run: async (client, message, args) => { 9 | let member = 10 | message.mentions.members.first() || 11 | message.guild.members.cache.get(args[0]) || 12 | message.guild.members.cache.find( 13 | r => r.user.username.toLowerCase() === args[0].toLocaleLowerCase() 14 | ) || 15 | message.guild.members.cache.find( 16 | r => r.displayName === args[0].toLocaleLowerCase() 17 | ); 18 | if (!member) return client.send("**Base User Not Found!**", {message}); 19 | let member2 = 20 | message.mentions.members.first(2)[1] || 21 | message.guild.members.cache.get(args[1]) || 22 | message.guild.members.cache.find( 23 | r => r.user.username.toLowerCase() === args[1].toLocaleLowerCase() 24 | ) || 25 | message.guild.members.cache.find( 26 | r => r.displayName === args[1].toLocaleLowerCase() 27 | ); 28 | if (!member2) return client.send("**Overlay User Not Found!**", {message}); 29 | 30 | const wallpapers = [ 31 | "https://cdn.discordapp.com/attachments/821904810772660255/856852387330261022/20210622_190502.png", // You can add as many as you want 32 | "https://cdn.discordapp.com/attachments/821904810772660255/856853479896383498/20210622_190752.png", 33 | "https://cdn.discordapp.com/attachments/821904810772660255/856853480101380097/20210622_190840.png", 34 | "https://cdn.discordapp.com/attachments/821904810772660255/856853480400355338/20210622_190926.png" 35 | ]; 36 | const response = wallpapers[Math.floor(Math.random() * wallpapers.length)]; 37 | const i = Math.floor(Math.random() * 100) + 1; 38 | 39 | let f = function(e) { 40 | if (e > 100) { 41 | return "💘"; 42 | } else if (e > 80) { 43 | return "💞"; 44 | } else if (e > 60) { 45 | return "💝"; 46 | } else if (e > 50) { 47 | return "💕"; 48 | } else if (e > 40) { 49 | return "💓"; 50 | } else if (e > 20) { 51 | return "❤️"; 52 | } else { 53 | return "💔"; 54 | } 55 | }; 56 | const canvas = Canvas.createCanvas(1692, 553); 57 | const ctx = canvas.getContext("2d"); 58 | const background = await Canvas.loadImage(response); 59 | ctx.drawImage(background, 0, 0, canvas.width, canvas.height); 60 | ctx.strokeStyle = "#f2f2f2"; 61 | ctx.strokeRect(0, 0, canvas.width, canvas.height); 62 | const avatar = await Canvas.loadImage( 63 | member.user.displayAvatarURL({ format: "jpg" }) 64 | ); 65 | ctx.drawImage(avatar, 1, canvas.height / 2 - 300, 570, 570); 66 | const avatar2 = await Canvas.loadImage( 67 | member2.user.displayAvatarURL({ format: "jpg" }) 68 | ); 69 | ctx.drawImage(avatar2, 1130, canvas.height / 2 - 299, 570, 570); 70 | message.channel.send({ 71 | content: `${member.user.username} X ${ 72 | member2.user.username 73 | } = ${i} of Love ${f(i)}`, 74 | files: [{ attachment: canvas.toBuffer(), name: "lovecalc.png" }] 75 | }); 76 | } 77 | }; 78 | -------------------------------------------------------------------------------- /src/commands/Fun/meme.js: -------------------------------------------------------------------------------- 1 | const https = require("https"); 2 | const Discord = require("discord.js"); 3 | const url = [ 4 | "https://www.reddit.com/r/dankmemes/hot/.json?limit=100", 5 | "https://www.reddit.com/r/memes/hot/.json?limit=100" 6 | ]; 7 | module.exports = { 8 | name: "meme", 9 | category: "fun", 10 | description: "Sends a random meme", 11 | run: async (client, message, args) => { 12 | https.get(url[Math.floor(Math.random() * url.length)], result => { 13 | let body = ""; 14 | result.on("data", chunk => { 15 | body += chunk; 16 | }); 17 | result 18 | .on("end", async () => { 19 | let response = JSON.parse(body); 20 | let index = 21 | response.data.children[Math.floor(Math.random() * 99) + 1].data; 22 | if (index.post_hint !== "image") { 23 | return message.channel.send({ 24 | embeds: [ 25 | new Discord.MessageEmbed() 26 | .setAuthor("r/dankmemes") 27 | .setDescription('error getting image, try again in a moment') 28 | .setColor("RANDOM") 29 | ] 30 | }); 31 | } 32 | let image = index.url; 33 | let title = index.title; 34 | return message.channel.send({ 35 | embeds: [ 36 | new Discord.MessageEmbed() 37 | .setAuthor("r/dankmemes") 38 | .setImage(image) 39 | .setColor("RANDOM") 40 | ] 41 | }); 42 | }) 43 | .on("error", error => { 44 | client.send(error, {message}); 45 | return false; 46 | }); 47 | }); 48 | } 49 | }; 50 | -------------------------------------------------------------------------------- /src/commands/Fun/nitro.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "nitro", 3 | category: "fun", 4 | cooldown: 5000, 5 | run: async (client, message, args) => { 6 | message.channel.send("Free Nitro :D\nhttps://discord.gift/pnQQ9KxKuMqT2KNxHuKANhvc"); 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /src/commands/Fun/owo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | name: "owo", 6 | category: "fun", 7 | run: async (client, message, args) => { 8 | const data = await fetch("https://rra.ram.moe/i/r?type=owo").then(res => 9 | res.json() 10 | ); 11 | 12 | const embed = new MessageEmbed() 13 | .setColor("BLUE") 14 | .setDescription(`[Click here if the image failed to load.](https://cdn.ram.moe/${data.path.replace( 15 | "/i/", 16 | "" 17 | )})` 18 | ) 19 | .setImage(`https://cdn.ram.moe/${data.path.replace("/i/", "")}`) 20 | .setTimestamp(); 21 | message.channel.send({ embeds: [embed] }); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /src/commands/Fun/punch.js: -------------------------------------------------------------------------------- 1 | const discord = require("discord.js"); 2 | const { Random } = require("something-random-on-discord"); 3 | module.exports = { 4 | name: "punch", 5 | category: "fun", 6 | args: true, 7 | usage: 'punch <@user>', 8 | description: "Punch someone", 9 | run: async (client, message, args) => { 10 | let target = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 11 | let data = await Random.getAnimeImgURL("punch"); 12 | let embed = new discord.MessageEmbed() 13 | .setImage(data) 14 | .setColor("RANDOM") 15 | .setFooter(`${message.author.username} punches ${target.user.username}`) 16 | .setTimestamp() 17 | 18 | message.channel.send({embeds: [embed]}); 19 | } 20 | }; -------------------------------------------------------------------------------- /src/commands/Fun/qrcode.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | name: "qrcode", 4 | aliases: ["qr"], 5 | category: "fun", 6 | args:true, 7 | description: "Return A Qr Image!", 8 | usage: "Qr ", 9 | run: async (client, message, args) => { 10 | const Msg = args.join("+"); 11 | const Embed = new client.Discord.MessageEmbed() 12 | .setColor("RANDOM") 13 | .setImage(encodeURI(`https://chart.googleapis.com/chart?chl=${Msg}&chs=200x200&cht=qr&chld=H%7C0`)) 14 | .setTimestamp(); 15 | message.delete() 16 | 17 | return message.channel.send({embeds:[Embed]}); 18 | } 19 | }; -------------------------------------------------------------------------------- /src/commands/Fun/quote.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const canvacord = require("canvacord"); 3 | 4 | module.exports = { 5 | name: "quote", 6 | category: "fun", 7 | usage: "quote ", 8 | P_bot: ["ATTACH_FILES"], 9 | run: async (client, message, args) => { 10 | let user = await client.resolveUser(args[0]); 11 | if (!user) 12 | return client.send("You need to mention a user and provide text!", { 13 | message 14 | }); 15 | 16 | let msg = args.slice(1).join(" "); 17 | 18 | const e = user.displayAvatarURL({ format: "png" }); 19 | const img = await canvacord.Canvas.quote({ 20 | username: `${user.username}`, 21 | color: "#7289da", 22 | message: `${msg}`, 23 | image: e 24 | }); 25 | return message.channel.send({ 26 | files: [{ attachment: img, name: "quote.png" }] 27 | }); 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /src/commands/Fun/slap.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const slaps = [ 3 | "https://i.giphy.com/media/3XlEk2RxPS1m8/giphy.gif", 4 | "https://i.giphy.com/media/mEtSQlxqBtWWA/giphy.gif", 5 | "https://i.giphy.com/media/j3iGKfXRKlLqw/giphy.gif", 6 | "https://i.giphy.com/media/2M2RtPm8T2kOQ/giphy.gif", 7 | "https://i.giphy.com/media/l3YSimA8CV1k41b1u/giphy.gif", 8 | "https://i.giphy.com/media/WLXO8OZmq0JK8/giphy.gif", 9 | "https://media1.tenor.com/images/0720ffb69ab479d3a00f2d4ac7e0510c/tenor.gif", 10 | "https://media1.tenor.com/images/8b80166ce48c9c198951361715a90696/tenor.gif", 11 | "https://media1.tenor.com/images/6aa432caad8e3272d21a68ead3629853/tenor.gif", 12 | "https://media1.tenor.com/images/4ec47d7b87a9ce093642fc8a3c2969e7/tenor.gif" 13 | ]; 14 | module.exports = { 15 | name: "slap", 16 | usage: `slap <@user>`, 17 | category: "fun", 18 | description: "Give the user a slap!", 19 | run: async (client, message, args) => { 20 | let user = 21 | message.mentions.members.first() || 22 | message.guild.members.cache.get(args[0]); 23 | if (!user) 24 | return client.send( 25 | "Oh oh... you gotta provide a valid user to slap :/", 26 | {message} 27 | ); 28 | return message.channel.send({ 29 | embeds: [ 30 | new Discord.MessageEmbed() 31 | .setColor("RANDOM") 32 | .setImage(slaps[Math.floor(Math.random() * slaps.length)]) 33 | .setDescription( 34 | `${message.author.username} slapped ${user.user.username}!` 35 | 36 | ) 37 | ] 38 | }); 39 | } 40 | }; 41 | -------------------------------------------------------------------------------- /src/commands/Fun/smug.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const fetch = require("node-fetch"); 3 | 4 | module.exports = { 5 | name: "smug", 6 | category: "fun", 7 | run: async (client, message, args) => { 8 | const data = await fetch("https://nekos.life/api/v2/img/smug").then(res => 9 | res.json() 10 | ); 11 | 12 | const embed = new MessageEmbed() 13 | .setColor("BLUE") 14 | .setDescription(`[Click here if the image failed to load.](${data.url})`) 15 | .setImage(`${data.url}`) 16 | .setTimestamp(); 17 | message.channel.send({embeds:[embed]}); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /src/commands/Fun/spank.js: -------------------------------------------------------------------------------- 1 | const DIG = require("br"); 2 | 3 | module.exports = { 4 | name: "spank", 5 | usage: "spank ", 6 | category: "fun", 7 | args: true, 8 | P_bot: ["ATTACH_FILES"], 9 | run: async (client, message, args) => { 10 | const Member = 11 | message.mentions.members.first() || 12 | message.guild.members.cache.get(args[0]) || 13 | client; 14 | let avatar = Member.user.displayAvatarURL(); 15 | let avatar2 = message.author.displayAvatarURL(); 16 | let img = await new DIG.Spank().getImage(avatar2.replace("webp","png"), avatar.replace("webp","png")); 17 | message.channel.send({ files: [{ attachment: img, name: "spank.png" }] }); 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /src/commands/Fun/stonks.js: -------------------------------------------------------------------------------- 1 | const DIG = require("br"); 2 | 3 | module.exports = { 4 | name: "stonks", 5 | usage: "stonks ", 6 | P_bot: ["ATTACH_FILES"], 7 | category: "fun", 8 | args: true, 9 | run: async (client, message, args) => { 10 | const Member = 11 | message.mentions.members.first() || 12 | message.guild.members.cache.get(args[0]) || 13 | message.member; 14 | let avatar2 = Member.user.displayAvatarURL(); 15 | let img = await new DIG.Stonk().getImage(avatar2.replace("webp", "png")); 16 | message.channel.send({ files: [{ attachment: img, name: "stonks.png" }] }); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /src/commands/Fun/trash.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const axios = require("axios"); 3 | 4 | module.exports = { 5 | name: "trash", 6 | usage: "trash ", 7 | args: true, 8 | category: "fun", 9 | run: async (client, message, args) => { 10 | let user = 11 | message.mentions.members.first() || 12 | message.guild.members.cache.get(args[0]) || 13 | message.member; 14 | const url = `https://api.no-api-key.com/api/v1/trash?image=${user.user.displayAvatarURL( 15 | { format: "png" } 16 | )}`; 17 | 18 | let response, data; 19 | try { 20 | response = await axios.get(url); 21 | data = response.data; 22 | } catch (e) { 23 | return client.send(`An error occured!`, {message}); 24 | } 25 | 26 | const embed = new MessageEmbed() 27 | .setAuthor( 28 | `${message.guild.name} was used in!`, 29 | message.guild.iconURL({ dynamic: true }) 30 | ) 31 | .setImage(data.url) 32 | .setColor("RANDOM") 33 | .setFooter( 34 | `${message.author.username} asked this`, 35 | message.author.displayAvatarURL({ dynamic: true }) 36 | ); 37 | 38 | await message.channel.send({ embeds: [embed] }); 39 | } 40 | }; 41 | -------------------------------------------------------------------------------- /src/commands/Fun/wanted.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "wasted", 5 | aliases: ["wtd"], 6 | category: "fun", 7 | description: "Return A Wasted Image!", 8 | usage: "Wasted | ", 9 | P_bot: ["ATTACH_FILES"], 10 | run: async (client, message, args) => { 11 | const Member = 12 | message.mentions.members.first() || 13 | message.guild.members.cache.get(args[0]) || 14 | message.member; 15 | message.channel.send({ 16 | embeds: [{ 17 | color: "RANDOM", 18 | image: { 19 | url: `https://some-random-api.ml/canvas/wasted?avatar=${Member.user.displayAvatarURL( 20 | { format: "png" } 21 | )}` 22 | } 23 | }] 24 | }); 25 | } 26 | }; 27 | -------------------------------------------------------------------------------- /src/commands/Fun/yt_comment.js: -------------------------------------------------------------------------------- 1 | const canvacord = require("canvacord"); 2 | module.exports = { 3 | name: "comment", 4 | description: "", 5 | usage: "comment ", 6 | category: "fun", 7 | P_bot: ["ATTACH_FILES"], 8 | run: async (client, message, args) => { 9 | const comment = args.join(""); 10 | if (!comment) 11 | return client.send( 12 | `${await client.emoji("DGH_error")} Provide something to Comment!`, 13 | {message} 14 | ); 15 | let yt = await canvacord.Canvas.youtube({ 16 | avatar: message.author.displayAvatarURL({ format: "png" }), 17 | username: message.author.username, 18 | content: args.join(" ") 19 | }); 20 | message.channel.send({ files: [{ attachment: yt, name: "comment.png" }] }); 21 | } 22 | }; 23 | -------------------------------------------------------------------------------- /src/commands/Games/akinator.js: -------------------------------------------------------------------------------- 1 | const akinator = require("discord.js-akinator"); 2 | module.exports = { 3 | name: "akinator", 4 | aliases: ["aki"], 5 | category: "games", 6 | run: async (client, message, args) => { 7 | akinator(message, client); 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /src/commands/Games/rps.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "rps", 3 | category: "games", 4 | usage: "rps <@user>", 5 | description: "Let's play rps", 6 | run: async (client, message, args) => { 7 | client.ops.rps(client, message); 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /src/commands/Games/tictactoe.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | module.exports = { 3 | name: "tictactoe", 4 | category: "games", 5 | aliases: ["ttt"], 6 | usage: "tictactoe <@user>", 7 | description: "Let's play tictactoe", 8 | run: async (client, message, args) => { 9 | client.ops.tictactoe(client, message, { 10 | xEmoji: await client.emoji("DGH_X_"), 11 | oEmoji: await client.emoji("DGH_O_"), 12 | idleEmoji: await client.emoji("DGH_line_") 13 | }) 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /src/commands/Levels/add-role.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "add-level-role", 5 | description: "Add a Role that is given when a user reached a specific level.", 6 | category: "levels", 7 | P_user: ["MANAGE_GUILD", "MANAGE_ROLES"], 8 | P_bot: ["MANAGE_GUILD", "MANAGE_ROLES"], 9 | run: async (client, message, args) => { 10 | const provide = new Discord.MessageEmbed() 11 | .setTitle("You need to mention a role.") 12 | .setColor("#c98aff") 13 | .setTimestamp(); 14 | const provideLevel = new Discord.MessageEmbed() 15 | .setTitle("You need to provide a number.") 16 | .setDescription( 17 | "This will give a user the role when the user reached the level." 18 | ) 19 | .setColor("#c98aff") 20 | .setTimestamp(); 21 | 22 | const Role_To_Add = message.mentions.roles.first(); 23 | if (!Role_To_Add) return message.channel.send({ embeds: [provide] }); 24 | 25 | const Level_To_Reach = args[1]; 26 | if (!Level_To_Reach) 27 | return message.channel.send({ embeds: [provideLevel] }); 28 | if (isNaN(Level_To_Reach)) 29 | return message.channel.send({ embeds: [provideLevel] }); 30 | 31 | if (Level_To_Reach.includes("+")) 32 | return message.channel.send({ embeds: [provideLevel] }); 33 | if (Level_To_Reach.includes("-")) 34 | return message.channel.send({ embeds: [provideLevel] }); 35 | if (Level_To_Reach.includes(".")) 36 | return message.channel.send({ embeds: [provideLevel] }); 37 | 38 | let pog = await client.data.get(`level_role_${message.guild.id}`); 39 | if (pog && pog.find(x => x.Level_Role_ID === Role_To_Add.id)) { 40 | const Already = new Discord.MessageEmbed() 41 | .setTitle("There is already a role that has that same level to reach.") 42 | .setColor("#c98aff") 43 | .setTimestamp(); 44 | return message.channel.send({ embeds: [Already] }); 45 | } 46 | 47 | client.data.push(`level_role_${message.guild.id}`, { 48 | Level_Role: `${Role_To_Add.name}`, 49 | Level_Role_ID: `${Role_To_Add.id}`, 50 | Level_To_Reach: parseInt(Level_To_Reach) 51 | }); 52 | 53 | const Success = new Discord.MessageEmbed() 54 | .setTitle("New Level Role has been successfully added.") 55 | .setColor("#c98aff") 56 | .setTimestamp(); 57 | return message.channel.send({ embeds: [Success] }); 58 | } 59 | }; 60 | -------------------------------------------------------------------------------- /src/commands/Levels/list.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level-roles", 5 | description: "Shows the list of Level Roles of the server.", 6 | category: "levels", 7 | run: async (client, message, args) => { 8 | const Success = new Discord.MessageEmbed() 9 | .setAuthor( 10 | `${message.guild.name}`, 11 | `${message.guild.iconURL({ dynamic: true })}` 12 | ) 13 | .setTitle("[ Level Roles ]") 14 | .setImage( 15 | "https://media.discordapp.net/attachments/832519166459510795/832837073274273797/Level_Roles.png?width=1085&height=610" 16 | ) 17 | .setColor("#c98aff") 18 | .setTimestamp(); 19 | let levels = await client.data.get(`level_role_${message.guild.id}`); 20 | if (levels && levels.length) { 21 | let array = []; 22 | levels.forEach((Roles, x) => { 23 | array.push( 24 | `__**${x + 1}.**__**Roles: ${Roles.Level_Role}\nReach: ${ 25 | Roles.Level_To_Reach 26 | }\nID: ${Roles.Level_Role_ID}**` 27 | ); 28 | }); 29 | Success.setDescription( 30 | array.join("\n\n") || "There are no Level Roles yet." 31 | ); 32 | return message.channel.send({ embeds: [Success] }); 33 | } else { 34 | const No_Roles = new Discord.MessageEmbed() 35 | .setTitle("There are no Level Roles yet.") 36 | .setColor("#c98aff") 37 | .setTimestamp(); 38 | return message.channel.send({ embeds: [No_Roles] }); 39 | } 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /src/commands/Levels/rank.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const canvacord = require("canvacord"); 3 | let Levels = require("discord-xp"); 4 | module.exports = { 5 | name: "rank", 6 | aliases: ["lvl","level"], 7 | description: "Get the level of Author or Mentioned", 8 | usage: "rank [user]", 9 | category: "levels", 10 | run: async (client, message, args) => { 11 | let user = message.mentions.members.first() || message.member; 12 | const User = await Levels.fetch(user.user.id, message.guild.id, true); 13 | const LevelUp = new Discord.MessageEmbed(); 14 | let image = await client.data.get(`levelimg_${message.guild.id}`); 15 | const newxp = Levels.xpFor(parseInt(User.level) + 1); 16 | let rak = new canvacord.Rank() 17 | .setAvatar(user.user.displayAvatarURL({ format: "png" })) 18 | .setCurrentXP(User.xp) 19 | .setRequiredXP(newxp) 20 | .setStatus( 21 | user.presence?.status ? user.presence.status : "offline", 22 | true, 23 | 5 24 | ) 25 | .setProgressBar("#00FFFF", "COLOR") 26 | .setUsername(user.user.username, "#1FF768") 27 | .setDiscriminator(user.user.discriminator) 28 | .setLevel(User.level) 29 | .setBackground("IMAGE", image || client.config.image.level); 30 | rak.build().then(data => { 31 | let embed = new Discord.MessageEmbed() 32 | .setAuthor(user.user.username, message.guild.iconURL()) 33 | .setColor("#ff2050") 34 | .setDescription( 35 | `**LEVEL** - ${User.level}\n**Position** - ${User.position}\n**XP** - ${User.xp}/${newxp}` 36 | ) 37 | .setImage("attachment://RankCard.png"); 38 | message.channel.send({ 39 | embeds: [embed], 40 | files: [{ attachment: data, name: "RankCard.png" }] 41 | }); 42 | }); 43 | } 44 | }; 45 | -------------------------------------------------------------------------------- /src/commands/Levels/remove-role.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "remove-level-role", 5 | description: "Remove a Level Role that is given when a user levels up.", 6 | category: "levels", 7 | P_user: ["MANAGE_GUILD", "MANAGE_ROLES"], 8 | P_bot: ["MANAGE_GUILD", "MANAGE_ROLES"], 9 | run: async (client, message, args) => { 10 | const provide = new Discord.MessageEmbed() 11 | .setTitle("You need to provide a role ID.") 12 | .setColor("#c98aff") 13 | .setTimestamp(); 14 | const No_Roles = new Discord.MessageEmbed() 15 | .setTitle("There is no Level Role with that ID.") 16 | .setColor("#c98aff") 17 | .setTimestamp(); 18 | 19 | const Success = new Discord.MessageEmbed() 20 | .setTitle("Level Role has been successfully removed.") 21 | .setColor("#c98aff") 22 | .setTimestamp(); 23 | 24 | const Role_To_Remove = message.mentions.roles.first(); 25 | if (!Role_To_Remove) return message.channel.send({ embeds: [provide] }); 26 | let pog = await client.data.get(`level_role_${message.guild.id}`); 27 | if (pog) { 28 | let data = pog.find(x => x.Level_Role_ID === Role_To_Remove.id); 29 | if (!data) { 30 | return message.channel.send({ embeds: [No_Roles] }); 31 | } 32 | if (data) { 33 | let yes = pog.indexOf(data); 34 | delete pog[yes]; 35 | 36 | var filter = pog.filter(x => { 37 | return x != null && x != ""; 38 | }); 39 | client.data.set(`level_role_${message.guild.id}`, filter); 40 | message.channel.send({ embeds: [Success] }); 41 | } 42 | } else { 43 | return message.channel.send({ embeds: [No_Roles] }); 44 | } 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /src/commands/Misc/avatar.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const Discord = require("discord.js"); 3 | module.exports = { 4 | name: "avatar", 5 | category: "misc", 6 | aliases: ["av"], 7 | usage: "avatar ", 8 | run: async (client, message, args) => { 9 | let target = await client.resolveMember( 10 | args[0] || message.author.id, 11 | message.guild 12 | ); 13 | if (!target) target = await client.resolveUser(args[0]); 14 | let stat = { 15 | online: "https://emoji.gg/assets/emoji/9166_online.png", 16 | idle: "https://emoji.gg/assets/emoji/3929_idle.png", 17 | dnd: "https://emoji.gg/assets/emoji/2531_dnd.png", 18 | offline: "https://emoji.gg/assets/emoji/7445_status_offline.png" 19 | }; 20 | return message.channel.send({ 21 | embeds: [ 22 | new Discord.MessageEmbed() 23 | .setColor("RANDOM") 24 | .setAuthor( 25 | target.user?.tag ? target.user.tag : target.tag, 26 | target.user?.displayAvatarURL({ dynamic: true }) 27 | ? target.user.displayAvatarURL({ dynamic: true }) 28 | : target.displayAvatarURL({ dynamic: true }) 29 | ) 30 | .setImage( 31 | target.user?.displayAvatarURL({ dynamic: true }) 32 | ? target.user.displayAvatarURL({ dynamic: true }) 33 | : target.displayAvatarURL({ dynamic: true }) 34 | ) 35 | .setFooter( 36 | target.presence?.status ? target.presence.status : "offline", 37 | stat[target.presence?.status ? target.presence.status : "offline"] 38 | ) 39 | ] 40 | }); 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /src/commands/Misc/botInfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, version: djsversion } = require("discord.js"); 2 | const moment = require("moment"); 3 | const momentDurationFormatSetup = require("moment-duration-format"); 4 | const version = require("../../../package.json").version; 5 | const { utc } = require("moment"); 6 | const os = require("os"); 7 | const ms = require("ms") 8 | module.exports = { 9 | name: "botinfo", 10 | description: "Check the info of the bot", 11 | category: "misc", 12 | run: async (client, message, args) => { 13 | const uptime = moment 14 | .duration(client.uptime) 15 | .format(" D [Days] - H [Hours] - m [Minutes] - s [Seconds]"); 16 | 17 | const upvalue = (Date.now() / 1000 - client.uptime / 1000).toFixed(0); 18 | 19 | const core = os.cpus()[0]; 20 | const embed = new MessageEmbed() 21 | .setURL(client.web) 22 | .setThumbnail(client.user.displayAvatarURL()) 23 | .setColor('GREEN') 24 | .addField( 25 | "General", 26 | `**❯ Client:** ${client.user.tag} (${client.user.id}) 27 | **❯ Commands:** ${client.commands.size} 28 | **❯ Servers:** ${client.guilds.cache.size.toLocaleString()} 29 | **❯ Users:** ${client.guilds.cache 30 | .reduce((a, b) => a + b.memberCount, 0) 31 | .toLocaleString()} 32 | **❯ Channels:** ${client.channels.cache.size.toLocaleString()} 33 | **❯ Creation Date:** ${utc(client.user.createdTimestamp).format( 34 | "Do MMMM YYYY HH:mm:ss" 35 | )} 36 | **❯ Node.js:** ${process.version} 37 | **❯ Version:** v${version} 38 | **❯ Discord.js:** v${djsversion} 39 | **>Up Since** 40 | \u200b` 41 | ) 42 | .setColor('GREEN') 43 | .addField( 44 | "System", 45 | `**❯ Platform:** ${process.platform} 46 | 47 | **❯ CPU:** 48 | \u3000 Cores: ${os.cpus().length} 49 | \u3000 Model: ${core.model} 50 | \u3000 Speed: ${core.speed}MHz` 51 | ) 52 | .setTimestamp(); 53 | message.channel.send({ embeds: [embed] }); 54 | }, 55 | };  56 | -------------------------------------------------------------------------------- /src/commands/Misc/emoji-list.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "emoji-list", 5 | category: "misc", 6 | description: "displays every emoji of the guild, where the command is used", 7 | usage: "hey emojis", 8 | botPermission: ["MANAGE_EMOJIS"], 9 | run: async (client, message, args) => { 10 | try { 11 | let Emojis = ""; 12 | let EmojisAnimated = ""; 13 | let EmojiCount = 0; 14 | let Animated = 0; 15 | let OverallEmojis = 0; 16 | function Emoji(id) { 17 | return client.emojis.cache.get(id).toString(); 18 | } 19 | 20 | message.guild.emojis.cache.forEach(emoji => { 21 | OverallEmojis++; 22 | if (emoji.animated) { 23 | Animated++; 24 | EmojisAnimated += Emoji(emoji.id); 25 | } else { 26 | EmojiCount++; 27 | Emojis += Emoji(emoji.id); 28 | } 29 | }); 30 | 31 | let emn = new Discord.MessageEmbed(); 32 | emn.setTitle(`Emojis of [ ${message.guild.name} ] server`); 33 | emn.setColor("GREEN"); 34 | emn.setThumbnail( 35 | message.guild.iconURL({ dynamic: true, format: "png", size: 512 }) 36 | ); 37 | emn.setDescription( 38 | `**Animated [${Animated}]** 39 | ${EmojisAnimated} 40 | **Standard [${EmojiCount}]** 41 | ${Emojis}` 42 | ); 43 | emn.setColor("BLUE"); 44 | message.channel.send({ embeds: [emn] }); 45 | } catch (err) { 46 | return message.channel.send({ 47 | content: `The Error occuring currently is : ${err.message}` 48 | }); 49 | } 50 | } 51 | }; 52 | -------------------------------------------------------------------------------- /src/commands/Misc/ping.js: -------------------------------------------------------------------------------- 1 | const { Message, Client, MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "ping", 5 | description: "Return Bot's Latencies.", 6 | category: "misc", 7 | aliases: ["pg"], 8 | run: async (client, message, args) => { 9 | let circles = { 10 | green: "🟢", 11 | yellow: "🟡", 12 | red: "🔴" 13 | }; 14 | let days = Math.floor(client.uptime / 86400000); 15 | let hours = Math.floor(client.uptime / 3600000) % 24; 16 | let minutes = Math.floor(client.uptime / 60000) % 60; 17 | let seconds = Math.floor(client.uptime / 1000) % 60; 18 | 19 | let botLatency = new Date() - message.createdAt; 20 | let apiLatency = client.ws.ping; 21 | 22 | const pingEmbed = new MessageEmbed() 23 | .setColor("GREEN") 24 | 25 | .addField( 26 | "Bot Latency", 27 | `${ 28 | botLatency <= 200 29 | ? circles.green 30 | : botLatency <= 400 31 | ? circles.yellow 32 | : circles.red 33 | } ${botLatency}ms`, 34 | true 35 | ) 36 | .addField( 37 | "API Latency", 38 | `${ 39 | apiLatency <= 200 40 | ? circles.green 41 | : apiLatency <= 400 42 | ? circles.yellow 43 | : circles.red 44 | } ${apiLatency}ms`, 45 | true 46 | ) 47 | .addField( 48 | "Client Uptime", 49 | `${days}d ${hours}h ${minutes}m ${seconds}s`, 50 | true 51 | ); 52 | return message.reply({ 53 | embeds: [pingEmbed], 54 | allowedMentions: { repliedUser: false } 55 | }); 56 | } 57 | }; 58 | -------------------------------------------------------------------------------- /src/commands/Misc/reaction.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "react", 3 | category: "misc", 4 | args: true, 5 | usage: "react <:emoji: :emoji: ...>", 6 | botPermission: ["ADD_REACTIONS", "MANAGE_MESSAGES", "MANAGE_EMOJIS"], 7 | description: "Reaction Command Like NQN", 8 | run: async (client, message, args) => { 9 | await message.delete(); 10 | //MADE BY FC GLITCH 11 | const _0xfadb43 = _0xce98; 12 | function _0xce98(_0x5252e0, _0x1ba2ea) { 13 | const _0x45fc3a = _0x45fc(); 14 | return ( 15 | (_0xce98 = function(_0xce9801, _0x179593) { 16 | _0xce9801 = _0xce9801 - 0x1e2; 17 | let _0x4d41fa = _0x45fc3a[_0xce9801]; 18 | return _0x4d41fa; 19 | }), 20 | _0xce98(_0x5252e0, _0x1ba2ea) 21 | ); 22 | } 23 | function _0x45fc() { 24 | const _0x4563ad = [ 25 | "28070RraKND", 26 | "user", 27 | "222PKioYV", 28 | "find", 29 | "emoji", 30 | "users", 31 | "cache", 32 | "map", 33 | "join", 34 | "collect", 35 | "2203148RefXEB", 36 | "shift", 37 | "emojis", 38 | "react", 39 | "channel", 40 | "match", 41 | "35185dTkxyJ", 42 | "fetch", 43 | "563659ySwKUI", 44 | "forEach", 45 | "remove", 46 | "8djmDKB", 47 | "then", 48 | "author", 49 | "869BHsohQ", 50 | "135327BGhJdl", 51 | "72jisWnE", 52 | "109420uztPvV", 53 | "32100kDTshy", 54 | "1008rcfozC", 55 | "name", 56 | "createReactionCollector" 57 | ]; 58 | _0x45fc = function() { 59 | return _0x4563ad; 60 | }; 61 | return _0x45fc(); 62 | } 63 | (function(_0x461071, _0x231c4b) { 64 | const _0x47e3bf = _0xce98, 65 | _0x1fa9da = _0x461071(); 66 | while (!![]) { 67 | try { 68 | const _0xdc8a5d = 69 | parseInt(_0x47e3bf(0x1e6)) / 0x1 + 70 | (parseInt(_0x47e3bf(0x1e9)) / 0x2) * 71 | (parseInt(_0x47e3bf(0x1ed)) / 0x3) + 72 | -parseInt(_0x47e3bf(0x1fe)) / 0x4 + 73 | (-parseInt(_0x47e3bf(0x1e4)) / 0x5) * 74 | (-parseInt(_0x47e3bf(0x1f6)) / 0x6) + 75 | (parseInt(_0x47e3bf(0x1f4)) / 0x7) * 76 | (parseInt(_0x47e3bf(0x1f1)) / 0x8) + 77 | (-parseInt(_0x47e3bf(0x1ee)) / 0x9) * 78 | (parseInt(_0x47e3bf(0x1ef)) / 0xa) + 79 | (parseInt(_0x47e3bf(0x1ec)) / 0xb) * 80 | (-parseInt(_0x47e3bf(0x1f0)) / 0xc); 81 | if (_0xdc8a5d === _0x231c4b) break; 82 | else _0x1fa9da["push"](_0x1fa9da["shift"]()); 83 | } catch (_0x58dae9) { 84 | _0x1fa9da["push"](_0x1fa9da["shift"]()); 85 | } 86 | } 87 | })(_0x45fc, 0xa126c); 88 | const [...get] = args, 89 | get_msg = get[0x0] ? Number(get[0x0]) : ![]; 90 | if (get_msg) get[_0xfadb43(0x1ff)](); 91 | const emojis = get[_0xfadb43(0x1fc)]("\x20")[_0xfadb43(0x1e3)]( 92 | /(?<=:)([^:\s]+)(?=:)/g 93 | ); 94 | if (!emojis) return; 95 | emojis[_0xfadb43(0x1e7)](async _0x5d9106 => { 96 | const _0x59a5e0 = _0xfadb43; 97 | let _0x4c880f = await client[_0x59a5e0(0x200)][_0x59a5e0(0x1fa)][ 98 | _0x59a5e0(0x1f7) 99 | ](_0x56dd52 => _0x56dd52[_0x59a5e0(0x1f2)] === _0x5d9106); 100 | if (!_0x4c880f) return; 101 | const _0xe2e697 = (_0x5c2dc6, _0x23ae50) => 102 | (_0x5c2dc6[_0x59a5e0(0x1f8)][_0x59a5e0(0x1f2)] === 103 | _0x4c880f[_0x59a5e0(0x1f2)]) & 104 | (_0x23ae50["id"] === message[_0x59a5e0(0x1eb)]["id"]); 105 | if (get_msg && !isNaN(get_msg)) { 106 | let _0x2bd124 = get_msg - 0x1; 107 | message[_0x59a5e0(0x1e2)]["messages"] 108 | [_0x59a5e0(0x1e5)]({ limit: get_msg }) 109 | [_0x59a5e0(0x1ea)](_0x3993e4 => 110 | _0x3993e4[_0x59a5e0(0x1fb)](_0x10cf92 => _0x10cf92) 111 | ) 112 | [_0x59a5e0(0x1ea)](_0x4a8ad7 => _0x4a8ad7[_0x2bd124]) 113 | ["then"](_0x372747 => _0x372747["react"](_0x4c880f["id"])); 114 | const _0x14f7d4 = await message["channel"]["messages"] 115 | [_0x59a5e0(0x1e5)]({ limit: get_msg }) 116 | [_0x59a5e0(0x1ea)](_0x408278 => 117 | _0x408278[_0x59a5e0(0x1fb)](_0x570287 => _0x570287) 118 | ) 119 | ["then"](_0x50107d => _0x50107d[_0x2bd124]) 120 | [_0x59a5e0(0x1ea)](_0x30bd01 => 121 | _0x30bd01[_0x59a5e0(0x1f3)]({ filter: _0xe2e697 }) 122 | ); 123 | _0x14f7d4["on"](_0x59a5e0(0x1fd), async (_0xad7151, _0x355da1) => { 124 | const _0x1b5284 = _0x59a5e0; 125 | _0xad7151["users"][_0x1b5284(0x1e8)](client[_0x1b5284(0x1f5)]["id"]); 126 | }); 127 | } else { 128 | message[_0x59a5e0(0x1e2)]["messages"] 129 | [_0x59a5e0(0x1e5)]({ limit: 0x1 }) 130 | [_0x59a5e0(0x1ea)](_0x532901 => 131 | _0x532901["map"](_0x815f48 => _0x815f48) 132 | ) 133 | ["then"](_0xdfa562 => _0xdfa562[0x0]) 134 | [_0x59a5e0(0x1ea)](_0x515363 => 135 | _0x515363[_0x59a5e0(0x201)](_0x4c880f["id"]) 136 | ); 137 | const _0x100e2c = await message[_0x59a5e0(0x1e2)]["messages"] 138 | [_0x59a5e0(0x1e5)]({ limit: 0x1 }) 139 | [_0x59a5e0(0x1ea)](_0x4b883f => 140 | _0x4b883f[_0x59a5e0(0x1fb)](_0x4855dc => _0x4855dc) 141 | ) 142 | [_0x59a5e0(0x1ea)](_0x19e725 => _0x19e725[0x0]) 143 | ["then"](_0x2cb7eb => 144 | _0x2cb7eb[_0x59a5e0(0x1f3)]({ filter: _0xe2e697 }) 145 | ); 146 | _0x100e2c["on"](_0x59a5e0(0x1fd), async (_0x2361d9, _0x2f18a8) => { 147 | const _0x1821c5 = _0x59a5e0; 148 | _0x2361d9[_0x1821c5(0x1f9)][_0x1821c5(0x1e8)]( 149 | client[_0x1821c5(0x1f5)]["id"] 150 | ); 151 | }); 152 | } 153 | }); 154 | } 155 | }; 156 | -------------------------------------------------------------------------------- /src/commands/Misc/role-info.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "roleinfo", 5 | description: "shows stats of the mentioned role", 6 | usage: "roleinfo ", 7 | aliases: ["rinfo", "rolei"], 8 | args: true, 9 | category: "misc", 10 | run: async (client, message, args) => { 11 | let role = client.resolveRole(args[0], message.guild); 12 | if (!role) return message.channel.send("**Please Enter A Valid Role!**"); 13 | const status = { 14 | false: "No", 15 | true: "Yes" 16 | }; 17 | const permissions = role.permissions.toArray().map(perm => { 18 | return perm 19 | .toLowerCase() 20 | .replace(/_/g, " ") 21 | .replace(/\w\S*/g, txt => { 22 | return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); 23 | }); 24 | }); 25 | 26 | let roleembed = new MessageEmbed() 27 | .setColor("RANDOM") 28 | .setTitle(`Role Info: \`[ ${role.name} ]\``) 29 | .setThumbnail(message.guild.iconURL()) 30 | .addField("**ID**", `\`${role.id}\``) 31 | .addField("**Hex**", `\`${role.hexColor}\``) 32 | .addField("**Color**", `\`${role.color}\``) 33 | .addField("**Members**", `\`${role.members.size}\``) 34 | .addField("**Position**", `\`${role.position}\``) 35 | .addField("**Permissions**", `**\`${permissions.join(", ")}\`**`) 36 | .addField("**Mentionable**", `\`${status[role.mentionable]}\``) 37 | .setFooter( 38 | message.member.displayName, 39 | message.author.displayAvatarURL(), 40 | true 41 | ) 42 | .setTimestamp(); 43 | 44 | message.channel.send({ embeds: [roleembed] }); 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /src/commands/Misc/say.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | name: "say", 4 | category: "misc", 5 | usage: "say ", 6 | args: true, 7 | run: async (client, message, args) => { 8 | message.delete(); 9 | message.channel.send({ content: args.join(" ") }); 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /src/commands/Misc/userInfo.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const { embed } = require("discord.js"); 3 | const moment = require("moment"); 4 | 5 | module.exports = { 6 | name: "userinfo", 7 | aliases: ["whois", "user"], 8 | usage: "userinfo ", 9 | category: "misc", 10 | description: "Get advance stats of given person or yourself", 11 | run: async (client, message, args) => { 12 | let user = 13 | message.mentions.members.first() || 14 | message.guild.members.cache.get(args[0]) || 15 | message.member; 16 | 17 | if (!user) { 18 | return client.send("Unable to find this person!", { message }); 19 | } 20 | 21 | // Format Permissions 22 | const permissions = user.permissions.toArray().map(perm => { 23 | return perm 24 | .toLowerCase() 25 | .replace(/_/g, " ") 26 | .replace(/\w\S*/g, txt => { 27 | return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); 28 | }); 29 | }); 30 | 31 | //OPTIONS FOR STATUS 32 | 33 | let stat = { 34 | online: "https://emoji.gg/assets/emoji/9166_online.png", 35 | idle: "https://emoji.gg/assets/emoji/3929_idle.png", 36 | dnd: "https://emoji.gg/assets/emoji/2531_dnd.png", 37 | offline: "https://emoji.gg/assets/emoji/7445_status_offline.png" 38 | }; 39 | //NOW BADGES 40 | let badges = await user.user.flags; 41 | badges = await badges.toArray(); 42 | 43 | const emoji = { 44 | brigade: await client.emoji("DGH_Employee"), 45 | partner: await client.emoji("DGH_Partner"), 46 | events: await client.emoji("DGH_hypesquad"), 47 | brillance: await client.emoji("DGH_hypesquadbrillance"), 48 | bravery: await client.emoji("DGH_hypesquadbravery"), 49 | balance: await client.emoji("DGH_hypesquadbalance"), 50 | hunter_gold: await client.emoji("DGH_huntergold"), 51 | hunter: await client.emoji("DGH_hunter"), 52 | support: await client.emoji("DGH_support"), 53 | developers: await client.emoji("DGH_developers"), 54 | nitro: await client.emoji("DGH_nitro"), 55 | boost: await client.emoji("DGH_boosts"), 56 | bot: await client.emoji("DGH_botclassic") 57 | }; 58 | 59 | let newbadges = []; 60 | badges.forEach(m => { 61 | newbadges.push( 62 | m 63 | .replace("DISCORD_EMPLOYEE", `${emoji.brigade} Discord Employee`) 64 | .replace("DISCORD_PARTNER", `${emoji.partner} Discord Partner`) 65 | .replace("HYPESQUAD_EVENTS", `${emoji.events} Hypesquad Events`) 66 | .replace("HOUSE_BRILLIANCE", `${emoji.brillance} Brillance`) 67 | .replace("HOUSE_BRAVERY", `${emoji.bravery} Bravery`) 68 | .replace("HOUSE_BALANCE", `${emoji.balance} Balance`) 69 | .replace("BUGHUNTER_LEVEL_2", `${emoji.hunter_gold} BugHunter Gold`) 70 | .replace("BUGHUNTER_LEVEL_1", `${emoji.hunter} BugHunter`) 71 | .replace("EARLY_SUPPORTER", `${emoji.support} Early Supporter`) 72 | .replace( 73 | "VERIFIED_DEVELOPER", 74 | `${emoji.developers} Verified Developer` 75 | ) 76 | ); 77 | }); 78 | 79 | let embed = new MessageEmbed().setThumbnail( 80 | user.user.displayAvatarURL({ dynamic: true }) 81 | ); 82 | let status_time = user.presence?.activities[0]?.createdTimestamp ?user.presence.activities[0].createdTimestamp : Date.now() 83 | //ACTIVITY 84 | let array = []; 85 | if (user.presence?.activities.length ? user.presence.activities.length : null) { 86 | let data = user.presence.activities; 87 | 88 | for (let i = 0; i < data.length; i++) { 89 | let name = data[i].name || "None"; 90 | let xname = data[i].details || "None"; 91 | let zname = data[i].state || "None"; 92 | let ename = data[i].emoji?.name ? data[i].emoji.name : "None"; 93 | let type = data[i].type; 94 | 95 | array.push( 96 | `**${type}** : \`${name} : ${xname} :\` ${ename} \`: ${zname}\`` 97 | ); 98 | 99 | if (data[i].name === "Spotify") { 100 | embed.setThumbnail( 101 | `https://i.scdn.co/image/${data[i].assets.largeImage.replace( 102 | "spotify:", 103 | "" 104 | )}` 105 | ); 106 | } 107 | 108 | embed.setDescription(array.join(" ")); 109 | } 110 | } 111 | //Check Roles used by members 112 | let roles = user.roles.cache 113 | .map(r => `<@&${r.id}>`) 114 | .join(", ") 115 | .replace(new RegExp(`<@&${message.guild.id}>`, "g"), ""); 116 | if (roles.length === 0) roles = "-"; 117 | 118 | //EMBED COLOR BASED ON member 119 | embed.setColor( 120 | user.displayHexColor === "#000000" ? "#ffffff" : user.displayHexColor 121 | ); 122 | 123 | //OTHER STUFF 124 | embed.setAuthor( 125 | user.user.tag, 126 | user.user.displayAvatarURL({ dynamic: true }) 127 | ); 128 | 129 | //CHECK IF USER HAVE NICKNAME 130 | if (user.nickname !== null) embed.addField("Nickname", user.nickname); 131 | embed 132 | .addField("Joined At", `**\`${moment(user.joinedAt).format("LLLL")}\`**`) 133 | .addField( 134 | "Account Created At", 135 | `**\`${moment(user.createdAt).format("LLLL")} (${moment( 136 | user.user.createdAt, 137 | "YYYYMMDD" 138 | ).fromNow()})\`**` 139 | ) 140 | .addField( 141 | "Common Information", 142 | `**\`Tags: ${user.user.username} 143 | ID: ${user.user.id} 144 | Discriminator: ${user.user.discriminator} 145 | Bot: ${user.user.bot} 146 | Deleted User: ${user.deleted} 147 | Online Time:\`** 148 | ` 149 | ); 150 | let xxx = user.user.avatarURL({ dynamic: true }); 151 | if (xxx.includes("gif")) 152 | embed.addField( 153 | "Badget", 154 | `${emoji.nitro} Nitro\n` + newbadges.join("\n") || "None" 155 | ); 156 | if (!xxx.includes("gif")) 157 | embed.addField("Badget", newbadges.join("\n") || "None"); 158 | embed 159 | .addField("Roles", roles) 160 | .addField("Permissions", `**\`${permissions.join(", ")}\`**`) 161 | .setFooter(user.presence?.status ? user.presence.status : "offline", stat[user.presence?.status ? user.presence.status : "offline"]); 162 | 163 | return message.channel.send({ embeds: [embed] }); 164 | } 165 | }; 166 | -------------------------------------------------------------------------------- /src/commands/Moderation/ban.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"), 2 | ms = require("ms"); 3 | module.exports = { 4 | name: "ban", 5 | aliases: ["b", "banish"], 6 | category: "moderation", 7 | description: "Ban anyone with one shot whithout knowing anyone xD", 8 | usage: "ban <@user> \nban <@user>