├── .eslintrc.json ├── Alcatraz.js ├── LICENSE ├── README.md ├── config.json ├── data └── vide.txt ├── logs ├── error.log └── full.log ├── package.json ├── reactions.js ├── src ├── Client.js ├── assets │ ├── font │ │ ├── CoffinStone-vmmZL.otf │ │ ├── KeepCalm-Medium.ttf │ │ ├── LuckiestGuy-Regular.ttf │ │ ├── Minecraftia.ttf │ │ ├── Noto-CJK.otf │ │ ├── Noto-Emoji.ttf │ │ ├── Noto-Regular.ttf │ │ ├── Pinky Cupid.otf │ │ ├── PokemonGb.ttf │ │ ├── SketchMatch.ttf │ │ ├── arial.ttf │ │ ├── girly.ttf │ │ └── theboldfont.ttf │ └── images │ │ ├── 3ds.png │ │ ├── Thumbs.db │ │ ├── WiiU.png │ │ ├── a-suivre.png │ │ ├── alcatraz-filtre.png │ │ ├── alcatraz-logo.png │ │ ├── approuver.png │ │ ├── asmonaco.png │ │ ├── asse.png │ │ ├── brazzers.png │ │ ├── cadre.png │ │ ├── challenger.png │ │ ├── coeur.png │ │ ├── d-profil.png │ │ ├── dedi.png │ │ ├── flamme.png │ │ ├── gameboy.png │ │ ├── kyon-flingue.png │ │ ├── losc.png │ │ ├── magnifique.png │ │ ├── nickelback.png │ │ ├── ol.png │ │ ├── om.png │ │ ├── panneaupub.png │ │ ├── peintre.png │ │ ├── pokedex.png │ │ ├── ps1.png │ │ ├── ps3.png │ │ ├── ps4.png │ │ ├── ps5.png │ │ ├── psg.png │ │ ├── rainbow.png │ │ ├── rejected.png │ │ ├── rip.png │ │ ├── roi-lion.png │ │ ├── sora-selfie.png │ │ ├── steam-carte.png │ │ ├── steam-classic.png │ │ ├── tatia.png │ │ ├── tattoo.png │ │ ├── tf1.png │ │ ├── thug-life.png │ │ ├── tv.png │ │ ├── vietnam.png │ │ ├── wanted.png │ │ └── xboxone.png ├── commands │ ├── Alcatraz.js │ ├── admin │ │ ├── actpoints.js │ │ ├── desacommande.js │ │ ├── nuke.js │ │ ├── randomcolor.js │ │ ├── say.js │ │ ├── setadminrole.js │ │ ├── setautokick.js │ │ ├── setautorole.js │ │ ├── setcommandpoints.js │ │ ├── setcrownchannel.js │ │ ├── setcrownmessage.js │ │ ├── setcrownrole.js │ │ ├── setcrownschedule.js │ │ ├── setleavechannel.js │ │ ├── setleavemessage.js │ │ ├── setmessagepoints.js │ │ ├── setmodlog.js │ │ ├── setmodrole.js │ │ ├── setmuterole.js │ │ ├── setprefix.js │ │ ├── setsystemchannel.js │ │ ├── settings.js │ │ ├── setverificationchannel.js │ │ ├── setverificationmessage.js │ │ ├── setverificationrole.js │ │ ├── setvoicepoints.js │ │ ├── setwelcomechannel.js │ │ └── setwelcomemessage.js │ ├── anti-raid │ │ ├── addwhitelist.js │ │ ├── config.js │ │ ├── suppwhitelist.js │ │ └── whitelist.js │ ├── avatar │ │ ├── 3ds.js │ │ ├── a-suivre.js │ │ ├── alcatraz-filtre.js │ │ ├── alcatraz-logo.js │ │ ├── approuver.js │ │ ├── asmonaco.js │ │ ├── asse.js │ │ ├── brazzers.js │ │ ├── cadre.js │ │ ├── challenger.js │ │ ├── coeur.js │ │ ├── d-profil.js │ │ ├── flamme.js │ │ ├── gameboy.js │ │ ├── inverse.js │ │ ├── kyon-flingue.js │ │ ├── losc.js │ │ ├── magnifique.js │ │ ├── nickelback.js │ │ ├── noirblanc.js │ │ ├── ol.js │ │ ├── om.js │ │ ├── panneaupub.js │ │ ├── peintre.js │ │ ├── pixel.js │ │ ├── pokedex.js │ │ ├── ps1.js │ │ ├── ps3.js │ │ ├── ps4.js │ │ ├── ps5.js │ │ ├── psg.js │ │ ├── rainbow.js │ │ ├── rejected.js │ │ ├── rip.js │ │ ├── roi-lion.js │ │ ├── sepia.js │ │ ├── sora-selfie.js │ │ ├── steam-carte.js │ │ ├── tattoo.js │ │ ├── tf1.js │ │ ├── thug-life.js │ │ ├── triggered.js │ │ ├── tv.js │ │ ├── vietnam.js │ │ ├── wanted.js │ │ ├── wiiu.js │ │ └── xboxone.js │ ├── backup │ │ ├── backups │ │ │ ├── 780109275937767424.json │ │ │ ├── 780111164523806723.json │ │ │ ├── 780133359518089223.json │ │ │ ├── 780133368279990280.json │ │ │ ├── 780166293037907968.json │ │ │ ├── 780166333403889665.json │ │ │ ├── 780172233871065090.json │ │ │ ├── 780306400139149312.json │ │ │ ├── 877206017434320896.json │ │ │ └── 879494846602149888.json │ │ ├── chargerbackup.js │ │ ├── creebackup.js │ │ └── infobackup.js │ ├── couleur │ │ ├── couleur.js │ │ ├── couleurhasard.js │ │ ├── couleurs.js │ │ ├── creecouleur.js │ │ └── creedefaultcolors.js │ ├── economy │ │ ├── balance.js │ │ ├── daily.js │ │ ├── dailyweek.js │ │ ├── deposit.js │ │ ├── manche.js │ │ ├── retire.js │ │ ├── slots.js │ │ └── work.js │ ├── fun │ │ ├── ascii.js │ │ ├── blague.js │ │ ├── canard.js │ │ ├── captcha.js │ │ ├── chat.js │ │ ├── chien.js │ │ ├── clyde.js │ │ ├── emojify.js │ │ ├── fakeban.js │ │ ├── fakesay.js │ │ ├── kill.js │ │ ├── kiss.js │ │ ├── mcsuccess.js │ │ ├── oiseau.js │ │ ├── punch.js │ │ ├── renard.js │ │ ├── roll.js │ │ ├── shibe.js │ │ ├── tatia.js │ │ ├── trumptweet.js │ │ ├── weed.js │ │ ├── wumpus.js │ │ └── youtube.js │ ├── general │ │ ├── afk.js │ │ ├── bienvenue.js │ │ ├── calculatrice.js │ │ ├── covid.js │ │ ├── embed.js │ │ ├── githubrepo.js │ │ ├── memo.js │ │ ├── pseudo.js │ │ ├── qr-code.js │ │ ├── reportbug.js │ │ ├── snapcode.js │ │ ├── suggestion.js │ │ ├── traduction.js │ │ ├── tweet.js │ │ └── vote.js │ ├── info │ │ ├── admins.js │ │ ├── avatar.js │ │ ├── botinfo.js │ │ ├── creditsbot.js │ │ ├── findid.js │ │ ├── fortnite.js │ │ ├── geolicationip.js │ │ ├── github.js │ │ ├── help.js │ │ ├── insta.js │ │ ├── invitemoi.js │ │ ├── listerole.js │ │ ├── members.js │ │ ├── mods.js │ │ ├── permissions.js │ │ ├── ping.js │ │ ├── prefix.js │ │ ├── roleinfo.js │ │ ├── saloninfo.js │ │ ├── scanweb.js │ │ ├── serverboost.js │ │ ├── servercount.js │ │ ├── servericon.js │ │ ├── serverinfo.js │ │ ├── serverstaff.js │ │ ├── stats.js │ │ ├── steam.js │ │ ├── supportserver.js │ │ ├── texteinfo.js │ │ ├── uptime.js │ │ └── userinfo.js │ ├── jeux │ │ ├── 8ball.js │ │ ├── coinflip.js │ │ ├── pfc.js │ │ └── roulette-russe.js │ ├── levels │ │ ├── addrep.js │ │ ├── delrep.js │ │ ├── offxp.js │ │ ├── onxp.js │ │ ├── rank.js │ │ ├── reputation.js │ │ └── reputations.js │ ├── moderation │ │ ├── addemoji.js │ │ ├── addrole.js │ │ ├── ban.js │ │ ├── clearwarns.js │ │ ├── kick.js │ │ ├── lock.js │ │ ├── mute.js │ │ ├── purge.js │ │ ├── purgebot.js │ │ ├── removerole.js │ │ ├── setnickname.js │ │ ├── slowmode.js │ │ ├── softban.js │ │ ├── sondage.js │ │ ├── unban.js │ │ ├── unmute.js │ │ ├── warn.js │ │ └── warnpurge.js │ ├── nsfw │ │ ├── 4k.js │ │ ├── ass.js │ │ ├── boobs.js │ │ ├── dediboobs.js │ │ ├── gonewild.js │ │ ├── hass.js │ │ ├── hentai.js │ │ ├── hmidriff.js │ │ ├── pgif.js │ │ ├── pussy.js │ │ ├── redtube.js │ │ └── screenweb.js │ ├── owner │ │ ├── annonce.js │ │ ├── createinvite.js │ │ ├── delallservpoints.js │ │ ├── delalluserpoints.js │ │ ├── delservpoints.js │ │ ├── deluserpoints.js │ │ ├── eval.js │ │ ├── quitguild.js │ │ └── servers.js │ └── points │ │ ├── actionpoints.js │ │ ├── couronne.js │ │ ├── givepoints.js │ │ ├── points.js │ │ ├── position.js │ │ ├── totalpoints.js │ │ └── tutopoints.js ├── events │ ├── debug.js │ ├── error.js │ ├── guildCreate.js │ ├── guildDelete.js │ ├── guildMemberAdd.js │ ├── guildMemberRemove.js │ ├── guildMemberUpdate.js │ ├── guildUpdate.js │ ├── message.js │ ├── messageDelete.js │ ├── messageDeleteBulk.js │ ├── messageReactionAdd.js │ ├── messageReactionRemove.js │ ├── messageUpdate.js │ ├── ready.js │ ├── userUpdate.js │ ├── voiceStateUpdate.js │ └── warn.js └── utils │ ├── colors.json │ ├── db.js │ ├── emojis.json │ ├── logger.js │ ├── permissions.json │ ├── utils.js │ └── works.json └── util ├── Canvas.js └── Util.js /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | "node": true 6 | }, 7 | "extends": "eslint:recommended", 8 | "parserOptions": { 9 | "ecmaVersion": 2018, 10 | "sourceType": "module" 11 | }, 12 | "rules": { 13 | "quotes": [ 14 | "error", 15 | "single" 16 | ], 17 | "semi": [ 18 | "error", 19 | "always" 20 | ], 21 | "indent": [ 22 | "error", 23 | 2, 24 | { "SwitchCase": 1 } 25 | ], 26 | "brace-style": [2, "1tbs", { "allowSingleLine": true }], 27 | "require-await": 2, 28 | "space-before-function-paren": ["error", { 29 | "anonymous": "never", 30 | "named": "never", 31 | "asyncArrow": "always" 32 | }], 33 | "no-console": 0 34 | }, 35 | "globals": { 36 | "__basedir": false 37 | } 38 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2021, GalackQSM 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "ownerId": "TON ID", 3 | "ownerTag": "TON TAG", 4 | 5 | "token": "TOKEN BOT", 6 | "BotID": "ID BOT", 7 | "version": "VERSION BOT", 8 | "NomBot": "NOM DU BOT", 9 | "footer": "FOOTER", 10 | 11 | "Topgg": "Cle api pour https://top.gg", 12 | "BOATS": "Cle api pour https://discord.boats", 13 | "VoidBots": "Cle api pour https://voidbots.net", 14 | "SpaceBotList": "Cle api pour https://space-bot-list.xyz", 15 | "InfinityBotList": "Cle api pour https://infinitybotlist.com", 16 | "TrackerGG": "Cle api pour https://tracker.gg", 17 | 18 | "ANTI_INSULTE" : ["putin", "fdp", "enculer", "fils de pute", "salope", "ntm", "nique ta mere", "connard", "batard", "sale noir", "baise ta mere", "mange tes morts", "ta gueule", "bâtard", "nique ta mère"], 19 | 20 | "NomServeur": "NOM DU SERVEUR SUPPORT", 21 | "Support": "LIEN D'INVITATION SANS EXPIRATION", 22 | "bugReportChannelId": "ID DU SALON REPORT", 23 | "modlogChannelId": "ID DU SALON LOG", 24 | "ticketChannelId": "ID DU SALON TICKET", 25 | "apiKeys": { 26 | "catApi": "44d2e7c1-e82b-4fba-bec2-e6b07affb71f", 27 | "googleApi": "AIzaSyCk09BwA1RxwuvEgKkTWqveGqyPfuCMqUI" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /data/vide.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logs/error.log: -------------------------------------------------------------------------------- 1 | 30/08/2021 11:44:13 - error [Alcatraz.js]: getaddrinfo ENOTFOUND space-bot-list.xyz 2 | { 3 | "errno": -3008, 4 | "code": "ENOTFOUND", 5 | "syscall": "getaddrinfo", 6 | "hostname": "space-bot-list.xyz", 7 | "stack": "Error: getaddrinfo ENOTFOUND space-bot-list.xyz 8 | at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)" 9 | } 10 | 30/08/2021 11:44:15 - error [Alcatraz.js]: Cannot create property 'webPort' on boolean 'true' 11 | { 12 | "stack": "TypeError: Cannot create property 'webPort' on boolean 'true' 13 | at new infinity (C:\\Users\\admin\\Desktop\\Alcatraz\ 14 | ode_modules\\infinity-api\\src\\index.js:15:51) 15 | at module.exports (C:\\Users\\admin\\Desktop\\Alcatraz\\src\\events\\ready.js:100:15) 16 | at Client.emit (events.js:327:22) 17 | at WebSocketManager.triggerClientReady (C:\\Users\\admin\\Desktop\\Alcatraz\ 18 | ode_modules\\discord.js\\src\\client\\websocket\\WebSocketManager.js:431:17) 19 | at WebSocketManager.checkShardsReady (C:\\Users\\admin\\Desktop\\Alcatraz\ 20 | ode_modules\\discord.js\\src\\client\\websocket\\WebSocketManager.js:415:10) 21 | at WebSocketShard. (C:\\Users\\admin\\Desktop\\Alcatraz\ 22 | ode_modules\\discord.js\\src\\client\\websocket\\WebSocketManager.js:197:14) 23 | at WebSocketShard.emit (events.js:315:20) 24 | at WebSocketShard.checkReady (C:\\Users\\admin\\Desktop\\Alcatraz\ 25 | ode_modules\\discord.js\\src\\client\\websocket\\WebSocketShard.js:475:12) 26 | at WebSocketShard.onPacket (C:\\Users\\admin\\Desktop\\Alcatraz\ 27 | ode_modules\\discord.js\\src\\client\\websocket\\WebSocketShard.js:447:16) 28 | at WebSocketShard.onMessage (C:\\Users\\admin\\Desktop\\Alcatraz\ 29 | ode_modules\\discord.js\\src\\client\\websocket\\WebSocketShard.js:301:10)" 30 | } 31 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Alcatraz", 3 | "version": "3.0.0", 4 | "description": "Un bot entièrement personnalisable construit avec discord.js par GalackQSM", 5 | "main": "Alcatraz.js", 6 | "dependencies": { 7 | "@spyte-corp/discord.js-remove-on-reaction": "^1.0.5", 8 | "@vitalets/google-translate-api": "^4.0.0", 9 | "ascii-table": "0.0.9", 10 | "better-sqlite3": "^7.1.1", 11 | "boats.js": "^2.5.0", 12 | "canvacord": "^5.0.8", 13 | "common-tags": "^1.8.0", 14 | "cron-parser": "^2.17.0", 15 | "dblapi.js": "^2.4.1", 16 | "discord-backup": "^2.2.5", 17 | "discord-canvas": "^1.4.1", 18 | "discord-giveaways": "^4.5.1", 19 | "discord-paginationembed": "^2.1.0", 20 | "discord.js": "^12.4.0", 21 | "figlet": "^1.5.0", 22 | "gifencoder": "^2.0.1", 23 | "he": "^1.2.0", 24 | "humanize-duration": "^3.24.0", 25 | "infinity-api": "^1.0.9", 26 | "jimp": "^0.16.1", 27 | "mathjs": "^8.0.1", 28 | "moment": "^2.29.1", 29 | "moment-duration-format": "^2.3.2", 30 | "ms": "^2.1.2", 31 | "node": "^15.2.0", 32 | "node-fetch": "^2.6.1", 33 | "node-os-utils": "^1.3.2", 34 | "node-pre-gyp": "^0.16.0", 35 | "node-schedule": "^1.3.2", 36 | "node-superfetch": "^0.1.10", 37 | "snekfetch": "^4.0.4", 38 | "superagent": "^6.1.0", 39 | "winston": "^3.3.3", 40 | "yaml": "^1.10.0", 41 | "yarn": "^1.22.11", 42 | "youtube-search": "^1.1.4" 43 | }, 44 | "devDependencies": { 45 | "electron-rebuild": "^2.3.2", 46 | "nodemon": "^2.0.6" 47 | }, 48 | "scripts": { 49 | "test": "echo \"Error: no test specified\" && exit 1", 50 | "start": "node Alcatraz.js" 51 | }, 52 | "repository": { 53 | "type": "git", 54 | "url": "git+https://GalackQSM@github.com/GalackQSM/AlcatrazV3.git" 55 | }, 56 | "author": "GalackQSM", 57 | "license": "BSD 2-Clause License", 58 | "bugs": { 59 | "url": "https://github.com/GalackQSM/AlcatrazV3/issues" 60 | }, 61 | "homepage": "https://github.com/GalackQSM/AlcatrazV3#readme" 62 | } 63 | -------------------------------------------------------------------------------- /reactions.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = class Reactions { 17 | constructor(channel, member, embed, reactions, timeout = 120000) { 18 | this.channel = channel; 19 | this.memberId = member.id; 20 | this.embed = embed; 21 | this.reactions = reactions; 22 | this.emojis = Object.keys(this.reactions); 23 | this.timeout = timeout; 24 | this.channel.send(this.embed).then(message => { 25 | this.message = message; 26 | this.addReactions(); 27 | this.createCollector(); 28 | }); 29 | } 30 | async addReactions() { 31 | for (const emoji of this.emojis) { 32 | await this.message.react(emoji); 33 | } 34 | } 35 | createCollector() { 36 | 37 | const collector = this.message.createReactionCollector((reaction, user) => { 38 | return (this.emojis.includes(reaction.emoji.name) || this.emojis.includes(reaction.emoji.id)) && 39 | user.id == this.memberId; 40 | }, { time: this.timeout }); 41 | 42 | collector.on('collect', async reaction => { 43 | let newPage = this.reactions[reaction.emoji.name] || this.reactions[reaction.emoji.id]; 44 | if (typeof newPage === 'function') newPage = newPage(); 45 | await this.message.edit(newPage); 46 | await reaction.users.remove(this.memberId); 47 | }); 48 | 49 | collector.on('end', () => { 50 | this.message.reactions.removeAll(); 51 | }); 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /src/assets/font/CoffinStone-vmmZL.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/CoffinStone-vmmZL.otf -------------------------------------------------------------------------------- /src/assets/font/KeepCalm-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/KeepCalm-Medium.ttf -------------------------------------------------------------------------------- /src/assets/font/LuckiestGuy-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/LuckiestGuy-Regular.ttf -------------------------------------------------------------------------------- /src/assets/font/Minecraftia.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/Minecraftia.ttf -------------------------------------------------------------------------------- /src/assets/font/Noto-CJK.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/Noto-CJK.otf -------------------------------------------------------------------------------- /src/assets/font/Noto-Emoji.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/Noto-Emoji.ttf -------------------------------------------------------------------------------- /src/assets/font/Noto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/Noto-Regular.ttf -------------------------------------------------------------------------------- /src/assets/font/Pinky Cupid.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/Pinky Cupid.otf -------------------------------------------------------------------------------- /src/assets/font/PokemonGb.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/PokemonGb.ttf -------------------------------------------------------------------------------- /src/assets/font/SketchMatch.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/SketchMatch.ttf -------------------------------------------------------------------------------- /src/assets/font/arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/arial.ttf -------------------------------------------------------------------------------- /src/assets/font/girly.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/girly.ttf -------------------------------------------------------------------------------- /src/assets/font/theboldfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/font/theboldfont.ttf -------------------------------------------------------------------------------- /src/assets/images/3ds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/3ds.png -------------------------------------------------------------------------------- /src/assets/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/Thumbs.db -------------------------------------------------------------------------------- /src/assets/images/WiiU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/WiiU.png -------------------------------------------------------------------------------- /src/assets/images/a-suivre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/a-suivre.png -------------------------------------------------------------------------------- /src/assets/images/alcatraz-filtre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/alcatraz-filtre.png -------------------------------------------------------------------------------- /src/assets/images/alcatraz-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/alcatraz-logo.png -------------------------------------------------------------------------------- /src/assets/images/approuver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/approuver.png -------------------------------------------------------------------------------- /src/assets/images/asmonaco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/asmonaco.png -------------------------------------------------------------------------------- /src/assets/images/asse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/asse.png -------------------------------------------------------------------------------- /src/assets/images/brazzers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/brazzers.png -------------------------------------------------------------------------------- /src/assets/images/cadre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/cadre.png -------------------------------------------------------------------------------- /src/assets/images/challenger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/challenger.png -------------------------------------------------------------------------------- /src/assets/images/coeur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/coeur.png -------------------------------------------------------------------------------- /src/assets/images/d-profil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/d-profil.png -------------------------------------------------------------------------------- /src/assets/images/dedi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/dedi.png -------------------------------------------------------------------------------- /src/assets/images/flamme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/flamme.png -------------------------------------------------------------------------------- /src/assets/images/gameboy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/gameboy.png -------------------------------------------------------------------------------- /src/assets/images/kyon-flingue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/kyon-flingue.png -------------------------------------------------------------------------------- /src/assets/images/losc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/losc.png -------------------------------------------------------------------------------- /src/assets/images/magnifique.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/magnifique.png -------------------------------------------------------------------------------- /src/assets/images/nickelback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/nickelback.png -------------------------------------------------------------------------------- /src/assets/images/ol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/ol.png -------------------------------------------------------------------------------- /src/assets/images/om.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/om.png -------------------------------------------------------------------------------- /src/assets/images/panneaupub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/panneaupub.png -------------------------------------------------------------------------------- /src/assets/images/peintre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/peintre.png -------------------------------------------------------------------------------- /src/assets/images/pokedex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/pokedex.png -------------------------------------------------------------------------------- /src/assets/images/ps1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/ps1.png -------------------------------------------------------------------------------- /src/assets/images/ps3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/ps3.png -------------------------------------------------------------------------------- /src/assets/images/ps4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/ps4.png -------------------------------------------------------------------------------- /src/assets/images/ps5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/ps5.png -------------------------------------------------------------------------------- /src/assets/images/psg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/psg.png -------------------------------------------------------------------------------- /src/assets/images/rainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/rainbow.png -------------------------------------------------------------------------------- /src/assets/images/rejected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/rejected.png -------------------------------------------------------------------------------- /src/assets/images/rip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/rip.png -------------------------------------------------------------------------------- /src/assets/images/roi-lion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/roi-lion.png -------------------------------------------------------------------------------- /src/assets/images/sora-selfie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/sora-selfie.png -------------------------------------------------------------------------------- /src/assets/images/steam-carte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/steam-carte.png -------------------------------------------------------------------------------- /src/assets/images/steam-classic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/steam-classic.png -------------------------------------------------------------------------------- /src/assets/images/tatia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/tatia.png -------------------------------------------------------------------------------- /src/assets/images/tattoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/tattoo.png -------------------------------------------------------------------------------- /src/assets/images/tf1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/tf1.png -------------------------------------------------------------------------------- /src/assets/images/thug-life.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/thug-life.png -------------------------------------------------------------------------------- /src/assets/images/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/tv.png -------------------------------------------------------------------------------- /src/assets/images/vietnam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/vietnam.png -------------------------------------------------------------------------------- /src/assets/images/wanted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/wanted.png -------------------------------------------------------------------------------- /src/assets/images/xboxone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GalackQSM/AlcatrazV3/5021593d8cfd2e04a52ece73a264d6063ee5d0d4/src/assets/images/xboxone.png -------------------------------------------------------------------------------- /src/commands/admin/nuke.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | const emojis = require('../../utils/emojis.json'); 20 | 21 | module.exports = class NukesalonCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'nuke', 25 | aliases: ['nuke'], 26 | usage: 'nukesalon', 27 | description: 'Recrée un salon', 28 | type: client.types.ADMIN, 29 | userPermissions: ['MANAGE_GUILD'] 30 | }); 31 | } 32 | async run(message, args) { 33 | message.channel.send('**Nuke en cours!**'); 34 | let channel = message.guild.channels.cache.get(message.channel.id); 35 | var position = channel.position; 36 | const member = this.getMemberFromMention(message, args[0]) || 37 | message.guild.members.cache.get(args[0]) || 38 | message.member; 39 | 40 | channel.clone().then((channel1) => { 41 | channel1.setPosition(position); 42 | channel.delete({ timeout: 1500 }); 43 | const embed = new Discord.MessageEmbed() 44 | .setDescription(""+emojis.success+" **Salon nuke avec succès par <@"+member.id+">**") 45 | .setImage(`https://media.giphy.com/media/XUFPGrX5Zis6Y/giphy.gif`) 46 | .setFooter(config.footer) 47 | .setTimestamp() 48 | .setColor("#2f3136"); 49 | 50 | channel1.send(embed); 51 | }); 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /src/commands/admin/randomcolor.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class ToggleRandomColorCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'randomcolor', 24 | usage: 'randomcolor', 25 | description: ` 26 | Active ou désactive l'attribution de rôles de couleur aléatoires lorsque quelqu'un rejoint votre serveur. 27 | `, 28 | type: client.types.ADMIN, 29 | userPermissions: ['MANAGE_GUILD'] 30 | }); 31 | } 32 | run(message) { 33 | let randomColor = message.client.db.settings.selectRandomColor.pluck().get(message.guild.id); 34 | randomColor = 1 - randomColor; // Invert 35 | message.client.db.settings.updateRandomColor.run(randomColor, message.guild.id); 36 | let description, status; 37 | if (randomColor == 1) { 38 | status = '`non actif` ➔ `actif`'; 39 | description = 'Les `Couleurs aléatoire` sont maintenant **actif**. <:valider:774806924712476674>'; 40 | } else { 41 | status = '`actif` ➔ `non actif`'; 42 | description = 'Les `Couleurs aléatoire` sont maintenant **non actif**. <:fail:775004965352898561>'; 43 | } 44 | 45 | const embed = new MessageEmbed() 46 | .setTitle('Paramètres: `Couleurs aléatoire`') 47 | .setThumbnail(message.guild.iconURL()) 48 | .setDescription(description) 49 | .addField('Status', status, true) 50 | .setFooter(config.footer) 51 | .setTimestamp() 52 | .setColor("#2f3136"); 53 | message.channel.send(embed); 54 | } 55 | }; 56 | -------------------------------------------------------------------------------- /src/commands/admin/setprefix.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class SetPrefixCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'setprefix', 24 | aliases: ['setp', 'sp'], 25 | usage: 'setprefix ', 26 | description: 'Définie la commande `prefix` pour votre serveur. Le max `prefix` la longueur est de 3 caractères.', 27 | type: client.types.ADMIN, 28 | userPermissions: ['MANAGE_GUILD'], 29 | examples: ['setprefix !'] 30 | }); 31 | } 32 | run(message, args) { 33 | const oldPrefix = message.client.db.settings.selectPrefix.pluck().get(message.guild.id); 34 | const prefix = args[0]; 35 | if (!prefix) return this.sendErrorMessage(message, 'Argument invalide. Veuillez spécifier un préfix.'); 36 | else if (prefix.length > 3) 37 | return this.sendErrorMessage( 38 | message, 'Argument invalide. Veuillez vous assurer que le préfix ne dépasse pas 3 caractères.' 39 | ); 40 | message.client.db.settings.updatePrefix.run(prefix, message.guild.id); 41 | const embed = new MessageEmbed() 42 | .setTitle('Paramètres: `Prefix`') 43 | .setThumbnail(message.guild.iconURL({ dynamic: true })) 44 | .setDescription('Le `prefix` a été mis à jour avec succès. <:valider:774806924712476674>') 45 | .addField('Prefix', `\`${oldPrefix}\` ➔ \`${prefix}\``) 46 | .setFooter(config.footer) 47 | .setTimestamp() 48 | .setColor("#2f3136"); 49 | message.channel.send(embed); 50 | } 51 | }; 52 | -------------------------------------------------------------------------------- /src/commands/anti-raid/whitelist.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM#0895 le 09 novembre 2020 12 | //● Serveur Discord: https://discord.gg/HPtTfqDdMr 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const Discord = require("discord.js") 18 | const config = require('../../../config.json') 19 | const db = require("quick.db") 20 | const ms = require('parse-ms') 21 | module.exports = class TrustedlistCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'whitelist', 25 | description: 'Voir la liste de la whitelist!', 26 | userPermissions: ['MANAGE_GUILD'], 27 | type: client.types.ANTIRAID 28 | }); 29 | } 30 | async run(message, args) { 31 | let guild = message.guild.iconURL() 32 | 33 | let wordlist = new Discord.MessageEmbed() 34 | .setThumbnail(guild) 35 | .setFooter(config.footer) 36 | .setTimestamp() 37 | .setColor("#2f3136") 38 | let database = db.get(`trustedusers_${message.guild.id}`) 39 | if(database && database.length) { 40 | let array =[] 41 | database.forEach(m => { 42 | array.push(`<@${m.user}>`) 43 | }) 44 | 45 | wordlist.addField('**Liste de la whitelist**', `${array.join("\n")}`) 46 | } 47 | return message.channel.send(wordlist); 48 | }} 49 | -------------------------------------------------------------------------------- /src/commands/avatar/noirblanc.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { createCanvas, loadImage } = require('canvas'); 18 | const request = require('node-superfetch'); 19 | const { greyscale } = require('../../../util/Canvas'); 20 | 21 | module.exports = class NoirBlancCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'noirblanc', 25 | type: client.types.AVATAR, 26 | description: 'Avoir un avatar en noir et blanc.', 27 | throttling: { 28 | usages: 1, 29 | duration: 10 30 | }, 31 | clientPermissions: ['ATTACH_FILES'], 32 | args: [ 33 | { 34 | key: 'image', 35 | type: 'image', 36 | default: msg => member.author.displayAvatarURL({ format: 'png', size: 512 }) 37 | } 38 | ] 39 | }); 40 | } 41 | 42 | async run(msg, { image, args}) { 43 | const member = this.getMemberFromMention(msg, args) || 44 | msg.guild.members.cache.get(args) || 45 | msg.member; 46 | const avatarURL = member.user.displayAvatarURL({ format: 'png', size: 512 }); 47 | try { 48 | const { body } = await request.get(avatarURL); 49 | const data = await loadImage(body); 50 | const canvas = createCanvas(data.width, data.height); 51 | const ctx = canvas.getContext('2d'); 52 | ctx.drawImage(data, 0, 0); 53 | greyscale(ctx, 0, 0, data.width, data.height); 54 | const attachment = canvas.toBuffer(); 55 | if (Buffer.byteLength(attachment) > 8e+6) return msg.reply('L\'image résultante était supérieure à 8 Mo.'); 56 | return msg.channel.send({ files: [{ attachment, name: 'noirblanc.png' }] }); 57 | } catch (err) { 58 | return msg.channel.send(`Oh non, une erreur s'est produite: \`${err.message}\`. Réessayez plus tard!`); 59 | } 60 | } 61 | }; -------------------------------------------------------------------------------- /src/commands/avatar/peintre.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { createCanvas, loadImage } = require('canvas'); 18 | const request = require('node-superfetch'); 19 | const path = require('path'); 20 | 21 | module.exports = class PeintreCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'peintre', 25 | type: client.types.AVATAR, 26 | description: 'Dessine l\'avatar d\'un utilisateur avecsur un tableau de peintre.', 27 | throttling: { 28 | usages: 1, 29 | duration: 10 30 | }, 31 | clientPermissions: ['ATTACH_FILES'], 32 | args: [ 33 | { 34 | key: 'user', 35 | type: 'user', 36 | default: msg => msg.author 37 | } 38 | ] 39 | }); 40 | } 41 | 42 | async run(msg, { user, args }) { 43 | const member = this.getMemberFromMention(msg, args) || 44 | msg.guild.members.cache.get(args) || 45 | msg.member; 46 | const avatarURL = member.user.displayAvatarURL({ format: 'png', size: 512 }); 47 | try { 48 | const base = await loadImage(path.join(__dirname, '..', '..', 'assets', 'images', 'peintre.png')); 49 | const { body } = await request.get(avatarURL); 50 | const avatar = await loadImage(body); 51 | const canvas = createCanvas(base.width, base.height); 52 | const ctx = canvas.getContext('2d'); 53 | ctx.fillStyle = 'white'; 54 | ctx.fillRect(0, 0, base.width, base.height); 55 | ctx.drawImage(avatar, 15, 20, 440, 440); 56 | ctx.drawImage(base, 0, 0); 57 | return msg.channel.send({ files: [{ attachment: canvas.toBuffer(), name: 'peintre.png' }] }); 58 | } catch (err) { 59 | return msg.channel.send(`Oh non, une erreur s'est produite: \`${err.message}\`. Réessayez plus tard!`); 60 | } 61 | } 62 | }; 63 | -------------------------------------------------------------------------------- /src/commands/avatar/sepia.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { createCanvas, loadImage } = require('canvas'); 18 | const request = require('node-superfetch'); 19 | const { sepia } = require('../../../util/Canvas'); 20 | 21 | module.exports = class SepiaCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'sepia', 25 | type: client.types.AVATAR, 26 | description: 'Dessine un avatar d\'un utilisateur en sépia.', 27 | throttling: { 28 | usages: 1, 29 | duration: 10 30 | }, 31 | clientPermissions: ['ATTACH_FILES'], 32 | args: [ 33 | { 34 | key: 'image', 35 | type: 'image', 36 | default: msg => member.author.displayAvatarURL({ format: 'png', size: 512 }) 37 | } 38 | ] 39 | }); 40 | } 41 | 42 | async run(msg, { image, args}) { 43 | const member = this.getMemberFromMention(msg, args) || 44 | msg.guild.members.cache.get(args) || 45 | msg.member; 46 | const avatarURL = member.user.displayAvatarURL({ format: 'png', size: 512 }); 47 | try { 48 | const { body } = await request.get(avatarURL); 49 | const data = await loadImage(body); 50 | const canvas = createCanvas(data.width, data.height); 51 | const ctx = canvas.getContext('2d'); 52 | ctx.drawImage(data, 0, 0); 53 | sepia(ctx, 0, 0, data.width, data.height); 54 | const attachment = canvas.toBuffer(); 55 | if (Buffer.byteLength(attachment) > 8e+6) return msg.reply('L\'image résultante était supérieure à 8 Mo.'); 56 | return msg.channel.send({ files: [{ attachment, name: 'sepia.png' }] }); 57 | } catch (err) { 58 | return msg.channel.send(`Oh non, une erreur s'est produite: \`${err.message}\`. Réessayez plus tard!`); 59 | } 60 | } 61 | }; 62 | -------------------------------------------------------------------------------- /src/commands/avatar/tattoo.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { createCanvas, loadImage } = require('canvas'); 18 | const request = require('node-superfetch'); 19 | const path = require('path'); 20 | 21 | module.exports = class TattooCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'tattoo', 25 | type: client.types.AVATAR, 26 | description: 'Dessine l\'avatar d\'un en mode tatouage', 27 | throttling: { 28 | usages: 1, 29 | duration: 10 30 | }, 31 | clientPermissions: ['ATTACH_FILES'], 32 | args: [ 33 | { 34 | key: 'user', 35 | type: 'user', 36 | default: msg => msg.author 37 | } 38 | ] 39 | }); 40 | } 41 | 42 | async run(msg, { user, args}) { 43 | const member = this.getMemberFromMention(msg, args) || 44 | msg.guild.members.cache.get(args) || 45 | msg.member; 46 | const avatarURL = member.user.displayAvatarURL({ format: 'png', size: 512 }); 47 | try { 48 | const base = await loadImage(path.join(__dirname, '..', '..', 'assets', 'images', 'tattoo.png')); 49 | const { body } = await request.get(avatarURL); 50 | const avatar = await loadImage(body); 51 | const canvas = createCanvas(base.width, base.height); 52 | const ctx = canvas.getContext('2d'); 53 | ctx.drawImage(base, 0, 0); 54 | ctx.rotate(-10 * (Math.PI / 180)); 55 | ctx.drawImage(avatar, 84, 690, 300, 300); 56 | ctx.rotate(10 * (Math.PI / 180)); 57 | return msg.channel.send({ files: [{ attachment: canvas.toBuffer(), name: 'tattoo.png' }] }); 58 | } catch (err) { 59 | return msg.channel.send(`Oh non, une erreur s'est produite: \`${err.message}\`. Réessayez plus tard!`); 60 | } 61 | } 62 | }; 63 | -------------------------------------------------------------------------------- /src/commands/economy/balance.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const db = require('quick.db') 18 | const { MessageEmbed } = require('discord.js') 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class BalanceCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'balance', 25 | aliases: ['bal'], 26 | usage: 'balance [@membre]', 27 | description: 'Vérifier votre solde', 28 | type: client.types.ECONOMY 29 | }); 30 | } 31 | async run (message, args) { 32 | let user = 33 | message.mentions.members.first() || 34 | message.guild.members.cache.get(args[0]) || 35 | message.guild.members.cache.find( 36 | r => 37 | r.user.username.toLowerCase() === args.join(" ").toLocaleLowerCase() 38 | ) || 39 | message.guild.members.cache.find( 40 | r => r.displayName.toLowerCase() === args.join(" ").toLocaleLowerCase() 41 | ) || 42 | message.member; 43 | 44 | let bal = db.fetch(`money_${user.id}`); 45 | 46 | if (bal === null) bal = 0; 47 | 48 | let bank = await db.fetch(`bank_${user.id}`); 49 | 50 | if (bank === null) bank = 0; 51 | 52 | if (user) { 53 | let moneyEmbed = new MessageEmbed() 54 | .setColor("#2f3136") 55 | .setFooter(config.footer) 56 | .setDescription( 57 | "**"+user.user.username+", voici votre solde:**\n\n`Porte-feuille:` "+bal+" AlkaCoins\n`Banque:` "+bank+" AlkaCoins" 58 | ); 59 | message.channel.send(moneyEmbed); 60 | } else { 61 | return message.channel.send("**Entrez un membre valide!**"); 62 | } 63 | } 64 | }; -------------------------------------------------------------------------------- /src/commands/economy/daily.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const db = require('quick.db') 18 | const { MessageEmbed } = require('discord.js') 19 | const ms = require('parse-ms') 20 | const config = require('../../../config.json'); 21 | const emojis = require('../../utils/emojis.json'); 22 | 23 | module.exports = class BalanceCommand extends Command { 24 | constructor(client) { 25 | super(client, { 26 | name: 'daily', 27 | usage: 'daily', 28 | description: 'Récupérer l\'argent du jour', 29 | type: client.types.ECONOMY 30 | }); 31 | } 32 | 33 | async run (message, args) { 34 | let user = message.author; 35 | 36 | let timeout = 86400000; 37 | let amount = `${Math.floor(Math.random() * 500) + 1}`; 38 | 39 | let daily = await db.fetch(`daily_${user.id}`); 40 | 41 | if (daily !== null && timeout - (Date.now() - daily) > 0) { 42 | let time = ms(timeout - (Date.now() - daily)); 43 | 44 | let timeEmbed = new MessageEmbed() 45 | .setAuthor("Déjà réclamer!") 46 | .setColor("#2f3136") 47 | .setFooter(config.footer) 48 | .setDescription(`Tu as déjà demandé aujourd'hui, reviens dans: **${time.hours}heure(s), ${time.minutes}minute(s), ${time.seconds}seconde(s)**`); 49 | message.channel.send(timeEmbed) 50 | } else { 51 | let moneyEmbed = new MessageEmbed() 52 | .setColor("#2f3136") 53 | .setFooter(config.footer) 54 | .setDescription(""+emojis.success+" Vous avez récupéré votre récompense quotidienne de "+amount+" AlkaCoins"); 55 | message.channel.send(moneyEmbed) 56 | db.add(`money_${user.id}`, amount) 57 | db.set(`daily_${user.id}`, Date.now()) 58 | 59 | 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /src/commands/fun/ascii.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const figlet = require("figlet"); 18 | const util = require("util"); 19 | const figletAsync = util.promisify(figlet); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class Ascii extends Command { 23 | 24 | constructor (client) { 25 | super(client, { 26 | name: 'ascii', 27 | usage: 'ascii ', 28 | description: 'Transformez votre texte en caractères ascii ! (moins de 20 caractères)', 29 | type: client.types.FUN, 30 | examples: ['ascii Bonjour tout le monde!'] 31 | 32 | }); 33 | } 34 | 35 | async run (message, args) { 36 | 37 | const text = args.join(" "); 38 | 39 | if(!text.length > 20){ 40 | return message.error("Veuillez préciser un texte valide !"); 41 | } 42 | 43 | const rendered = await figletAsync(text); 44 | message.channel.send("```" + rendered + "```"); 45 | 46 | } 47 | 48 | }; -------------------------------------------------------------------------------- /src/commands/fun/blague.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const Discord = require("discord.js"); 18 | const { MessageEmbed } = require('discord.js'); 19 | const fetch = require("node-fetch"); 20 | const config = require('../../../config.json'); 21 | 22 | 23 | module.exports = class Joke extends Command { 24 | 25 | constructor (client) { 26 | super(client, { 27 | name: 'blague', 28 | aliases: ['joke'], 29 | usage: 'blague', 30 | description: 'Trouver une blague au hasard', 31 | type: client.types.FUN 32 | }); 33 | } 34 | 35 | async run (message, args, data) { 36 | 37 | { 38 | var headers = { Authorization: "PHKgOQejoFh7ipfmOrzji9sRJkOEDd28M0IY6-klwjFojtkMFtfirTl.d4a3.Z--" } 39 | fetch('https://blague.xyz/api/joke/random/', { headers: headers } ) 40 | .then(rep => rep.json() ) 41 | .then(json => { 42 | let random = new MessageEmbed() 43 | .setTitle(""+message.author.username+" voici une blague pour vous.") 44 | .setFooter(config.footer) 45 | .setTimestamp() 46 | .setColor("#2f3136") 47 | .setDescription(`**__Blague:__** ${json.joke["question"]}\n**__Réponse:__** ||${json.joke["answer"]}||`) 48 | message.channel.send(random); 49 | 50 | }) 51 | 52 | } 53 | 54 | } 55 | 56 | }; -------------------------------------------------------------------------------- /src/commands/fun/canard.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const fetch = require('node-fetch'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class DuckCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'canard', 25 | aliases: ['duck'], 26 | usage: 'canard', 27 | description: 'Trouve un canard au hasard pour votre plaisir visuel.', 28 | type: client.types.FUN 29 | }); 30 | } 31 | async run(message) { 32 | try { 33 | const res = await fetch('https://random-d.uk/api/v2/random'); 34 | const img = (await res.json()).url; 35 | const embed = new MessageEmbed() 36 | .setTitle(""+message.author.username+" regarde un canard apparaît 🦆") 37 | .setImage(img) 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | message.channel.send(embed); 42 | } catch (err) { 43 | message.client.logger.error(err.stack); 44 | this.sendErrorMessage(message, 'Un problème est survenu. Veuillez réessayer dans quelques secondes.', err.message); 45 | } 46 | } 47 | }; 48 | -------------------------------------------------------------------------------- /src/commands/fun/chat.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const fetch = require('node-fetch'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class CatCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'chat', 25 | aliases: ['cat'], 26 | usage: 'chat', 27 | description: 'Trouve un chat au hasard pour votre plaisir visuel.', 28 | type: client.types.FUN 29 | }); 30 | } 31 | async run(message) { 32 | const apiKey = message.client.apiKeys.catApi; 33 | try { 34 | const res = await fetch('https://api.thecatapi.com/v1/images/search', { headers: { 'x-api-key': apiKey }}); 35 | const img = (await res.json())[0].url; 36 | const embed = new MessageEmbed() 37 | .setTitle(""+message.author.username+" regarde un chat apparaît 🐱") 38 | .setImage(img) 39 | .setFooter(config.footer) 40 | .setTimestamp() 41 | .setColor("#2f3136"); 42 | message.channel.send(embed); 43 | } catch (err) { 44 | message.client.logger.error(err.stack); 45 | this.sendErrorMessage(message, 'Un problème est survenu. Veuillez réessayer dans quelques secondes.', err.message); 46 | } 47 | } 48 | }; 49 | -------------------------------------------------------------------------------- /src/commands/fun/chien.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const fetch = require('node-fetch'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class DogCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'chien', 25 | aliases: ['dog'], 26 | usage: 'chien', 27 | description: 'Trouve un chien au hasard pour votre plaisir visuel.', 28 | type: client.types.FUN 29 | }); 30 | } 31 | async run(message) { 32 | try { 33 | const res = await fetch('https://dog.ceo/api/breeds/image/random'); 34 | const img = (await res.json()).message; 35 | const embed = new MessageEmbed() 36 | .setTitle(""+message.author.username+" regarde un chien apparaît 🐶") 37 | .setImage(img) 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | message.channel.send(embed); 42 | } catch (err) { 43 | message.client.logger.error(err.stack); 44 | this.sendErrorMessage(message, 'Un problème est survenu. Veuillez réessayer dans quelques secondes.', err.message); 45 | } 46 | } 47 | }; 48 | -------------------------------------------------------------------------------- /src/commands/fun/clyde.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | discord = require("discord.js"); 19 | fetch = require("node-fetch"); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class ClydeCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'clyde', 26 | usage: 'clyde ', 27 | description: 'Génère une image \"clyde\" en utilisant l\'API Nekobot.', 28 | type: client.types.FUN, 29 | examples: ['clyde Alcatraz le meilleur bot open-source'] 30 | }); 31 | } 32 | 33 | async run (message, args) { 34 | 35 | const text = args.join(" "); 36 | 37 | if(!text){ 38 | return message.error("Veuillez préciser un texte valide !"); 39 | } 40 | 41 | try { 42 | const res = await fetch(encodeURI(`https://nekobot.xyz/api/imagegen?type=clyde&text=${text}`)); 43 | const json = await res.json(); 44 | const attachment = new Discord.MessageAttachment(json.message, "clyde.png"); 45 | message.channel.send(attachment); 46 | m.delete(); 47 | } catch(e){ 48 | console.log(e); 49 | m.error("Quelque chose s'est mal passé... Merci de patienter puis réessayez!", null, { 50 | edit: true 51 | }); 52 | } 53 | 54 | } 55 | 56 | }; 57 | 58 | -------------------------------------------------------------------------------- /src/commands/fun/emojify.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | const numberMap = { 21 | '0': ':zero:', 22 | '1': ':one:', 23 | '2': ':two:', 24 | '3': ':three:', 25 | '4': ':four:', 26 | '5': ':five:', 27 | '6': ':six:', 28 | '7': ':seven:', 29 | '8': ':eight:', 30 | '9': ':nine:', 31 | }; 32 | 33 | module.exports = class EmojifyCommand extends Command { 34 | constructor(client) { 35 | super(client, { 36 | name: 'emojify', 37 | aliases: ['sayemoji'], 38 | usage: 'emojify ', 39 | description: 'Échange chaque lettre du message fourni avec un emoji.', 40 | type: client.types.FUN, 41 | examples: ['emojify Alcatraz'] 42 | }); 43 | } 44 | run(message, args) { 45 | if (!args[0]) return this.sendErrorMessage(message, 0, 'Veuillez fournir un message à emojify'); 46 | let msg = message.content.slice(message.content.indexOf(args[0]), message.content.length); 47 | msg = msg.split('').map(c => { 48 | if (c === ' ') return c; 49 | else if (/[0-9]/.test(c)) return numberMap[c]; 50 | else return (/[a-zA-Z]/.test(c)) ? ':regional_indicator_' + c.toLowerCase() + ':' : ''; 51 | }).join(''); 52 | 53 | if (msg.length > 2048) { 54 | msg = msg.slice(0, msg.length - (msg.length - 2033)); 55 | msg = msg.slice(0, msg.lastIndexOf(':')) + '**...**'; 56 | } 57 | 58 | const embed = new MessageEmbed() 59 | .setTitle('Voici ton text en emoji') 60 | .setDescription(msg) 61 | .setFooter(config.footer) 62 | .setTimestamp() 63 | .setColor("#2f3136"); 64 | message.channel.send(embed); 65 | } 66 | }; -------------------------------------------------------------------------------- /src/commands/fun/fakeban.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const he = require('he'); 19 | Discord = require("discord.js"); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class Fakeban extends Command { 23 | constructor (client) { 24 | super(client, { 25 | name: 'fakeban', 26 | usage: 'fakeban @membre', 27 | description: 'Banni une membre pour rigoler', 28 | type: client.types.FUN, 29 | examples: ['fakeban @GalackQSM'] 30 | 31 | }); 32 | } 33 | 34 | async run(message, args, level) { 35 | const user = message.mentions.members.first(); 36 | if (!user) return message.reply("Vous devez mentionner une personne !"); 37 | 38 | const member = message.member; 39 | const fakeban = [ 40 | `https://media1.tenor.com/images/459e6388894ecf845ee7db65476d153e/tenor.gif` 41 | ] 42 | const embed = new MessageEmbed() 43 | .setDescription(`**${member.user.username}** vous avez banni **${user.user.username}**`, message.author.avatarURL) 44 | .setImage(fakeban[Math.floor(Math.random() * fakeban.length)]) 45 | .setFooter(config.footer) 46 | .setTimestamp() 47 | .setColor("#2f3136") 48 | 49 | message.channel.send(embed) 50 | } 51 | }; -------------------------------------------------------------------------------- /src/commands/fun/kill.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | discord = require("discord.js"); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class KillCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'kill', 25 | usage: 'kill', 26 | description: 'Tuer une personne.', 27 | type: client.types.FUN, 28 | examples: ['kill @GalackQSM'] 29 | }); 30 | } 31 | 32 | async run(message, args, level) { 33 | 34 | const user = message.mentions.members.first(); 35 | if (!user) return message.reply("Vous devez mentionner une personne !"); 36 | 37 | const member = message.member; 38 | 39 | 40 | const kill = [ 41 | `https://www.gif-maniac.com/gifs/3/3474.gif`, 42 | `https://risibank.fr/cache/stickers/d1298/129888-full.gif`, 43 | `https://choualbox.com/Img/137764204285.gif`, 44 | `https://i.imgur.com/CjGEReC.gif`, 45 | `https://www.lelouverture.net/wp-content/uploads/2019/12/tenor-1-2.gif`, 46 | `https://choualbox.com/Img/145411159486.gif`, 47 | `https://i.pinimg.com/originals/91/06/b8/9106b8a59e4d271b6e9f3b375b57837a.gif` 48 | ] 49 | 50 | const embed = new MessageEmbed() 51 | .setDescription(`**${member.user.username}** viens de tuer **${user.user.username}** :gun:`, message.author.avatarURL) 52 | .setImage(kill[Math.floor(Math.random() * kill.length)]) 53 | .setFooter(config.footer) 54 | .setTimestamp() 55 | .setColor("#2f3136") 56 | 57 | message.channel.send(embed) 58 | 59 | } 60 | }; -------------------------------------------------------------------------------- /src/commands/fun/oiseau.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const fetch = require('node-fetch'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class BirdCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'oiseau', 25 | usage: 'oiseau', 26 | description: 'Trouve un oiseau au hasard pour votre plaisir visuel.', 27 | type: client.types.FUN 28 | }); 29 | } 30 | async run(message) { 31 | try { 32 | const res = await fetch('http://shibe.online/api/birds'); 33 | const img = (await res.json())[0]; 34 | const embed = new MessageEmbed() 35 | .setTitle(""+message.author.username+" regarde un oiseau apparaît 🐦") 36 | .setImage(img) 37 | .setFooter(config.footer) 38 | .setTimestamp() 39 | .setColor("#2f3136"); 40 | message.channel.send(embed); 41 | } catch (err) { 42 | message.client.logger.error(err.stack); 43 | this.sendErrorMessage(message, 'Un problème est survenu. Veuillez réessayer dans quelques secondes.', err.message); 44 | } 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /src/commands/fun/renard.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const fetch = require('node-fetch'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class FoxCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'renard', 25 | aliases: ['fox'], 26 | usage: 'renard', 27 | description: 'Trouve un renard au hasard pour votre plaisir visuel.', 28 | type: client.types.FUN 29 | }); 30 | } 31 | async run(message) { 32 | try { 33 | const res = await fetch('https://randomfox.ca/floof/'); 34 | const img = (await res.json()).image; 35 | const embed = new MessageEmbed() 36 | .setTitle(""+message.author.username+" regarde un renard apparaît 🦊") 37 | .setImage(img) 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | message.channel.send(embed); 42 | } catch (err) { 43 | message.client.logger.error(err.stack); 44 | this.sendErrorMessage(message, 'Un problème est survenu. Veuillez réessayer dans quelques secondes.', err.message); 45 | } 46 | } 47 | }; 48 | -------------------------------------------------------------------------------- /src/commands/fun/roll.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class RollCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'des', 24 | aliases: ['dice', 'roll'], 25 | usage: 'des ', 26 | description: 'Lance un dé avec le nombre de faces spécifié. Par défaut à 6 côtés si aucun numéro n\'est donné.', 27 | type: client.types.FUN 28 | }); 29 | } 30 | run(message, args) { 31 | let limit = args[0]; 32 | if (!limit) limit = 6; 33 | const n = Math.floor(Math.random() * limit + 1); 34 | if (!n || limit <= 0) this.sendErrorMessage(message, 'Argument invalide. Veuillez spécifier le nombre de faces des dés.'); 35 | const embed = new MessageEmbed() 36 | .setTitle('🎲 Lancer de dès 🎲') 37 | .setDescription(`${message.member}, tu es tombé sur un **${n}**!`) 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | message.channel.send(embed); 42 | } 43 | }; 44 | -------------------------------------------------------------------------------- /src/commands/fun/shibe.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const fetch = require('node-fetch'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class ShibeCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'shibe', 25 | usage: 'shibe', 26 | description: 'Trouve un shibe aléatoire pour votre plaisir visuel.', 27 | type: client.types.FUN 28 | }); 29 | } 30 | async run(message) { 31 | try { 32 | const res = await fetch('http://shibe.online/api/shibes'); 33 | const img = (await res.json())[0]; 34 | const embed = new MessageEmbed() 35 | .setTitle(""+message.author.username+" regarde un shibe apparaît 🐶") 36 | .setImage(img) 37 | .setFooter(config.footer) 38 | .setTimestamp() 39 | .setColor("#2f3136"); 40 | message.channel.send(embed); 41 | } catch (err) { 42 | message.client.logger.error(err.stack); 43 | this.sendErrorMessage(message, 'Un problème est survenu. Veuillez réessayer dans quelques secondes.', err.message); 44 | } 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /src/commands/fun/trumptweet.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const fetch = require('node-fetch'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class TrumpTweetCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'trumptweet', 25 | usage: 'trumptweet ', 26 | description: 'Afficher un tweet personnalisé de Donald Trump avec le message fourni.', 27 | type: client.types.FUN, 28 | examples: ['trumptweet Alcatraz, un bot discord super en open-source!'] 29 | }); 30 | } 31 | async run(message, args) { 32 | 33 | // Get message 34 | if (!args[0]) return this.sendErrorMessage(message, 0, 'Aucun message fourni. Veuillez fournir un message pour tweeter.'); 35 | let tweet = message.content.slice(message.content.indexOf(args[0]), message.content.length); 36 | if (tweet.length > 68) tweet = tweet.slice(0, 65) + '...'; 37 | 38 | try { 39 | const res = await fetch('https://nekobot.xyz/api/imagegen?type=trumptweet&text=' + tweet); 40 | const img = (await res.json()).message; 41 | const embed = new MessageEmbed() 42 | .setTitle(':flag_us: Tweet de Donald Trump :flag_us: ') 43 | .setImage(img) 44 | .setFooter(config.footer) 45 | .setTimestamp() 46 | .setColor("#2f3136"); 47 | message.channel.send(embed); 48 | } catch (err) { 49 | message.client.logger.error(err.stack); 50 | this.sendErrorMessage(message, 'Un problème est survenu. Veuillez réessayer dans quelques secondes.', err.message); 51 | } 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /src/commands/fun/wumpus.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | discord = require("discord.js"); 19 | const emojis = require('../../utils/emojis.json'); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class WeedCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'wumpus', 26 | usage: 'wumpus', 27 | description: 'Voir une photo de Wumpus.', 28 | type: client.types.FUN, 29 | }); 30 | } 31 | 32 | async run(message, args, level) { 33 | 34 | const member = message.member; 35 | 36 | 37 | const wumpus = [ 38 | `https://i.imgur.com/rRZOELH.png`, 39 | `https://i.imgur.com/EheiI8d.jpg`, 40 | `https://i.imgur.com/ZrwUAQO.png`, 41 | `https://i.imgur.com/6IR3ahR.png`, 42 | `https://i.imgur.com/XzrPpC7.jpg`, 43 | `https://i.imgur.com/KRGL2IW.png`, 44 | `https://i.imgur.com/gOwVsxc.jpg`, 45 | `https://i.imgur.com/SyLdkIL.png` 46 | ] 47 | 48 | const embed = new MessageEmbed() 49 | .setDescription("**"+member.user.username+"** Voici une photo de Wumpus "+emojis.wumpus+"", message.author.avatarURL) 50 | .setImage(wumpus[Math.floor(Math.random() * wumpus.length)]) 51 | .setFooter(config.footer) 52 | .setTimestamp() 53 | .setColor("#2f3136") 54 | 55 | message.channel.send(embed) 56 | 57 | } 58 | }; -------------------------------------------------------------------------------- /src/commands/general/afk.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { oneLine } = require('common-tags'); 19 | const db = require('quick.db') 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class AfkCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'afk', 26 | usage: 'afk [raison]', 27 | description: 'Définir le statut comme afk', 28 | type: client.types.GENERAL, 29 | userPermissions: ['MANAGE_GUILD'], 30 | examples: ['afk [raison]'] 31 | }); 32 | } 33 | async run(message, args) { 34 | const content = args.join(" ") 35 | if (!content) return this.sendErrorMessage(message, 0, 'Veuillez fournir une raison.'); 36 | await db.set(`afk-${message.author.id}+${message.guild.id}`, content) 37 | const embed = new MessageEmbed() 38 | .setDescription(`Est maintenant afk\n**Raison :** ${content}`) 39 | .setColor(`#2f3136`) 40 | .setAuthor(message.author.tag, message.author.displayAvatarURL({ dynamic : true })) 41 | .setFooter(config.footer) 42 | message.channel.send(embed); 43 | } 44 | }; -------------------------------------------------------------------------------- /src/commands/general/bienvenue.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const Discord = require("discord.js"); 18 | const fetch = require("node-fetch"); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class Bienvenue extends Command { 22 | 23 | constructor (client) { 24 | super(client, { 25 | name: 'bienvenue', 26 | usage: 'bienvenue <@membre>', 27 | description: 'Souhaiter la bienvenue a un membre!', 28 | type: client.types.GENERAL, 29 | examples: ['bienvenue @membre'] 30 | 31 | }); 32 | } 33 | 34 | async run (message, args, data) { 35 | const bienvenue = [ 36 | `https://media2.giphy.com/media/ASd0Ukj0y3qMM/giphy.gif`, 37 | `https://pa1.narvii.com/6162/e16a71a9c9369bdc54905a08dc07e934f1a2a936_hq.gif`, 38 | `https://i.skyrock.net/2144/96992144/pics/3274872334_1_2_FMkFCm7B.gif` 39 | ] 40 | 41 | const user = message.mentions.members.first(); 42 | if (!user) return message.reply("Vous devez mentionner une personne !"); 43 | const member = message.member; 44 | 45 | var embed = new discord.MessageEmbed() 46 | .setTitle(":hand_splayed: Bienvenue sur le serveur de "+ message.guild.name +"") 47 | .setDescription("**" + member.user.username + "** te souhaite la bienvenue **" + user.user.username + "**") 48 | .setImage(bienvenue[Math.floor(Math.random() * bienvenue.length)]) 49 | .setFooter(config.footer) 50 | .setTimestamp() 51 | .setColor("#2f3136"); 52 | message.channel.send(embed); 53 | 54 | } 55 | 56 | }; -------------------------------------------------------------------------------- /src/commands/general/embed.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | 21 | module.exports = class EmbedCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'embed', 25 | usage: 'embed ', 26 | description: 'Envoie votre message en tant que embed', 27 | type: client.types.GENERAL, 28 | examples: ['embed Alcatraz the best!'] 29 | }); 30 | } 31 | run(message, args) { 32 | const msg = args.join(' '); 33 | if (!msg) return this.sendErrorMessage(message, 0, 'Veuillez fournir un message.'); 34 | const embed = new MessageEmbed() 35 | .setDescription(`${msg}`) 36 | .setFooter(config.footer) 37 | .setTimestamp() 38 | .setColor("#2f3136"); 39 | message.channel.send(embed); 40 | message.delete(); 41 | } 42 | }; -------------------------------------------------------------------------------- /src/commands/general/qr-code.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const querystring = require('querystring'); 17 | const Command = require('../Alcatraz.js'); 18 | const { MessageEmbed } = require('discord.js'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class QrCodeCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'qr-code', 25 | aliases: ['qrcode'], 26 | usage: 'qr-code ', 27 | description: 'Crée un code QR-Code.', 28 | type: client.types.GENERAL, 29 | examples: ['qr-code https://alcatraz-bot.com', 'qr-code Alcatraz le meilleur bot open-source'] 30 | }) 31 | } 32 | 33 | run(message, args) { 34 | const search = querystring.stringify({ chl: args.join(' ') }) 35 | const qr = `https://chart.googleapis.com/chart?chs=200x200&cht=qr&${search}` 36 | 37 | if (!args.length) return message.channel.send(`${message.author}, mettre un texte ou une URL pour crée le QR Code.`) 38 | 39 | const embed = new MessageEmbed() 40 | .setTitle(""+message.author.username+" voici votre QR-Code") 41 | .setDescription("[Vous pouvez télécharger le code ici]("+qr+")") 42 | .setImage(qr) 43 | .setFooter(config.footer) 44 | .setTimestamp() 45 | .setColor("#2f3136"); 46 | 47 | message.channel.send(embed) 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/commands/general/snapcode.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const querystring = require('querystring'); 18 | const { MessageEmbed } = require('discord.js'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class QrCodeCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'snapcode', 25 | usage: 'snapcode ', 26 | description: 'Recherche un SnapCode.', 27 | type: client.types.GENERAL, 28 | examples: ['snapcode Galack-LKI'] 29 | }) 30 | } 31 | 32 | run(message, args) { 33 | const pseudo = args[0] 34 | 35 | const snapcode = `https://feelinsonice.appspot.com/web/deeplink/snapcode?username=${pseudo}&size=320&type=PNG` 36 | 37 | if (!args.length) return message.channel.send(`${message.author}, mettre un pseudo Snap pour faire la recherche.`) 38 | 39 | const embed = new MessageEmbed() 40 | .setTitle(""+message.author.username+" voici le Snapcode") 41 | .setDescription("Voici votre recherche du snapcode: `"+pseudo+"`") 42 | .setImage(snapcode) 43 | .setFooter(config.footer) 44 | .setTimestamp() 45 | .setColor("#2f3136"); 46 | 47 | message.channel.send(embed) 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/commands/general/vote.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const querystring = require('querystring'); 18 | const { MessageEmbed } = require('discord.js'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class VoteCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'vote', 25 | usage: 'vote', 26 | description: 'Votez pour Alcatraz sur les site de bot liste.', 27 | type: client.types.GENERAL, 28 | }) 29 | } 30 | 31 | run(message, args) { 32 | const embed = new MessageEmbed() 33 | .setTitle(""+message.author.username+" voici le lien pour voter ") 34 | .setDescription("Vote pour "+config.NomBot+" sur [Top.gg](https://top.gg/bot/"+config.BotID+"/vote)\nVote pour "+config.NomBot+" sur [Infinity Bot List](https://infinitybotlist.com/bots/"+config.BotID+"/vote)\nVote pour "+config.NomBot+" sur [Discord Boats](https://discord.boats/bot/"+config.BotID+"/vote)\nVote pour "+config.NomBot+" sur [VoidBots](https://voidbots.net/bot/"+config.BotID+"/vote)\nVote pour "+config.NomBot+" sur [Bots For Discord](https://botsfordiscord.com/bot/"+config.BotID+"/vote)") 35 | .setImage("https://i.imgur.com/XdibCd4.png") 36 | .setFooter(config.footer) 37 | .setTimestamp() 38 | .setColor("#2f3136"); 39 | 40 | message.channel.send(embed) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/commands/info/avatar.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class AvatarCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'avatar', 24 | aliases: ['profilepic', 'pic', 'a'], 25 | usage: 'avatar [@membre/ID]', 26 | description: 'Affiche l\'avatar d\'un utilisateur (ou le vôtre, si aucun utilisateur n\'est mentionné).', 27 | type: client.types.INFO, 28 | examples: ['avatar @Alcatraz'] 29 | }); 30 | } 31 | run(message, args) { 32 | const member = this.getMemberFromMention(message, args[0]) || 33 | message.guild.members.cache.get(args[0]) || 34 | message.member; 35 | const embed = new MessageEmbed() 36 | .setTitle(`Avatar de ${member.displayName}`) 37 | .setImage(member.user.displayAvatarURL({ dynamic: true, size: 512 })) 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | message.channel.send(embed); 42 | } 43 | }; 44 | -------------------------------------------------------------------------------- /src/commands/info/creditsbot.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | const { oneLine, stripIndent } = require('common-tags'); 20 | 21 | module.exports = class FindIdCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'creditsbot', 25 | aliases: ['cb'], 26 | usage: 'creditsbot', 27 | description: 'Voir les crédits officiel de la source.', 28 | type: client.types.INFO, 29 | examples: ['creditsbot'] 30 | }); 31 | } 32 | run(message, args) { 33 | const embed = new MessageEmbed() 34 | .setTitle(`Voici les crédits officiel de la source`) 35 | .setDescription("`La source officielle d'Alcatraz est créé par GalackQSM, cet open-source est sous licence (BSD 2-Clause License).`\n\n**__Alcatraz:__**\n**Date de création du projet:** `09 Novembre 2019`\n**Nombre de version totals:** `3 versions`\n\n**__Nos réseaux:__**\n**Site:** https://alcatraz-bot.com\n**Github:** https://github.com/GalackQSM/AlcatrazV3\n**Discord:** https://discord.gg/bp5ANG326t\n**Twitter:** https://twitter.com/AlcatrazBot\n\n© 2019 - 2021 - Alcatraz-Bot.com | Tous droits réserver") 36 | .setFooter(config.footer) 37 | .setImage('https://i.imgur.com/NnT1N6X.png') 38 | .setTimestamp() 39 | .setColor("#2f3136"); 40 | message.channel.send(embed); 41 | } 42 | }; -------------------------------------------------------------------------------- /src/commands/info/findid.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class FindIdCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'findid', 24 | aliases: ['find', 'id'], 25 | usage: 'findid <@membre/@rôle/#salon>', 26 | description: 'Recherche l\'ID de l\'utilisateur, du rôle ou du salon de texte mentionné.', 27 | type: client.types.INFO, 28 | examples: ['findid @Alcatraz ', 'findid #salon'] 29 | }); 30 | } 31 | run(message, args) { 32 | const target = this.getMemberFromMention(message, args[0]) || 33 | this.getRoleFromMention(message, args[0]) || 34 | this.getChannelFromMention(message, args[0]); 35 | if (!target) 36 | return this.sendErrorMessage(message, 0, 'Veuillez mentionner un utilisateur, un rôle ou un salon de texte'); 37 | const id = target.id; 38 | const embed = new MessageEmbed() 39 | .setTitle('Trouver l\'ID') 40 | .addField('Recherche', target, true) 41 | .addField('ID', `\`${id}\``, true) 42 | .setFooter(config.footer) 43 | .setTimestamp() 44 | .setColor("#2f3136"); 45 | message.channel.send(embed); 46 | } 47 | }; -------------------------------------------------------------------------------- /src/commands/info/github.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { oneLine } = require('common-tags'); 19 | const emojis = require('../../utils/emojis.json'); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class GitHubCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'github', 26 | aliases: ['gh', 'repo'], 27 | usage: 'github', 28 | description: 'Affiche le lien vers le référentiel GitHub d\'Alcatraz.', 29 | type: client.types.INFO 30 | }); 31 | } 32 | run(message) { 33 | const embed = new MessageEmbed() 34 | .setTitle(''+emojis.github+' Lien GitHub') 35 | .setThumbnail(message.guild.iconURL()) 36 | .setDescription(oneLine` 37 | [Clique ici](https://github.com/GalackQSM/AlcatrazV3) pour visiter mon référentiel GitHub! 38 | S'il vous plaît, soutenez-moi en mettant en vedette ⭐ le repo, et n'hésitez pas à commenter des problèmes ou des suggestions! 39 | `) 40 | .addField(`<:alcatraz_liens:881311929212215327> Liens`, `**[Ajouter ${config.NomBot}](https://discordapp.com/oauth2/authorize?client_id=${config.BotID}&scope=bot&permissions=2146958847) | [${config.NomServeur}](${config.Support}) | [Github](https://github.com/GalackQSM/AlcatrazV3) | [Site](https://alcatraz-bot.com) | [Dons](https://www.patreon.com/AlcatrazBot) | [Vote](https://top.gg/bot/${config.BotID}/vote)**`) 41 | .setFooter(config.footer) 42 | .setTimestamp() 43 | .setColor("#2f3136"); 44 | message.channel.send(embed); 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /src/commands/info/invitemoi.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { oneLine } = require('common-tags'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class InviteMoiCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'invitemoi', 25 | aliases: ['invite', 'invme', 'im'], 26 | usage: 'inviteme', 27 | description: 'Génère un lien que vous pouvez utiliser pour inviter Alcatraz sur votre propre serveur.', 28 | type: client.types.INFO 29 | }); 30 | } 31 | run(message) { 32 | const embed = new MessageEmbed() 33 | .setTitle('Je serais ravi d\'être sur ton serveur !') 34 | .setThumbnail(message.guild.iconURL()) 35 | .setDescription(oneLine` 36 | [Ajouter ${config.NomBot}](https://discordapp.com/oauth2/authorize?client_id=${config.BotID}&scope=bot&permissions=2146958847) pour m'inviter sur ton serveur !`) 37 | .setFooter(config.footer) 38 | .setTimestamp() 39 | .setColor("#2f3136"); 40 | message.channel.send(embed); 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /src/commands/info/listerole.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class ListeRoleCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'listerole', 24 | aliases: ["lr"], 25 | description: 'Voir la liste de tous les rôles du serveur.', 26 | examples: ["listerole"], 27 | type: client.types.INFO, 28 | 29 | }); 30 | } 31 | async run(message, args) { 32 | const roles = new MessageEmbed() 33 | .setTitle(`📃 Liste des rôles du serveur ${message.guild.name}`) 34 | .setDescription(message.guild.roles.cache.map(r => `${r}`).join(" | ")) 35 | .setFooter(config.footer) 36 | .setTimestamp() 37 | .setColor("#2f3136") 38 | message.channel.send(roles); 39 | } 40 | }; 41 | -------------------------------------------------------------------------------- /src/commands/info/members.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { stripIndent } = require('common-tags'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class MembersCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'members', 25 | aliases: ['memberstatus'], 26 | usage: 'members', 27 | description: 'Affiche le nombre de membres du serveur en ligne, occupés, AFK et hors ligne.', 28 | type: client.types.INFO 29 | }); 30 | } 31 | run(message) { 32 | const online = message.guild.members.cache.array().filter((m) => m.presence.status === 'online').length; 33 | const offline = message.guild.members.cache.array().filter((m) => m.presence.status === 'offline').length; 34 | const dnd = message.guild.members.cache.array().filter((m) => m.presence.status === 'dnd').length; 35 | const afk = message.guild.members.cache.array().filter((m) => m.presence.status === 'idle').length; 36 | const embed = new MessageEmbed() 37 | .setTitle(`Statut des membres du serveur: [${message.guild.members.cache.size}] membres`) 38 | .setThumbnail(message.guild.iconURL({ dynamic: true })) 39 | .setDescription(stripIndent` 40 | :green_circle: **En Ligne**: \`${online}\` membres 41 | 42 | :red_circle: **Occupé**: \`${dnd}\` membres 43 | 44 | :yellow_circle: **AFK**: \`${afk}\` membres 45 | 46 | :white_circle: **Hors Ligne**: \`${offline}\` membres 47 | `) 48 | .setFooter(config.footer) 49 | .setTimestamp() 50 | .setColor("#2f3136"); 51 | message.channel.send(embed); 52 | } 53 | }; -------------------------------------------------------------------------------- /src/commands/info/permissions.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const permissions = require('../../utils/permissions.json'); 19 | const { oneLine } = require('common-tags'); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class PermissionsCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'permissions', 26 | aliases: ['perms'], 27 | usage: 'permissions [@membre/ID]', 28 | description: oneLine` 29 | Affiche toutes les autorisations actuelles pour l'utilisateur spécifié. 30 | Si aucun utilisateur n'est donné, vos propres autorisations seront affichées. 31 | `, 32 | type: client.types.INFO, 33 | examples: ['permissions @Alcatraz'] 34 | }); 35 | } 36 | run(message, args) { 37 | const member = this.getMemberFromMention(message, args[0]) || 38 | message.guild.members.cache.get(args[0]) || 39 | message.member; 40 | const memberPermissions = member.permissions.toArray().sort((a, b) => { 41 | return Object.keys(permissions).indexOf(a) - Object.keys(permissions).indexOf(b); 42 | }).map(p => '`' + permissions[p] + '`').join('\n'); 43 | const embed = new MessageEmbed() 44 | .setTitle(`Permissions de ${member.displayName}`) 45 | .setThumbnail(member.user.displayAvatarURL()) 46 | .setDescription(memberPermissions) 47 | .setFooter(config.footer) 48 | .setTimestamp() 49 | .setColor("#2f3136"); 50 | message.channel.send(embed); 51 | } 52 | }; -------------------------------------------------------------------------------- /src/commands/info/ping.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { stripIndent } = require('common-tags'); 19 | const emojis = require('../../utils/emojis.json'); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class PingCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'ping', 26 | usage: 'ping', 27 | description: 'Obtient la latence actuelle et la latence API d\'Alacatraz.', 28 | type: client.types.INFO 29 | }); 30 | } 31 | async run(message) { 32 | const embed = new MessageEmbed() 33 | .setDescription('Recherche du ping...') 34 | .setColor("#2f3136"); 35 | const msg = await message.channel.send(embed); 36 | const timestamp = (message.editedTimestamp) ? message.editedTimestamp : message.createdTimestamp; 37 | embed.setTitle(''+emojis.pong+' Résultat de la latence!') 38 | .setDescription(stripIndent` 39 | **Latence:** \`${Math.floor(msg.createdTimestamp - timestamp)}ms\` 40 | **Latence API:** \`${Math.round(message.client.ws.ping)}ms\` 41 | `) 42 | .setFooter(config.footer) 43 | .setTimestamp() 44 | .setColor("#2f3136"); 45 | msg.edit(embed); 46 | } 47 | }; 48 | -------------------------------------------------------------------------------- /src/commands/info/prefix.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class PrefixCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'prefix', 24 | aliases: ['pre'], 25 | usage: 'prefix', 26 | description: 'Récupère le préfix actuel de d\'Alcatraz.', 27 | type: client.types.INFO 28 | }); 29 | } 30 | run(message) { 31 | const prefix = message.client.db.settings.selectPrefix.pluck().get(message.guild.id); 32 | const embed = new MessageEmbed() 33 | .setTitle(`Préfix ${config.NomBot}`) 34 | .setThumbnail(message.guild.iconURL({ dynamic: true })) 35 | .addField('Préfix', `\`${prefix}\``, true) 36 | .addField('Exemple', `\`${prefix}help\``, true) 37 | .setFooter(config.footer) 38 | .setTimestamp() 39 | .setColor("#2f3136"); 40 | message.channel.send(embed); 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /src/commands/info/servercount.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { stripIndent } = require('common-tags'); 19 | const emojis = require('../../utils/emojis.json'); 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class ServerCountCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'servercount', 26 | aliases: ['sc'], 27 | usage: 'servercount', 28 | description: 'Récupère les stats des serveurs.', 29 | type: client.types.INFO 30 | }); 31 | } 32 | run(message) { 33 | const counts = stripIndent` 34 | Serveurs :: ${message.client.guilds.cache.size} 35 | Membres :: ${message.client.users.cache.size} 36 | Emojis :: ${message.client.emojis.cache.size} 37 | `; 38 | const embed = new MessageEmbed() 39 | .setTitle(''+emojis.creation+' Information des stats des serveurs') 40 | .setDescription(stripIndent`\`\`\`asciidoc\n${counts}\`\`\``) 41 | .setFooter(config.footer) 42 | .setTimestamp() 43 | .setColor("#2f3136"); 44 | message.channel.send(embed); 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /src/commands/info/servericon.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class ServerIconCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'servericon', 24 | aliases: ['icon', 'i'], 25 | usage: 'servericon', 26 | description: 'Affiche l\'icône du serveur.', 27 | type: client.types.INFO 28 | }); 29 | } 30 | run(message) { 31 | const embed = new MessageEmbed() 32 | .setTitle(`Icône du serveur ${message.guild.name}`) 33 | .setImage(message.guild.iconURL({ dynamic: true, size: 512 }) || 'https://i.imgur.com/0txNqLe.png') 34 | .setFooter(config.footer) 35 | .setTimestamp() 36 | .setColor("#2f3136"); 37 | message.channel.send(embed); 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /src/commands/info/supportserver.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class SupportServerCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'supportserveur', 24 | aliases: ['support', 'ss'], 25 | usage: 'supportserver', 26 | description: 'Affiche le lien d\'invitation vers le serveur de support Discord de d\'Alcatraz.', 27 | type: client.types.INFO 28 | }); 29 | } 30 | run(message) { 31 | const embed = new MessageEmbed() 32 | .setTitle('Serveur d\'assistance') 33 | .setThumbnail(message.guild.iconURL({ dynamic: true })) 34 | .setDescription(`Cliquez [ICI](${config.Support}) pour rejoindre le serveur de support ${config.NomBot}!`) 35 | .addField('Autres Liens', 36 | `**[Invite ${config.NomBot}](https://discordapp.com/oauth2/authorize?client_id=${config.BotID}&scope=bot&permissions=2146958847)**` 37 | ) 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | message.channel.send(embed); 42 | } 43 | }; 44 | -------------------------------------------------------------------------------- /src/commands/info/uptime.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const moment = require('moment'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class UptimeCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'uptime', 25 | aliases: ['up'], 26 | usage: 'uptime', 27 | description: 'Récupère la disponibilité actuelle de d\'Alcatraz.', 28 | type: client.types.INFO 29 | }); 30 | } 31 | run(message) { 32 | const d = moment.duration(message.client.uptime); 33 | const days = (d.days() == 1) ? `${d.days()} jour` : `${d.days()} jours`; 34 | const hours = (d.hours() == 1) ? `${d.hours()} heure` : `${d.hours()} heures`; 35 | const minutes = (d.minutes() == 1) ? `${d.minutes()} minute` : `${d.minutes()} minutes`; 36 | const seconds = (d.seconds() == 1) ? `${d.seconds()} seconde` : `${d.seconds()} secondes`; 37 | const date = moment().subtract(d, 'ms').format('DD/MM/YYYY'); 38 | const embed = new MessageEmbed() 39 | .setTitle(`Temps de disponibilité de ${config.NomBot}`) 40 | .setThumbnail(message.guild.iconURL({ dynamic: true })) 41 | .setDescription(`\`${days}\`, \`${hours}\`, \`${minutes}\`, et \`${seconds}\``) 42 | .addField('Date de la dernière mise à jour', `\`${date}\``) 43 | .setFooter(config.footer) 44 | .setTimestamp() 45 | .setColor("#2f3136"); 46 | message.channel.send(embed); 47 | } 48 | }; 49 | -------------------------------------------------------------------------------- /src/commands/jeux/coinflip.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class CoinFlipCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'coinflip', 24 | aliases: ['cointoss', 'coin', 'flip'], 25 | usage: 'coinflip', 26 | description: 'Lance une pièce.', 27 | type: client.types.JEUX 28 | }); 29 | } 30 | run(message) { 31 | const n = Math.floor(Math.random() * 2); 32 | let result; 33 | if (n === 1) result = 'Face'; 34 | else result = 'Pile'; 35 | const embed = new MessageEmbed() 36 | .setTitle('½ Lance une pièce ½') 37 | .setDescription(`J'ai lancé une pièce pour toi, ${message.member}. C'était **${result}**!`) 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | message.channel.send(embed); 42 | } 43 | }; 44 | -------------------------------------------------------------------------------- /src/commands/jeux/pfc.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const rps = ['ciseaux','pierre', 'feuille']; 19 | const res = ['Ciseaux :v:','Pierre :fist:', 'Feuille :raised_hand:']; 20 | const config = require('../../../config.json'); 21 | 22 | module.exports = class RockPaperScissorsCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'pfc', 26 | usage: 'pfc ', 27 | description: 'Jouez à une partie de pierre-feuille-ciseaux contre Alcatraz!', 28 | type: client.types.JEUX, 29 | examples: ['pfc pierre'] 30 | }); 31 | } 32 | run(message, args) { 33 | let userChoice; 34 | if (args.length) userChoice = args[0].toLowerCase(); 35 | if (!rps.includes(userChoice)) 36 | return this.sendErrorMessage(message, 0, 'Merci d\'entrer `pierre`, `feuille`, ou `ciseaux`.'); 37 | userChoice = rps.indexOf(userChoice); 38 | const botChoice = Math.floor(Math.random()*3); 39 | let result; 40 | if (userChoice === botChoice) result = 'C\'est un match nul!'; 41 | else if (botChoice > userChoice || botChoice === 0 && userChoice === 2) result = `**${config.NomBot}** gagne !`; 42 | else result = `**${message.member.displayName}** gagne !`; 43 | const embed = new MessageEmbed() 44 | .setTitle(`${message.member.displayName} vs. ${config.NomBot}`) 45 | .addField('Votre choix:', res[userChoice], true) 46 | .addField(`Le choix de ${config.NomBot}`, res[botChoice], true) 47 | .addField('Résultat', result, true) 48 | .setFooter(config.footer) 49 | .setTimestamp() 50 | .setColor("#2f3136"); 51 | message.channel.send(embed); 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /src/commands/levels/addrep.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const db = require('quick.db'); 18 | const emojis = require('../../utils/emojis.json'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class AddrepCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'addrep', 25 | aliases: ['arep'], 26 | usage: 'addrep [nombre] [membre]', 27 | description: 'Ajouter des points de réputation à un membre', 28 | ownerOnly: true, 29 | type: client.types.LEVEL 30 | }); 31 | } 32 | async run(message, args) { 33 | 34 | let user = message.mentions.users.first() 35 | if(!user) return this.sendErrorMessage(message, 0, "mentionner un membre pour donner une réputation") 36 | 37 | db.add(`userthanks_${user.id}`, args[1]) 38 | db.set(`cooldown_${message.author.id}`, Date.now()) 39 | 40 | return message.react('👌') 41 | 42 | }}; 43 | -------------------------------------------------------------------------------- /src/commands/levels/delrep.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const db = require('quick.db'); 18 | const config = require('../../../config.json'); 19 | const { MessageEmbed } = require('discord.js'); 20 | const emojis = require('../../utils/emojis.json'); 21 | 22 | module.exports = class DelrepCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'delrep', 26 | aliases: ['dr'], 27 | usage: 'delrep [membre]', 28 | description: 'Effacer les réputations d\'un membre', 29 | ownerOnly: true, 30 | type: client.types.LEVEL 31 | }); 32 | } 33 | async run(message) { 34 | let user = message.mentions.users.first() 35 | let reps = await db.get(`userthanks_${user.id}`) 36 | if(!user) return this.sendErrorMessage(message, 0, "mentionner un membre pour supprimer la réputation") 37 | 38 | db.delete(`userthanks_${user.id}`, reps) 39 | 40 | const embed = new MessageEmbed() 41 | 42 | .setColor("#2f3136") 43 | .setFooter(config.footer) 44 | .setDescription(""+emojis.success+" **Vous avez bien supprimez **"+reps+" réputation(s)** à <@"+user.id+">.") 45 | return message.channel.send(embed) 46 | 47 | }}; 48 | -------------------------------------------------------------------------------- /src/commands/levels/offxp.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const db = require('quick.db'); 18 | const config = require('../../../config.json'); 19 | const emojis = require('../../utils/emojis.json'); 20 | 21 | module.exports = class MyVouchCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'offxp', 25 | aliases: ['resetxp', 'dxp'], 26 | description: 'Désactiver les messages Xp', 27 | ownerOnly: true, 28 | type: client.types.LEVEL 29 | }); 30 | } 31 | async run(message) { 32 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**Vous n'avez pas les autorisations requises ! - [ADMINISTRATEUR]**") 33 | 34 | try { 35 | let a = await db.fetch(`guildMessages_${message.guild.id}`) 36 | 37 | if (!a) { 38 | return message.channel.send("**Les messages XP sont déjà désactivés sur le serveur!**") 39 | } else { 40 | db.delete(`guildMessages_${message.guild.id}`) 41 | 42 | const embed = new Discord.MessageEmbed() 43 | .setDescription(""+emojis.success+" Les messages XP sont désactivés avec succès!") 44 | .setFooter(config.footer) 45 | .setTimestamp() 46 | .setColor("#2f3136"); 47 | message.channel.send(embed); 48 | 49 | } 50 | return; 51 | } catch { 52 | return message.channel.send("**Quelque chose s'est mal passé!**") 53 | } 54 | }} -------------------------------------------------------------------------------- /src/commands/levels/onxp.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const db = require('quick.db'); 18 | const config = require('../../../config.json'); 19 | const emojis = require('../../utils/emojis.json'); 20 | 21 | module.exports = class MyVouchCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'onxp', 25 | aliases: ['sxp'], 26 | description: 'Activer le sytème d\'XP', 27 | ownerOnly: true, 28 | type: client.types.LEVEL 29 | }); 30 | } 31 | async run(message) { 32 | if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("**Vous n'avez pas les autorisations requises ! - [ADMINISTRATEUR]**") 33 | 34 | try { 35 | let a = await db.fetch(`guildMessages_${message.guild.id}`) 36 | 37 | if (a) { 38 | return message.channel.send("**Les messages XP sont déjà activés sur le serveur!**") 39 | } else { 40 | db.set(`guildMessages_${message.guild.id}`, 1) 41 | const embed = new Discord.MessageEmbed() 42 | .setDescription(""+emojis.success+" Les messages XP sont activés avec succès!") 43 | .setFooter(config.footer) 44 | .setTimestamp() 45 | .setColor("#2f3136"); 46 | message.channel.send(embed); 47 | } 48 | return; 49 | } catch (e) { 50 | console.log(e) 51 | return message.channel.send("**Quelque chose s'est mal passé!**") 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /src/commands/levels/reputations.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const db = require('quick.db'); 18 | const Discord = require('discord.js'); 19 | const config = require('../../../config.json'); 20 | const { MessageEmbed } = require('discord.js'); 21 | 22 | module.exports = class ReputationsCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'reputations', 26 | aliases: ['reps'], 27 | usage: 'reputations [membre]', 28 | description: ' Affiche les réputations d\'un membre', 29 | type: client.types.LEVEL 30 | }); 31 | } 32 | async run(message) { 33 | let user = message.mentions.users.first() || message.author 34 | let thanks = await db.get(`userthanks_${user.id}`) 35 | let thanksl = await db.get(`userthanks_${user.id}`) 36 | 37 | if(thanks > 10) thanks = "Niveau 1" 38 | if(thanks > 0) thanks = "Niveau 0" 39 | if(thanks > 20) thanks = "Niveau 2" 40 | if(thanks > 30) thanks = "Niveau 3" 41 | if(thanks > 40) thanks = "Niveau 4" 42 | if(thanks > 50) thanks = "Niveau 5" 43 | if(thanks > 60) thanks = "Niveau 6" 44 | if(thanks > 70) thanks = "Niveau 7" 45 | if(thanks > 80) thanks = "Niveau 8" 46 | if(thanks > 90) thanks = "Niveau 9" 47 | if(thanks > 100) thanks = "Niveau MAX" 48 | if(thanks === null) thanks = "Aucun niveau" 49 | let embed = new Discord.MessageEmbed() 50 | .setAuthor(user.username || user.user.username , user.displayAvatarURL() || user.user.displayAvatarURL()) 51 | .addField(`Niveau de l'utilisateur`, thanks || 'Nouveau', false) 52 | .addField(`Nombre total des réputations`, thanksl || '0', false) 53 | .setTimestamp() 54 | .setColor("#2f3136") 55 | .setFooter(config.footer) 56 | message.channel.send(embed) 57 | } 58 | }; -------------------------------------------------------------------------------- /src/commands/nsfw/screenweb.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | discord = require("discord.js"); 19 | const request = require('node-superfetch'); 20 | const emojis = require('../../utils/emojis.json'); 21 | const config = require('../../../config.json'); 22 | 23 | module.exports = class ScreenwebCommand extends Command { 24 | constructor(client) { 25 | super(client, { 26 | name: 'screenweb', 27 | usage: 'screenweb [URL]', 28 | description: 'Avoir un screen d\'un site web.', 29 | type: client.types.NSFW, 30 | examples: ['screenweb https://discord.com'] 31 | }); 32 | } 33 | async run(message, args) { 34 | const embed = new MessageEmbed().setColor(0x00FFFF); 35 | if (!message.channel.nsfw) { 36 | embed.setTitle(''+emojis.nsfw+' NSFW') 37 | .setDescription("Impossible d'afficher le contenu NSFW dans un salon SFW.") 38 | .setFooter(config.footer) 39 | .setTimestamp() 40 | .setColor("#2f3136"); 41 | 42 | return message.channel.send({embed}); 43 | } else 44 | try { 45 | if (args.length !== 0) { 46 | const { body } = await request.get(`https://image.thum.io/get/width/1920/crop/675/noanimate/${args[0]}`); 47 | return message.channel.send({ files: [{ attachment: body, name: 'screenshot.png' }] }); 48 | } else { 49 | return message.reply("Utilisation de la commande: `screenweb `") 50 | } 51 | } catch (err) { 52 | return message.reply(`Oh non, une erreur s'est produite: \`${err.message}\`.`); 53 | } 54 | } 55 | }; 56 | 57 | -------------------------------------------------------------------------------- /src/commands/owner/createinvite.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { Message } = require('discord.js'); 18 | 19 | module.exports = class createInvite extends Command { 20 | constructor(client) { 21 | super(client, { 22 | name: "createinvite", 23 | aliases: ['crinv', 'createinv'], 24 | usage: 'createinvite [ID Serveur]', 25 | description: "Crée une invitation sur un serveur et la supprime lorsque vous rejoignez.", 26 | type: client.types.OWNER, 27 | ownerOnly: true, 28 | }); 29 | } 30 | async run(message, args) { 31 | function send(invite, generated){ 32 | const string = `Voici le lien du serveur ;) (${generated ? 'nouveau' : 'vieux'} invite)`; 33 | return message.author.send(`${string}\n${invite}`) 34 | .catch(() => message.channel.send(`${string}\n${invite}`)); 35 | } 36 | const guildID = args[0]; 37 | if(!guildID) return this.sendErrorMessage(message, 0, 'Fournir l\'ID du serveur'); 38 | const guild = this.client.guilds.cache.get(guildID); 39 | if(!guild) return this.sendErrorMessage(message, 0, `${guildID} n'est pas un serveur valide`); 40 | if(!guild.me.permissions.has("CREATE_INSTANT_INVITE")) return this.sendErrorMessage(message, 0, 'Alcatraz n\'a pas les autorisations sur ce serveur'); 41 | const invites = guild.fetchInvites().catch(()=>{}); 42 | if(invites && invites.size) return send(invites.random(), false); 43 | const channel = guild.channels.cache.filter(c => c.type == "text").random(); 44 | const invite = await channel.createInvite({maxUses: 1, maxAge: 150, unique: true}); 45 | return send(invite, true); 46 | } 47 | }; -------------------------------------------------------------------------------- /src/commands/owner/delallservpoints.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | const emojis = require('../../utils/emojis.json'); 20 | 21 | const rgx = /^(?:<@!?)?(\d+)>?$/; 22 | 23 | module.exports = class WipeAllTotalPointsCommand extends Command { 24 | constructor(client) { 25 | super(client, { 26 | name: 'delallservpoints', 27 | usage: 'delallservpoints [ID serveur]', 28 | description: 'Efface les points de tous les membres et le nombre total de points sur le serveur avec l\'ID fourni.', 29 | type: client.types.OWNER, 30 | ownerOnly: true, 31 | examples: ['delallservpoints 709992782252474429'] 32 | }); 33 | } 34 | run(message, args) { 35 | const guildId = args[0]; 36 | if (!rgx.test(guildId)) 37 | return this.sendErrorMessage(message, 0, 'Veuillez fournir un identifiant de serveur valide'); 38 | const guild = message.client.guilds.cache.get(guildId); 39 | if (!guild) return this.sendErrorMessage(message, 0, 'Impossible de trouver le serveur, veuillez vérifier l\'ID fourni'); 40 | message.client.db.users.wipeAllTotalPoints.run(guildId); 41 | const embed = new MessageEmbed() 42 | .setTitle('J\'ai bien effacé tous les points totaux du serveur') 43 | .setDescription(""+emojis.success+" Les points et le total des points de **"+guild.name+"** ont été effacés avec succès.") 44 | .setFooter(config.footer) 45 | .setTimestamp() 46 | .setColor("#2f3136"); 47 | message.channel.send(embed); 48 | } 49 | }; -------------------------------------------------------------------------------- /src/commands/owner/delalluserpoints.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | const emojis = require('../../utils/emojis.json'); 20 | 21 | module.exports = class WipeTotalPointsCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'delalluserpoints', 25 | usage: 'delalluserpoints <@membre/ID>', 26 | description: 'Efface les points de l\'utilisateur et le total des points fournis.', 27 | type: client.types.OWNER, 28 | ownerOnly: true, 29 | examples: ['delalluserpoints @GalackQSM'] 30 | }); 31 | } 32 | run(message, args) { 33 | const member = this.getMemberFromMention(message, args[0]) || message.guild.members.cache.get(args[0]); 34 | if (!member) 35 | return this.sendErrorMessage(message, 0, 'Veuillez mentionner un utilisateur ou fournir un ID utilisateur valide'); 36 | message.client.db.users.wipeTotalPoints.run(member.id, message.guild.id); 37 | const embed = new MessageEmbed() 38 | .setTitle('J\'ai bien effacé tous les points totaux du membre') 39 | .setDescription(""+emojis.success+" Les points et le total des points de "+member+" ont été effacés avec succès.") 40 | .setFooter(config.footer) 41 | .setTimestamp() 42 | .setColor("#2f3136"); 43 | message.channel.send(embed); 44 | } 45 | }; -------------------------------------------------------------------------------- /src/commands/owner/delservpoints.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | const rgx = /^(?:<@!?)?(\d+)>?$/; 21 | 22 | module.exports = class WipeAllPointsCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'delservpoints', 26 | usage: 'delservpoints ', 27 | description: 'Efface tous les points des membres du serveur avec l\'ID fourni.', 28 | type: client.types.OWNER, 29 | ownerOnly: true, 30 | examples: ['delservpoints 709992782252474429'] 31 | }); 32 | } 33 | run(message, args) { 34 | const guildId = args[0]; 35 | if (!rgx.test(guildId)) 36 | return this.sendErrorMessage(message, 0, 'Veuillez fournir un identifiant de serveur valide'); 37 | const guild = message.client.guilds.cache.get(guildId); 38 | if (!guild) return this.sendErrorMessage(message, 0, 'Impossible de trouver le serveur, veuillez vérifier l\'ID fourni'); 39 | message.client.db.users.wipeAllPoints.run(guildId); 40 | const embed = new MessageEmbed() 41 | .setTitle('J\'ai bien effacé tous les points du serveur') 42 | .setDescription(`Les points de **${guild.name}** ont bien été effacés.`) 43 | .setFooter(config.footer) 44 | .setTimestamp() 45 | .setColor("#2f3136"); 46 | message.channel.send(embed); 47 | } 48 | }; -------------------------------------------------------------------------------- /src/commands/owner/deluserpoints.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class WipePointsCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'deluserpoints', 24 | usage: 'deluserpoints <@membre/ID>', 25 | description: 'Efface les points de l\'utilisateur fournis.', 26 | type: client.types.OWNER, 27 | ownerOnly: true, 28 | examples: ['deluserpoints @GalackQSM'] 29 | }); 30 | } 31 | run(message, args) { 32 | const member = this.getMemberFromMention(message, args[0]) || message.guild.members.cache.get(args[0]); 33 | if (!member) 34 | return this.sendErrorMessage(message, 0, 'Veuillez mentionner un utilisateur ou fournir un ID utilisateur valide'); 35 | message.client.db.users.wipePoints.run(member.id, message.guild.id); 36 | const embed = new MessageEmbed() 37 | .setTitle('J\'ai bien effacé tous les points du membre') 38 | .setDescription(`Les points de ${member} ont bien été effacés.`) 39 | .setFooter(config.footer) 40 | .setTimestamp() 41 | .setColor("#2f3136"); 42 | message.channel.send(embed); 43 | } 44 | }; -------------------------------------------------------------------------------- /src/commands/owner/eval.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | 19 | module.exports = class EvalCommand extends Command { 20 | constructor(client) { 21 | super(client, { 22 | name: 'eval', 23 | usage: 'eval ', 24 | description: 'Exécute le code fourni et affiche la sortie.', 25 | type: client.types.OWNER, 26 | ownerOnly: true, 27 | examples: ['eval 1 + 1'] 28 | }); 29 | } 30 | run(message, args) { 31 | const input = args.join(' '); 32 | if (!input) return this.sendErrorMessage(message, 0, 'Veuillez fournir le code pour l\'évaluer'); 33 | if(!input.toLowerCase().includes('token')) { 34 | 35 | const embed = new MessageEmbed(); 36 | 37 | try { 38 | let output = eval(input); 39 | if (typeof output !== 'string') output = require('util').inspect(output, { depth: 0 }); 40 | 41 | embed 42 | .addField('Demande', `\`\`\`js\n${input.length > 1024 ? 'Trop grand pour être affiché.' : input}\`\`\``) 43 | .addField('Résultat', `\`\`\`js\n${output.length > 1024 ? 'Trop grand pour être affiché.' : output}\`\`\``) 44 | .setColor('#66FF00'); 45 | 46 | } catch(err) { 47 | embed 48 | .addField('Demande', `\`\`\`js\n${input.length > 1024 ? 'Trop grand pour être affiché.' : input}\`\`\``) 49 | .addField('Résultat', `\`\`\`js\n${err.length > 1024 ? 'Trop grand pour être affiché.' : err}\`\`\``) 50 | .setColor('#FF0000'); 51 | } 52 | 53 | message.channel.send(embed); 54 | 55 | } else { 56 | message.channel.send('Oups, j\'ai failli donner mon Token, qu\'elle bouler.'); 57 | } 58 | } 59 | }; -------------------------------------------------------------------------------- /src/commands/owner/quitguild.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | const rgx = /^(?:<@!?)?(\d+)>?$/; 21 | 22 | module.exports = class LeaveGuildCommand extends Command { 23 | constructor(client) { 24 | super(client, { 25 | name: 'quitguild', 26 | usage: 'quitguild ', 27 | description: 'Force Alcatraz à quitter le serveur spécifié.', 28 | type: client.types.OWNER, 29 | ownerOnly: true, 30 | examples: ['quitguild 709992782252474429'] 31 | }); 32 | } 33 | async run(message, args) { 34 | const guildId = args[0]; 35 | if (!rgx.test(guildId)) 36 | return this.sendErrorMessage(message, 0, 'Veuillez fournir un identifiant de serveur valide'); 37 | const guild = message.client.guilds.cache.get(guildId); 38 | if (!guild) return this.sendErrorMessage(message, 0, 'Impossible de trouver le serveur, veuillez vérifier l\'ID fourni'); 39 | await guild.leave(); 40 | const embed = new MessageEmbed() 41 | .setTitle('J\'ai bien quitté le serveur de force') 42 | .setDescription(`J'ai quitté avec succès le serveur **${guild.name}**.`) 43 | .setFooter(config.footer) 44 | .setTimestamp() 45 | .setColor("#2f3136"); 46 | message.channel.send(embed); 47 | } 48 | }; 49 | -------------------------------------------------------------------------------- /src/commands/points/actionpoints.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { stripIndent } = require('common-tags'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class PointPerCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'actionpoints', 25 | aliases: ['actpoint', 'ap'], 26 | usage: 'actionpoints', 27 | description: 'Affiche le nombre de points gagnés par action.', 28 | type: client.types.POINTS 29 | }); 30 | } 31 | run(message) { 32 | 33 | const { message_points: messagePoints, command_points: commandPoints, voice_points: voicePoints } 34 | = message.client.db.settings.selectPoints.get(message.guild.id); 35 | const pointsPer = stripIndent` 36 | Points de message :: ${messagePoints} par message 37 | Points de commande :: ${commandPoints} par commande 38 | Points de vocal :: ${voicePoints} par minute 39 | `; 40 | 41 | const embed = new MessageEmbed() 42 | .setTitle('Points par action') 43 | .setThumbnail(message.guild.iconURL({ dynamic: true })) 44 | .setDescription(`\`\`\`asciidoc\n${pointsPer}\`\`\``) 45 | .setFooter(config.footer) 46 | .setTimestamp() 47 | .setColor("#2f3136"); 48 | message.channel.send(embed); 49 | } 50 | }; -------------------------------------------------------------------------------- /src/commands/points/couronne.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class CrownCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'couronne', 24 | usage: 'couronne', 25 | description: 'Affiche tous les membres couronnés du serveur, le rôle de la couronne et le calendrier de la couronne.', 26 | type: client.types.POINTS 27 | }); 28 | } 29 | run(message) { 30 | const { crown_role_id: crownRoleId, crown_schedule: crownSchedule } = 31 | message.client.db.settings.selectCrown.get(message.guild.id); 32 | const crownRole = message.guild.roles.cache.get(crownRoleId) || '`Aucun`'; 33 | const crowned = message.guild.members.cache.filter(m => { 34 | if (m.roles.cache.find(r => r === crownRole)) return true; 35 | }).array(); 36 | 37 | let description = message.client.utils.trimStringFromArray(crowned); 38 | if (crowned.length === 0) description = 'Personne n\'a la couronne!'; 39 | 40 | const embed = new MessageEmbed() 41 | .setTitle(':crown: Membres couronnés :crown:') 42 | .setDescription(description) 43 | .addField('Rôle de la Couronne', crownRole) 44 | .addField('Calendrier de la Couronne', `\`${crownSchedule || 'Aucun calendrier fourni'}\``) 45 | .setFooter(config.footer) 46 | .setTimestamp() 47 | .setColor("#2f3136"); 48 | message.channel.send(embed); 49 | } 50 | }; -------------------------------------------------------------------------------- /src/commands/points/points.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class PointsCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'points', 24 | aliases: ['p'], 25 | usage: 'points <@membre/ID>', 26 | description: 'Récupère les points d\'un utilisateur. Si aucun utilisateur n\'est donné, vos propres points seront affichés.', 27 | type: client.types.POINTS, 28 | examples: ['points @GalackQSM'] 29 | }); 30 | } 31 | run(message, args) { 32 | const member = this.getMemberFromMention(message, args[0]) || 33 | message.guild.members.cache.get(args[0]) || 34 | message.member; 35 | const points = message.client.db.users.selectPoints.pluck().get(member.id, message.guild.id); 36 | const embed = new MessageEmbed() 37 | .setTitle(`Points actuel de ${member.displayName}`) 38 | .setThumbnail(member.user.displayAvatarURL({ dynamic: true })) 39 | .addField('Membre', message.member, true) 40 | .addField('Points', `\`${points}\``, true) 41 | .setFooter(config.footer) 42 | .setTimestamp() 43 | .setColor("#2f3136"); 44 | message.channel.send(embed); 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /src/commands/points/position.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const { oneLine } = require('common-tags'); 19 | const config = require('../../../config.json'); 20 | 21 | module.exports = class PositionCommand extends Command { 22 | constructor(client) { 23 | super(client, { 24 | name: 'position', 25 | aliases: ['pos'], 26 | usage: 'position <@membre/ID>', 27 | description: oneLine` 28 | Récupère la position actuelle du classement d'un utilisateur. 29 | Si aucun utilisateur n'est indiqué, votre propre position sera affichée.`, 30 | type: client.types.POINTS, 31 | examples: ['position @GalackQSM'] 32 | }); 33 | } 34 | run(message, args) { 35 | const member = this.getMemberFromMention(message, args[0]) || 36 | message.guild.members.cache.get(args[0]) || 37 | message.member; 38 | const leaderboard = message.client.db.users.selectLeaderboard.all(message.guild.id); 39 | const pos = leaderboard.map(row => row.user_id).indexOf(member.id) + 1; 40 | const ordinalPos = message.client.utils.getOrdinalNumeral(pos); 41 | const points = message.client.db.users.selectPoints.pluck().get(member.id, message.guild.id); 42 | const embed = new MessageEmbed() 43 | .setTitle(`Position actuel de ${member.displayName}`) 44 | .setThumbnail(member.user.displayAvatarURL({ dynamic: true })) 45 | .setDescription(`${member} est a là **${ordinalPos}** place!`) 46 | .addField('Position', `\`${pos}\` sur \`${message.guild.members.cache.size}\``, true) 47 | .addField('Points', `\`${points}\``, true) 48 | .setFooter(config.footer) 49 | .setTimestamp() 50 | .setColor("#2f3136"); 51 | message.channel.send(embed); 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /src/commands/points/totalpoints.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const Command = require('../Alcatraz.js'); 17 | const { MessageEmbed } = require('discord.js'); 18 | const config = require('../../../config.json'); 19 | 20 | module.exports = class TotalPointsCommand extends Command { 21 | constructor(client) { 22 | super(client, { 23 | name: 'totalpoints', 24 | usage: 'totalpoints <@membre/ID>', 25 | description: 'Récupère le total des points d\'un utilisateur. Si aucun utilisateur n\'est indiqué, votre propre total de points sera affiché.', 26 | type: client.types.POINTS, 27 | examples: ['totalpoints @GalackQSM'] 28 | }); 29 | } 30 | run(message, args) { 31 | const member = this.getMemberFromMention(message, args[0]) || 32 | message.guild.members.cache.get(args[0]) || 33 | message.member; 34 | const points = message.client.db.users.selectTotalPoints.pluck().get(member.id, message.guild.id); 35 | const embed = new MessageEmbed() 36 | .setTitle(`Total des points de ${member.displayName}`) 37 | .setThumbnail(member.user.displayAvatarURL({ dynamic: true })) 38 | .addField('Membre', message.member, true) 39 | .addField('Points', `\`${points}\``, true) 40 | .setFooter(config.footer) 41 | .setTimestamp() 42 | .setColor("#2f3136"); 43 | message.channel.send(embed); 44 | } 45 | }; 46 | -------------------------------------------------------------------------------- /src/events/debug.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = (client, info) => { 17 | client.logger.debug(info); 18 | }; 19 | -------------------------------------------------------------------------------- /src/events/error.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = (client, error) => { 17 | client.logger.error(error); 18 | }; 19 | -------------------------------------------------------------------------------- /src/events/guildDelete.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const { MessageEmbed } = require('discord.js'); 17 | const { fail } = require('../utils/emojis.json'); 18 | 19 | module.exports = (client, guild) => { 20 | 21 | client.logger.info(`Alcatraz viens de quitté le serveur: ${guild.name}`); 22 | const serverLog = client.channels.cache.get(client.serverLogId); 23 | if (serverLog) 24 | serverLog.send(new MessageEmbed().setDescription(`${client.user} viens de quitté le serveur: **${guild.name}** ${fail}`)); 25 | 26 | client.db.settings.deleteGuild.run(guild.id); 27 | client.db.users.deleteGuild.run(guild.id); 28 | 29 | if (guild.job) guild.job.cancel(); 30 | 31 | }; 32 | -------------------------------------------------------------------------------- /src/events/guildMemberUpdate.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | 3 | module.exports = (client, oldMember, newMember) => { 4 | 5 | const embed = new MessageEmbed() 6 | .setAuthor(`${newMember.user.tag}`, newMember.user.displayAvatarURL({ dynamic: true })) 7 | .setTimestamp() 8 | .setColor(oldMember.guild.me.displayHexColor); 9 | 10 | if (oldMember.nickname != newMember.nickname) { 11 | const nicknameLogId = client.db.settings.selectNicknameLogId.pluck().get(oldMember.guild.id); 12 | const nicknameLog = oldMember.guild.channels.cache.get(nicknameLogId); 13 | if ( 14 | nicknameLog && 15 | nicknameLog.viewable && 16 | nicknameLog.permissionsFor(oldMember.guild.me).has(['SEND_MESSAGES', 'EMBED_LINKS']) 17 | ) { 18 | const oldNickname = oldMember.nickname || '`Aucun`'; 19 | const newNickname = newMember.nickname || '`Aucun`'; 20 | embed 21 | .setTitle('Mise à jour des membres: `Pseudo`') 22 | .setDescription(`${newMember} ton surnom a été modifié.`) 23 | .addField('Surnom', `${oldNickname} ➔ ${newNickname}`); 24 | nicknameLog.send(embed); 25 | } 26 | } 27 | 28 | if (oldMember.roles.cache.size < newMember.roles.cache.size) { 29 | const roleLogId = client.db.settings.selectRoleLogId.pluck().get(oldMember.guild.id); 30 | const roleLog = oldMember.guild.channels.cache.get(roleLogId); 31 | if ( 32 | roleLog && 33 | roleLog.viewable && 34 | roleLog.permissionsFor(oldMember.guild.me).has(['SEND_MESSAGES', 'EMBED_LINKS']) 35 | ) { 36 | const role = newMember.roles.cache.difference(oldMember.roles.cache).first(); 37 | embed 38 | .setTitle('Mise à jour des membres: `Rôle ajouter`') 39 | .setDescription(`${newMember} as reçu le rôle ${role}.`); 40 | roleLog.send(embed); 41 | } 42 | } 43 | 44 | // Role remove 45 | if (oldMember.roles.cache.size > newMember.roles.cache.size) { 46 | // Get role log 47 | const roleLogId = client.db.settings.selectRoleLogId.pluck().get(oldMember.guild.id); 48 | const roleLog = oldMember.guild.channels.cache.get(roleLogId); 49 | if ( 50 | roleLog && 51 | roleLog.viewable && 52 | roleLog.permissionsFor(oldMember.guild.me).has(['SEND_MESSAGES', 'EMBED_LINKS']) 53 | ) { 54 | const role = oldMember.roles.cache.difference(newMember.roles.cache).first(); 55 | embed 56 | .setTitle('Mise à jour des membres: `Rôle supprimer`') 57 | .setDescription(`${newMember} as perdu le rôle ${role}.`); 58 | roleLog.send(embed); 59 | } 60 | } 61 | }; 62 | -------------------------------------------------------------------------------- /src/events/guildUpdate.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = (client, oldGuild, newGuild) => { 17 | 18 | if (oldGuild.name == newGuild.name) return; 19 | 20 | client.db.settings.updateGuildName.run(newGuild.name, oldGuild.id); 21 | client.db.users.updateGuildName.run(newGuild.name, oldGuild.id); 22 | 23 | client.logger.info(`${oldGuild.name} le nom du serveur est devenu ${newGuild.name}`); 24 | }; 25 | -------------------------------------------------------------------------------- /src/events/messageDeleteBulk.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const { MessageEmbed } = require('discord.js'); 17 | 18 | module.exports = (client, messages) => { 19 | 20 | const message = messages.first(); 21 | 22 | const messageDeleteLogId = client.db.settings.selectMessageDeleteLogId.pluck().get(message.guild.id); 23 | const messageDeleteLog = message.guild.channels.cache.get(messageDeleteLogId); 24 | if ( 25 | messageDeleteLog && 26 | messageDeleteLog.viewable && 27 | messageDeleteLog.permissionsFor(message.guild.me).has(['SEND_MESSAGES', 'EMBED_LINKS']) 28 | ) { 29 | 30 | const embed = new MessageEmbed() 31 | .setTitle('Mise à jour du message: `Supprimer en masse`') 32 | .setAuthor(`${message.guild.name}`, message.guild.iconURL({ dynamic: true })) 33 | .setDescription(`**${messages.size} messages** dans ${message.channel} ont été supprimés.`) 34 | .setTimestamp() 35 | .setColor(message.guild.me.displayHexColor); 36 | messageDeleteLog.send(embed); 37 | } 38 | 39 | }; -------------------------------------------------------------------------------- /src/events/messageReactionRemove.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = async (client, messageReaction, user) => { 17 | 18 | if (client.user === user) return; 19 | 20 | const { message, emoji } = messageReaction; 21 | 22 | if (emoji.name === '⭐' && message.author != user) { 23 | const starboardChannelId = client.db.settings.selectStarboardChannelId.pluck().get(message.guild.id); 24 | const starboardChannel = message.guild.channels.cache.get(starboardChannelId); 25 | if ( 26 | !starboardChannel || 27 | !starboardChannel.viewable || 28 | !starboardChannel.permissionsFor(message.guild.me).has(['SEND_MESSAGES', 'EMBED_LINKS']) || 29 | message.channel === starboardChannel 30 | ) return; 31 | 32 | const emojis = ['⭐', '🌟', '✨', '💫', '☄️']; 33 | const messages = await starboardChannel.messages.fetch({ limit: 100 }); 34 | 35 | const starred = messages.find(m => { 36 | return emojis.some(e => { 37 | return m.content.startsWith(e) && 38 | m.embeds[0] && 39 | m.embeds[0].footer && 40 | m.embeds[0].footer.text == message.id; 41 | }); 42 | }); 43 | 44 | if (starred) { 45 | 46 | const starCount = parseInt(starred.content.split(' ')[1].slice(2)) - 1; 47 | 48 | let emojiType; 49 | if (starCount > 20) emojiType = emojis[4]; 50 | else if (starCount > 15) emojiType = emojis[3]; 51 | else if (starCount > 10) emojiType = emojis[2]; 52 | else if (starCount > 5) emojiType = emojis[1]; 53 | else emojiType = emojis[0]; 54 | 55 | const starMessage = await starboardChannel.messages.fetch(starred.id); 56 | await starMessage.edit(`${emojiType} **${starCount} |** ${message.channel}`); 57 | 58 | if (starCount == 0) 59 | await starMessage.delete().catch(err => client.logger.error(err.stack)); 60 | } 61 | } 62 | }; -------------------------------------------------------------------------------- /src/events/userUpdate.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = (client, oldUser, newUser) => { 17 | 18 | if (oldUser.username != newUser.username || oldUser.discriminator != newUser.discriminator) { 19 | client.db.users.updateUser.run(newUser.username, newUser.discriminator, newUser.id); 20 | client.logger.info(`${oldUser.tag} le membre a changer son tag ${newUser.tag}`); 21 | } 22 | 23 | }; -------------------------------------------------------------------------------- /src/events/voiceStateUpdate.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = (client, oldState, newState) => { 17 | 18 | if (oldState.member != newState.member) return; 19 | const member = newState.member; 20 | 21 | const { point_tracking: pointTracking, voice_points: voicePoints } = 22 | client.db.settings.selectPoints.get(member.guild.id); 23 | if (!pointTracking || voicePoints == 0) return; 24 | 25 | const oldId = oldState.channelID; 26 | const newId = newState.channelID; 27 | const afkId = member.guild.afkChannelID; 28 | 29 | if (oldId === newId) return; 30 | else if ((!oldId || oldId === afkId) && newId && newId !== afkId) { 31 | member.interval = setInterval(() => { 32 | client.db.users.updatePoints.run({ points: voicePoints }, member.id, member.guild.id); 33 | }, 60000); 34 | } else if (oldId && (oldId !== afkId && !newId || newId === afkId)) { 35 | clearInterval(member.interval); 36 | } 37 | }; -------------------------------------------------------------------------------- /src/events/warn.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | module.exports = (client, info) => { 17 | client.logger.warn(info); 18 | }; 19 | -------------------------------------------------------------------------------- /src/utils/colors.json: -------------------------------------------------------------------------------- 1 | { 2 | "Rouge": "FF0000", 3 | "Rouge clair": "#FFA07A", 4 | "Vert": "#006400", 5 | "Vert clair": "#32CD32", 6 | "Jaune": "#FFD700", 7 | "Jaune clair": "#FFFF00", 8 | "Bleu": "#0000FF", 9 | "Bleu clair": "#00BFFF", 10 | "Orange": "#FF8C00", 11 | "Orange clair": "#FFA500", 12 | "Noir": "#080807", 13 | "Gris": "#878683", 14 | "Marron": "#8B4513", 15 | "Cyan": "#00FFFF", 16 | "Violet": "#800080", 17 | "Violet Clair": "#9370DB" 18 | } 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/utils/logger.js: -------------------------------------------------------------------------------- 1 | // ______ __ __ 2 | // / \ | \ | \ 3 | //| $$$$$$\| $$ _______ ______ _| $$_ ______ ______ ________ 4 | //| $$__| $$| $$ / \| \| $$ \ / \ | \ | \ 5 | //| $$ $$| $$| $$$$$$$ \$$$$$$\\$$$$$$ | $$$$$$\ \$$$$$$\ \$$$$$$$$ 6 | //| $$$$$$$$| $$| $$ / $$ | $$ __ | $$ \$$/ $$ / $$ 7 | //| $$ | $$| $$| $$_____| $$$$$$$ | $$| \| $$ | $$$$$$$ / $$$$_ 8 | //| $$ | $$| $$ \$$ \\$$ $$ \$$ $$| $$ \$$ $$| $$ \ 9 | // \$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$ \$$ \$$$$$$$ \$$$$$$$$ 10 | //======================================================================= 11 | //● Crée par GalackQSM le 09 novembre 2019 12 | //● Serveur Discord: https://discord.gg/Kcw3q53353 13 | //● Github: https://github.com/GalackQSM/Alcatraz 14 | //======================================================================= 15 | 16 | const { createLogger, format, transports } = require('winston'); 17 | const path = require('path'); 18 | 19 | const logFormat = format.printf((info) => { 20 | const { timestamp, level, label, message, ...rest } = info; 21 | let log = `${timestamp} - ${level} [${label}]: ${message}`; 22 | 23 | if (!( Object.keys(rest).length === 0 && rest.constructor === Object )) { 24 | log = `${log}\n${JSON.stringify(rest, null, 2)}`.replace(/\\n/g, '\n'); 25 | } 26 | return log; 27 | }); 28 | 29 | const logger = createLogger({ 30 | level: 'debug', 31 | format: format.combine( 32 | format.errors({ stack: true }), 33 | format.label({ label: path.basename(process.mainModule.filename) }), 34 | format.timestamp({ format: 'DD/MM/YYYY HH:mm:ss' }) 35 | ), 36 | transports: [ 37 | new transports.Console({ 38 | format: format.combine( 39 | format.colorize(), 40 | logFormat 41 | ) 42 | }), 43 | new transports.File({ 44 | filename: path.join(__basedir, 'logs/full.log'), 45 | level: 'info', 46 | format: logFormat, 47 | options: { flags: 'w' } 48 | }), 49 | new transports.File({ 50 | filename: path.join(__basedir, 'logs/error.log'), 51 | level: 'warn', 52 | format: logFormat, 53 | options: { flags: 'w' } 54 | }) 55 | ] 56 | }); 57 | 58 | module.exports = logger; -------------------------------------------------------------------------------- /src/utils/permissions.json: -------------------------------------------------------------------------------- 1 | { 2 | "ADMINISTRATOR": "Administrateur", 3 | "VIEW_AUDIT_LOG": "Afficher le journal d'audit", 4 | "VIEW_GUILD_INSIGHTS": "Afficher les informations sur le serveur", 5 | "MANAGE_GUILD": "Gérer le serveur", 6 | "MANAGE_ROLES": "Gérer les rôles", 7 | "MANAGE_CHANNELS": "Gérer les salons", 8 | "KICK_MEMBERS": "Kick les members", 9 | "BAN_MEMBERS": "Bannir les members", 10 | "CREATE_INSTANT_INVITE": "Create Invite", 11 | "CHANGE_NICKNAME": "Changer de pseudo", 12 | "MANAGE_NICKNAMES": "Gérer les surnoms", 13 | "MANAGE_EMOJIS": "Gérer les émojis", 14 | "MANAGE_WEBHOOKS": "Gérer les Webhooks", 15 | "VIEW_CHANNEL": "Lire les salons de texte et voir les salons vocaux", 16 | "SEND_MESSAGES": "Envoyer des messages", 17 | "SEND_TTS_MESSAGES": "Envoyer des messages TTS", 18 | "MANAGE_MESSAGES": "Gérer les messages", 19 | "EMBED_LINKS": "Intégrer les liens", 20 | "ATTACH_FILES": "Joindre des fichiers", 21 | "READ_MESSAGE_HISTORY": "Lire l'historique des messages", 22 | "MENTION_EVERYONE": "Mentionner @everyone, @here, et tous les rôles", 23 | "USE_EXTERNAL_EMOJIS": "Utiliser des émojis externes", 24 | "ADD_REACTIONS": "Ajouter des réactions", 25 | "CONNECT": "Connecter", 26 | "SPEAK": "Parler", 27 | "STREAM": "Vidéo", 28 | "MUTE_MEMBERS": "Mute des members", 29 | "DEAFEN_MEMBERS": "Membres sourds", 30 | "MOVE_MEMBERS": "Déplacer les membres", 31 | "USE_VAD": "Utiliser l'activité vocale", 32 | "PRIORITY_SPEAKER": "Orateur prioritaire" 33 | } -------------------------------------------------------------------------------- /src/utils/works.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Vous travaillez comme fabricant de sous-vêtements anti-flatulences et gagnez", 3 | "Vous travaillez au restaurant de grand-mère en tant que cuisinier et gagnez", 4 | "Vous travaillez comme passeur professionnel et gagnez", 5 | "Vous travaillez comme peintre de citrouilles et gagnez", 6 | "Vous travaillez comme ingénieur et gagnez", 7 | "Vous travaillez en tant que consultant en comportement suricate et gagnez", 8 | "Votre métier de collectionneur de pets est très intéressant et vous rapporte", 9 | "Vous travaillez comme pingouinologue et gagnez", 10 | "Vous travaillez comme nettoyeur d'oreilles et gagnez", 11 | "Vous développez des jeux et gagnez", 12 | "Vous travaillez en tant que personal shopper et gagnez", 13 | "Vous travaillez comme moniteur de surf canin et gagnez", 14 | "Vous travaillez comme un bouvier et gagnez", 15 | "Vous travaillez comme comédien et gagnez", 16 | "Vous travaillez comme la tête des éléphants et gagnez", 17 | "Vous travaillez comme enseignant au primaire et gagnez", 18 | "Vous avez travaillé comme doubleur pour Bob l'éponge et avez réussi à gagner", 19 | "Vous avez passé une journée fructueuse au bureau aujourd'hui et avez gagné", 20 | "Tu as effectivement fini l'assiette de légumes que tes parents t'ont fait manger ! Tu as été récompensé", 21 | "Vous travaillez comme éducatrice à l'accouchement et gagnez", 22 | "Vous travaillez comme vendeur d'une usine d'oreillers corporels sur Internet pour de vrais weebs, les weebs vous ont donné", 23 | "Vous travaillez en tant que consultant en vibrations et gagnez", 24 | "Travaillez dans le glacier de vos rêves d'enfant et gagnez", 25 | "Vous travaillez en tant que hacker minecraft professionnel. Vous parvenez à engranger", 26 | "Tu as tamponné si fort que même ta mère en est fière ! Tu fais", 27 | "Vous travaillez comme femme de ménage professionnelle. Après avoir caché le corps, vous êtes remis", 28 | "Tu as été cloné pour la science. Tu as gagné", 29 | "Vous travaillez comme policier et gagnez", 30 | "Vous travaillez comme élagueur de brousse pour Donald Trump et gagnez", 31 | "Vous travaillez comme renifleur d'essuie-tout et gagnez", 32 | "Vous travaillez comme testeur de glissades d'eau et gagnez", 33 | "Tu trais une vache pour" 34 | ] 35 | --------------------------------------------------------------------------------