├── .github └── FUNDING.yml ├── LICENSE ├── README.md ├── botconfig ├── config.json └── embed.json ├── commands ├── Information │ ├── botinfo.js │ ├── help.js │ ├── ping.js │ └── uptime.js └── Memer │ ├── abandon.js │ ├── affect.js │ ├── airpods.js │ ├── america.js │ ├── armor.js │ ├── bed.js │ ├── brazzers.js │ ├── byemom.js │ ├── cancer.js │ ├── changemymind.js │ ├── communism.js │ ├── corporate.js │ ├── cry.js │ ├── dab.js │ ├── delete.js │ ├── disability.js │ ├── door.js │ ├── draw25.js │ ├── egg.js │ ├── emergencymeeting.js │ ├── excuseme.js │ ├── facts.js │ ├── failure.js │ ├── fakenews.js │ ├── floor.js │ ├── godwhy.js │ ├── hitler.js │ ├── ipad.js │ ├── jail.js │ ├── keepdistance.js │ ├── note.js │ ├── obama.js │ ├── pepesign.js │ ├── roblox.js │ ├── satan.js │ ├── shit.js │ ├── stroke.js │ ├── trash.js │ ├── tweet.js │ ├── violence.js │ ├── walking.js │ ├── wanted.js │ ├── whodidthis.js │ └── youtube.js ├── events ├── client │ ├── disconnect.js │ ├── error.js │ ├── ready.js │ ├── reconnecting.js │ └── warn.js ├── guild │ └── message.js ├── message.js └── ready.js ├── handlers ├── command.js ├── events.js └── functions.js ├── index.js └── package.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ['milrato.eu', 'dc.milrato.eu', 'bero.milrato.eu', 'bittmax.milrato.eu' ] 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Meme Bot 2 | ![](https://cdn.discordapp.com/attachments/818900078077018162/859725695587581983/meme_bot.png) 3 | > **This is an example bot made for Memer API :)** 4 | 5 | 6 | ## Memer API 7 | > **To use Memer API u will need a token from [Memer API Server!](https://discord.gg/Mc2FudJkgP)** 8 | 9 | ## Tools Used 10 | - Memer API - [Website](https://memer-api.js.org/) | [Github](https://github.com/Yash094/memer-api) 11 | - Discord.js - [Website](https://discord.js.org/#/) | [Github](https://github.com/discordjs/discord.js) 12 | 13 | 14 | ## Links 15 | 🔮 Memer API: [Server](https://discord.gg/Mc2FudJkgPhttps://discord.gg/emD44ZJaSA) | [Github](https://github.com/Yash094/memer-api) 16 | 17 | 🌸 Discord: [Server](https://discord.gg/Mc2FudJkgP) 18 | 19 | Contributer: [@Aniket091](https://github.com/aniket091/Meme-Bot) for keeping this Bot-Repository up to date 20 | 21 | 22 | ## Installation | How to use the Bot 23 | > 24 | > - **0** Get a Memer-Api Token in here: https://discord.gg/Mc2FudJkgP by typing **`meme gentoken`**! 25 | > - **1.** Install [node.js v12+](https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode) or higher 26 | > - **2.** Download this repo and unzip it | or `git clone https://github.com/Tomato6966/better-memes-bot` 27 | > - **3.** Install all of the packages with **`npm install`** | the important packages are **`npm install discord.js memer-api ascii-table`** 28 | > - **4.** Add Bot Token & Memer Api Token In The **`./botconfig/config.json`** File. 29 | > - **5.** start the bot with **`node index.js`** | For 24/7 Host: **`npm install pm2 -g` -> `pm2 start index.js`** 30 | > 31 | > [**MEMER API**](https://www.npmjs.com/package/memer-api) 32 | 33 | # Credits 34 | > - [@Tomato6966](https://github.com/Tomato6966) for creating the Original, his: [Discord Server](https://discord.gg/FQGXbypRf8) 35 | > - [@Aniket091](https://github.com/aniket091/Meme-Bot) for Updating the Original 36 | 37 |
38 | 39 | *** 40 | 41 | ## [Discord Server 😎](https://discord.gg/milrato) | [Website](https://milrato.dev) 42 | 43 | 44 | *** 45 | 46 | ## SUPPORT ME AND MILRATO DEVELOPMENT 47 | 48 | > You can always Support me by inviting one of my **own Discord Bots** 49 | 50 | [![2021's best Music Bot | Lava Music](https://cdn.discordapp.com/attachments/748533465972080670/817088638780440579/test3.png)](https://lava.milrato.dev) 51 | [![Musicium Music Bot](https://cdn.discordapp.com/attachments/742446682381221938/770055673965707264/test1.png)](https://musicium.musicium.dev) 52 | [![Milrato Multi Bot](https://cdn.discordapp.com/attachments/742446682381221938/770056826724679680/test1.png)](https://milrato.milrato.dev) 53 | 54 | # Credits 55 | 56 | > If consider using this Bot, make sure to credit me! 57 | -------------------------------------------------------------------------------- /botconfig/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "token", 3 | "api_token": "get it here: https://discord.gg/GaczkwfgV9", 4 | "prefix": "m!" 5 | } 6 | -------------------------------------------------------------------------------- /botconfig/embed.json: -------------------------------------------------------------------------------- 1 | { 2 | "blue": "#009dff" 3 | } 4 | -------------------------------------------------------------------------------- /commands/Information/botinfo.js: -------------------------------------------------------------------------------- 1 | const { 2 | MessageEmbed 3 | } = require("discord.js"); 4 | const config = require("../../botconfig/config.json"); 5 | const ee = require("../../botconfig/embed.json"); 6 | const { 7 | duration 8 | } = require("../../handlers/functions") 9 | module.exports = { 10 | name: "botinfo", 11 | category: "Information", 12 | aliases: ["info", "stats"], 13 | cooldown: 4, 14 | usage: "botinfo", 15 | description: "Returns Information About the Bot!", 16 | run: async (client, message, args, user, text, prefix) => { 17 | message.channel.send(new MessageEmbed() 18 | .setColor(ee.color) 19 | .setThumbnail(client.user.displayAvatarURL()) 20 | .setTitle("HELP MENU 🔰 Commands") 21 | .addField("• General -- Stats", `\`\`\`yml\nServers: ${client.guilds.cache.size}\nUsers: ${client.users.cache.size}\`\`\``, true) 22 | .addField("• System -- Stats", `\`\`\`yml\nNode.js: v${process.version}\nDiscord.js: v${Discord.version}\nMemer-Api: v2.0.1\`\`\``, true) 23 | .addField("• Bot -- Stats", `\`\`\`yml\nBot Latency: ${Math.round(Date.now() - message.createdTimestamp)}ms\nApi Latency: ${Math.round(client.ws.ping)}ms\nRuntime: ${duration(client.uptime).split("\`").join(" ")}\`\`\``, true) 24 | .addField("• Developer", `\`\`\`yml\nName: Tomato#6966 [442355791412854784]\nName:ATX Ξ ShinchanOP#0001 [488225580156715008]\`\`\``) 25 | .addField("• Important Links", `**[Invite Link](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=8&scope=bot)\`|\`[Support Server](https://discord.gg/pe3V7uT)\`|\`[Website](https://milrato.eu)\`|\`[Api Documentation](https://memer-api.js.org)**`) 26 | .setFooter(`To see command descriptions and inforamtion, type: ${config.prefix}help [CMD NAME]`, client.user.displayAvatarURL())); 27 | } 28 | } 29 | 30 | /** 31 | * @INFO 32 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 33 | * @INFO 34 | * Work for Milrato Development | https://milrato.eu 35 | * @INFO 36 | * Please mention Him / Milrato Development, when using this Code! 37 | * @INFO 38 | */ 39 | -------------------------------------------------------------------------------- /commands/Information/help.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "help", 5 | category: "Information", 6 | aliases: ["h", "commandinfo", "cmds", "cmd"], 7 | cooldown: 4, 8 | usage: "help [Command]", 9 | description: "Returns all Commmands, or one specific command", 10 | 11 | run: async (client, message, args) => { 12 | 13 | 14 | if (args[0]) { 15 | const cmd = client.commands.get(args[0].toLowerCase()) || client.commands.get(client.aliases.get(args[0].toLowerCase())); 16 | if (!cmd || !cmd.name) { 17 | const emb = new MessageEmbed() 18 | .setDescription(`**❌ No information found for command \`${args[0].toLowerCase()}\` !**`) 19 | .setColor("#ff0000") 20 | return message.channel.send(emb) 21 | 22 | } 23 | 24 | let n = cmd.name 25 | const embed = new MessageEmbed() 26 | .setColor('#009dff') 27 | .setTitle(`${n[0].toUpperCase() + n.slice(1, n.length)} command!`) 28 | .addField('Name', cmd.name) 29 | 30 | if (cmd.description) embed.addField('Description', cmd.description) 31 | if (cmd.aliases) embed.addField('Aliases', cmd.aliases.map((a) => `\`${a}\``).join(", ")) 32 | if (cmd.cooldown) embed.addField('Cooldown', `\`${cmd.cooldown} Seconds\``) 33 | if (cmd.usage) embed.addField('Usage', `\`${client.prefix}${cmd.usage}\``) 34 | 35 | return message.channel.send(embed) 36 | 37 | } 38 | 39 | 40 | const embed = new MessageEmbed() 41 | .setColor("#009dff") 42 | .setTitle("Meme Bot Help") 43 | .setDescription(`Use \`${client.prefix}help [command]\` to get info on a specific command!`) 44 | .setFooter("Memer-Api.js.org ❤️", client.user.displayAvatarURL({ dynamic: true })) 45 | .setTimestamp() 46 | 47 | let com = {} 48 | for (let comm of client.commands.array()) { 49 | let category = comm.category || "Unknown"; 50 | let name = comm.name; 51 | 52 | if (!com[category]) { 53 | com[category] = []; 54 | } 55 | com[category].push(name); 56 | } 57 | delete com["Unknown"] 58 | 59 | i = 0; 60 | for (const [key, value] of Object.entries(com)) { 61 | let c = key; 62 | let desc = "`" + value.join("` `") + "`"; 63 | 64 | embed.addField(`${c[0].toUpperCase() + c.slice(1, c.length).toLocaleLowerCase()}`, `**${desc}**`); 65 | i++ 66 | } 67 | 68 | 69 | embed.addField("Links", `**[Invite](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=8&scope=bot%20applications.commands) | [Support](https://discord.gg/emD44ZJaSA) | [API Documentation](https://memer-api.js.org) | [Github](https://github.com/aniket091/Meme-Bot) | By [Aniket](https://github.com/aniket091)**`) 70 | 71 | return message.channel.send({ embed: embed}) 72 | 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /commands/Information/ping.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const config = require("../../botconfig/config.json"); 3 | const ee = require("../../botconfig/embed.json"); 4 | module.exports = { 5 | name: "ping", 6 | category: "Information", 7 | aliases: ["latency"], 8 | cooldown: 2, 9 | usage: "ping", 10 | description: "Gives you information on how fast the Bot can respond to you", 11 | run: async (client, message, args, user, text, prefix) => { 12 | message.channel.send(new MessageEmbed() 13 | .setColor(ee.color) 14 | .setFooter(ee.footertext, ee.footericon) 15 | .setTitle(`🏓 Pinging....`) 16 | ).then(msg=>{ 17 | msg.edit(new MessageEmbed() 18 | .setColor(ee.color) 19 | .setFooter(ee.footertext, ee.footericon) 20 | .setTitle(`Ping: ${Math.round(Date.now() - message.createdTimestamp)}ms\n\nApi Latency: ${Math.round(client.ws.ping)}ms`) 21 | ); 22 | }) 23 | } 24 | } 25 | /** 26 | * @INFO 27 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 28 | * @INFO 29 | * Work for Milrato Development | https://milrato.eu 30 | * @INFO 31 | * Please mention Him / Milrato Development, when using this Code! 32 | * @INFO 33 | */ 34 | -------------------------------------------------------------------------------- /commands/Information/uptime.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | const config = require("../../botconfig/config.json"); 3 | const ee = require("../../botconfig/embed.json"); 4 | const { duration } = require("../../handlers/functions") 5 | module.exports = { 6 | name: "uptime", 7 | category: "Information", 8 | aliases: [""], 9 | cooldown: 10, 10 | usage: "uptime", 11 | description: "Returns the duration on how long the Bot is online", 12 | run: async (client, message, args, user, text, prefix) => { 13 | message.channel.send(new MessageEmbed() 14 | .setColor(ee.color) 15 | .setFooter(ee.footertext, ee.footericon) 16 | .setTitle(`:white_check_mark: **${client.user.username}** is since:\n ${duration(client.uptime)} online`) 17 | ); 18 | } 19 | } 20 | /** 21 | * @INFO 22 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 23 | * @INFO 24 | * Work for Milrato Development | https://milrato.eu 25 | * @INFO 26 | * Please mention Him / Milrato Development, when using this Code! 27 | * @INFO 28 | */ 29 | -------------------------------------------------------------------------------- /commands/Memer/abandon.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "abandon", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "abandon [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.abandon(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "abandon.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://abandon.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/affect.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "affect", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "affect @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.affect(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "affect.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://affect.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /commands/Memer/airpods.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "airpods", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "airpods @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.airpods(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "airpods.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://airpods.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /commands/Memer/america.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "america", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "america @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.america(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "america.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://america.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /commands/Memer/armor.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "armor", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "armor [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.armor(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "armor.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://armor.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/bed.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "bed", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "affect @User @User2", 10 | 11 | run: async (client, message) => { 12 | 13 | var user1 = message.mentions.users.first(); 14 | 15 | if (!user1) return message.channel.send(new MessageEmbed().setColor("#ff595e") 16 | .setDescription("**<:x2:819613332892942347> Please mention a user!**")) 17 | 18 | var tempmsg = await message.channel.send("") 19 | 20 | var user2 = message.mentions.users.last() || message.author; 21 | if(user2.id == user1.id) user2 = message.author; 22 | 23 | if(user2.id == user1.id) { 24 | tempmsg.delete() 25 | 26 | return message.channel.send(new MessageEmbed().setColor("#ff595e") 27 | .setDescription("**<:x2:819613332892942347> Please mention a user!**")) 28 | } 29 | 30 | var avatar1 = user1.displayAvatarURL({ format: "png" }); 31 | var avatar2 = user2.displayAvatarURL({ format: "png" }); 32 | 33 | client.memer.bed(avatar1, avatar2).then(image => { 34 | 35 | var attachment = new MessageAttachment(image, "bed.png"); 36 | 37 | tempmsg.delete() 38 | 39 | const embed = new MessageEmbed() 40 | .setColor(blue) 41 | .setImage("attachment://bed.png") 42 | .attachFiles(attachment) 43 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 44 | 45 | return message.channel.send(embed).catch() 46 | 47 | }) 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /commands/Memer/brazzers.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "brazzers", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "brazzers @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.brazzers(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "brazzers.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://brazzers.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /commands/Memer/byemom.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "byemom", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "byemom @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.byemom(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "byemom.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://byemom.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/cancer.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "cancer", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "cancer @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.cancer(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "cancer.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://cancer.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/changemymind.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "changemymind", 6 | aliases: ["cmm"], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "changemymind [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.changemymind(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "changemymind.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://changemymind.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/communism.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "communism", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "communism @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.communism(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "communism.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://communism.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/corporate.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "corporate", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "corporate @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.corporate(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "corporate.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://corporate.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/cry.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "cry", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "cry [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.cry(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "cry.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://cry.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/dab.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "dab", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "dab @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.dab(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "dab.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://dab.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/delete.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "delete", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "delete @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.delete(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "delete.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://delete.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/disability.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "disability", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "disability @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.disability(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "disability.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://disability.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /commands/Memer/door.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "door", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "door @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.door(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, ".png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://door.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/draw25.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "draw25", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "draw25 [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var user = message.mentions.users.first(); 19 | if(user) args.shift(); 20 | else user = message.author; 21 | 22 | var avatar = user.displayAvatarURL({ format: "png" }); 23 | 24 | 25 | var text = args.join(" ") 26 | 27 | if (!text) { 28 | tempmsg.delete(); 29 | return message.channel.send(new MessageEmbed().setColor("#ff595e") 30 | .setDescription("**<:x2:819613332892942347> Please provide some Text!**")) 31 | } 32 | 33 | client.memer.draw25(avatar, text).then(image => { 34 | 35 | var attachment = new MessageAttachment(image, "draw25.png"); 36 | 37 | tempmsg.delete() 38 | 39 | const embed = new MessageEmbed() 40 | .setColor(blue) 41 | .setImage("attachment://draw25.png") 42 | .attachFiles(attachment) 43 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 44 | 45 | return message.channel.send(embed).catch() 46 | 47 | }) 48 | 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /commands/Memer/egg.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "egg", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "egg @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.egg(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "egg.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://egg.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/emergencymeeting.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "emergencymeeting", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "emergencymeeting [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.emergencymeeting(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "emergencymeeting.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://emergencymeeting.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | 40 | -------------------------------------------------------------------------------- /commands/Memer/excuseme.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "excuseme", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "excuseme [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.excuseme(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "excuseme.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://excuseme.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | 40 | -------------------------------------------------------------------------------- /commands/Memer/facts.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "facts", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "facts [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.facts(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "facts.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://facts.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/failure.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "failure", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "failure @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.failure(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "failure.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://failure.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/fakenews.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "fakenews", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "fakenews @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.fakenews(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "fakenews.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://fakenews.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/floor.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "floor", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "floor @User [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var user = message.mentions.users.first(); 19 | if(user) args.shift(); 20 | else user = message.author; 21 | 22 | var avatar = user.displayAvatarURL({ format: "png" }); 23 | 24 | 25 | var text = args.join(" ") 26 | 27 | if (!text) { 28 | tempmsg.delete(); 29 | return message.channel.send(new MessageEmbed().setColor("#ff595e") 30 | .setDescription("**<:x2:819613332892942347> Please provide some Text!**")) 31 | } 32 | 33 | client.memer.floor(text, avatar).then(image => { 34 | 35 | var attachment = new MessageAttachment(image, "floor.png"); 36 | 37 | tempmsg.delete() 38 | 39 | const embed = new MessageEmbed() 40 | .setColor(blue) 41 | .setImage("attachment://floor.png") 42 | .attachFiles(attachment) 43 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 44 | 45 | return message.channel.send(embed).catch() 46 | 47 | }) 48 | 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /commands/Memer/godwhy.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "godwhy", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "godwhy [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.godwhy(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "godwhy.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://godwhy.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/hitler.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "hitler", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "hitler [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.hitler(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "hitler.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://hitler.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/ipad.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "ipad", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "ipad @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.ipad(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "ipad.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://ipad.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/jail.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "jail", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "jail @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.jail(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "jail.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://jail.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/keepdistance.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "keepdistance", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "keepdistance [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.keepdistance(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "keepdistance.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://keepdistance.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/note.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "note", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "note [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.note(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "note.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://note.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/obama.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "obama", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "obama @User [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var user = message.mentions.users.first(); 19 | if(user) args.shift(); 20 | else user = message.author; 21 | 22 | var avatar = user.displayAvatarURL({ format: "png" }); 23 | 24 | 25 | var text = args.join(" ") 26 | 27 | if (!text) { 28 | tempmsg.delete(); 29 | return message.channel.send(new MessageEmbed().setColor("#ff595e") 30 | .setDescription("**<:x2:819613332892942347> Please provide some Text!**")) 31 | } 32 | 33 | client.memer.obama(text, avatar).then(image => { 34 | 35 | var attachment = new MessageAttachment(image, "obama.png"); 36 | 37 | tempmsg.delete() 38 | 39 | const embed = new MessageEmbed() 40 | .setColor(blue) 41 | .setImage("attachment://obama.png") 42 | .attachFiles(attachment) 43 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 44 | 45 | return message.channel.send(embed).catch() 46 | 47 | }) 48 | 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /commands/Memer/pepesign.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "pepesign", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "pepesign [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.pepesign(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "pepesign.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://pepesign.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/roblox.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "roblox", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "roblox @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.roblox(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "roblox.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://roblox.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/satan.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "satan", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "satan @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.satan(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "satan.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://satan.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/shit.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "shit", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "shit [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.shit(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "shit.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://shit.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | 40 | -------------------------------------------------------------------------------- /commands/Memer/stroke.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "stroke", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "stroke [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.stroke(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "stroke.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://stroke.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/trash.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "trash", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "trash @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.trash(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "trash.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://trash.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/tweet.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "tweet", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "tweet @User [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var user = message.mentions.users.first(); 19 | if(user) args.shift(); 20 | else user = message.author; 21 | 22 | var avatar = user.displayAvatarURL({ format: "png" }); 23 | 24 | 25 | var text = args.join(" ") 26 | 27 | if (!text) { 28 | tempmsg.delete(); 29 | return message.channel.send(new MessageEmbed().setColor("#ff595e") 30 | .setDescription("**<:x2:819613332892942347> Please provide some Text!**")) 31 | } 32 | 33 | client.memer.tweet(avatar, user.username, text).then(image => { 34 | 35 | var attachment = new MessageAttachment(image, "tweet.png"); 36 | 37 | tempmsg.delete() 38 | 39 | const embed = new MessageEmbed() 40 | .setColor(blue) 41 | .setImage("attachment://tweet.png") 42 | .attachFiles(attachment) 43 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 44 | 45 | return message.channel.send(embed).catch() 46 | 47 | }) 48 | 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /commands/Memer/violence.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "violence", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "violence [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.violence(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "violence.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://violence.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/walking.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "walking", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "walking [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var text = args.join(" ") 19 | 20 | client.memer.walking(text).then(image => { 21 | 22 | var attachment = new MessageAttachment(image, "walking.png"); 23 | 24 | tempmsg.delete() 25 | 26 | const embed = new MessageEmbed() 27 | .setColor(blue) 28 | .setImage("attachment://walking.png") 29 | .attachFiles(attachment) 30 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 31 | 32 | return message.channel.send(embed).catch() 33 | 34 | }) 35 | 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /commands/Memer/wanted.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "wanted", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "wanted @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.wanted(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "wanted.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://wanted.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/whodidthis.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "whodidthis", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "whodidthis @User", 10 | 11 | run: async (client, message) => { 12 | 13 | var tempmsg = await message.channel.send("") 14 | 15 | var user = message.mentions.users.first() || message.author; 16 | var avatar = user.displayAvatarURL({ format: "png" }); 17 | 18 | client.memer.whodidthis(avatar).then(image => { 19 | 20 | var attachment = new MessageAttachment(image, "whodidthis.png"); 21 | 22 | tempmsg.delete() 23 | 24 | const embed = new MessageEmbed() 25 | .setColor(blue) 26 | .setImage("attachment://whodidthis.png") 27 | .attachFiles(attachment) 28 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 29 | 30 | return message.channel.send(embed).catch() 31 | 32 | }) 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Memer/youtube.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed, MessageAttachment } = require("discord.js"); 2 | const { blue } = require("../../botconfig/embed.json"); 3 | 4 | module.exports = { 5 | name: "youtube", 6 | aliases: [], 7 | category: "Memer", 8 | description: "IMAGE CMD", 9 | usage: "youtube @User [ Text ]", 10 | 11 | run: async (client, message, args) => { 12 | 13 | if (!args.length) return message.channel.send(new MessageEmbed().setColor("#ff000") 14 | .setDescription("**❌ Please provide some Text!**")) 15 | 16 | var tempmsg = await message.channel.send("") 17 | 18 | var user = message.mentions.users.first(); 19 | if(user) args.shift(); 20 | else user = message.author; 21 | 22 | var avatar = user.displayAvatarURL({ format: "png" }); 23 | 24 | 25 | var text = args.join(" ") 26 | 27 | if (!text) { 28 | tempmsg.delete(); 29 | return message.channel.send(new MessageEmbed().setColor("#ff595e") 30 | .setDescription("**<:x2:819613332892942347> Please provide some Text!**")) 31 | } 32 | 33 | client.memer.youtube(avatar, user.username, text).then(image => { 34 | 35 | var attachment = new MessageAttachment(image, "youtube.png"); 36 | 37 | tempmsg.delete() 38 | 39 | const embed = new MessageEmbed() 40 | .setColor(blue) 41 | .setImage("attachment://youtube.png") 42 | .attachFiles(attachment) 43 | .setFooter(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) 44 | 45 | return message.channel.send(embed).catch() 46 | 47 | }) 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /events/client/disconnect.js: -------------------------------------------------------------------------------- 1 | //here the event starts 2 | module.exports = client => { 3 | console.log(`You have been disconnected at ${new Date()}.`.red) 4 | } 5 | /** 6 | * @INFO 7 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 8 | * @INFO 9 | * Work for Milrato Development | https://milrato.eu 10 | * @INFO 11 | * Please mention Him / Milrato Development, when using this Code! 12 | * @INFO 13 | */ 14 | -------------------------------------------------------------------------------- /events/client/error.js: -------------------------------------------------------------------------------- 1 | //here the event starts 2 | module.exports = client => { 3 | console.error(); 4 | } 5 | /** 6 | * @INFO 7 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 8 | * @INFO 9 | * Work for Milrato Development | https://milrato.eu 10 | * @INFO 11 | * Please mention Him / Milrato Development, when using this Code! 12 | * @INFO 13 | */ 14 | -------------------------------------------------------------------------------- /events/client/ready.js: -------------------------------------------------------------------------------- 1 | //here the event starts 2 | const config = require("../../botconfig/config.json") 3 | module.exports = client => { 4 | const stringlength = 69; 5 | console.log("\n") 6 | console.log(` ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓`.bold.brightGreen) 7 | console.log(` ┃ `.bold.brightGreen + " ".repeat(-1+stringlength-` ┃ `.length)+ "┃".bold.brightGreen) 8 | console.log(` ┃ `.bold.brightGreen + `Discord Bot is online!`.bold.brightGreen + " ".repeat(-1+stringlength-` ┃ `.length-`Discord Bot is online!`.length)+ "┃".bold.brightGreen) 9 | console.log(` ┃ `.bold.brightGreen + ` /--/ ${client.user.tag} /--/ `.bold.brightGreen+ " ".repeat(-1+stringlength-` ┃ `.length-` /--/ ${client.user.tag} /--/ `.length)+ "┃".bold.brightGreen) 10 | console.log(` ┃ `.bold.brightGreen + " ".repeat(-1+stringlength-` ┃ `.length)+ "┃".bold.brightGreen) 11 | console.log(` ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛`.bold.brightGreen) 12 | client.user.setActivity("memer-api.js.org | meme help | powered by: milrato.eu", { type: "PLAYING" }); 13 | //Change status each 10 minutes 14 | setInterval(()=>{ 15 | client.user.setActivity("memer-api.js.org | meme help | powered by: milrato.eu", { type: "PLAYING" }); 16 | }, 10*60*1000) 17 | } 18 | /** 19 | * @INFO 20 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 21 | * @INFO 22 | * Work for Milrato Development | https://milrato.eu 23 | * @INFO 24 | * Please mention Him / Milrato Development, when using this Code! 25 | * @INFO 26 | */ 27 | -------------------------------------------------------------------------------- /events/client/reconnecting.js: -------------------------------------------------------------------------------- 1 | //here the event starts 2 | module.exports = client => { 3 | console.log(`Reconnceting at ${new Date()}.`.bgYellow.black) 4 | } 5 | 6 | /** 7 | * @INFO 8 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 9 | * @INFO 10 | * Work for Milrato Development | https://milrato.eu 11 | * @INFO 12 | * Please mention Him / Milrato Development, when using this Code! 13 | * @INFO 14 | */ 15 | -------------------------------------------------------------------------------- /events/client/warn.js: -------------------------------------------------------------------------------- 1 | //here the event starts 2 | module.exports = client => { 3 | console.warn(); 4 | } 5 | /** 6 | * @INFO 7 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 8 | * @INFO 9 | * Work for Milrato Development | https://milrato.eu 10 | * @INFO 11 | * Please mention Him / Milrato Development, when using this Code! 12 | * @INFO 13 | */ 14 | -------------------------------------------------------------------------------- /events/guild/message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @INFO 3 | * Loading all needed File Information Parameters 4 | */ 5 | const config = require("../../botconfig/config.json"); //loading config file with token and prefix, and settings 6 | const ee = require("../../botconfig/embed.json"); //Loading all embed settings like color footertext and icon ... 7 | const Discord = require("discord.js"); //this is the official discord.js wrapper for the Discord Api, which we use! 8 | const { escapeRegex} = require("../../handlers/functions"); //Loading all needed functions 9 | //here the event starts 10 | module.exports = async (client, message) => { 11 | try { 12 | //if the message is not in a guild (aka in dms), return aka ignore the inputs 13 | if (!message.guild) return; 14 | // if the message author is a bot, return aka ignore the inputs 15 | if (message.author.bot) return; 16 | //if the channel is on partial fetch it 17 | if (message.channel.partial) await message.channel.fetch(); 18 | //if the message is on partial fetch it 19 | if (message.partial) await message.fetch(); 20 | //get the current prefix from the botconfig/config.json 21 | let prefix = config.prefix 22 | //the prefix can be a Mention of the Bot / The defined Prefix of the Bot 23 | const prefixRegex = new RegExp(`^(<@!?${client.user.id}>|${escapeRegex(prefix)})\\s*`); 24 | //if its not that then return 25 | if (!prefixRegex.test(message.content)) return; 26 | //now define the right prefix either ping or not ping 27 | const [, matchedPrefix] = message.content.match(prefixRegex); 28 | //create the arguments with sliceing of of the rightprefix length 29 | const args = message.content.slice(matchedPrefix.length).trim().split(/ +/); 30 | //creating the cmd argument by shifting the args by 1 31 | const cmd = args.shift().toLowerCase(); 32 | //if no cmd added return error 33 | if (cmd.length === 0){ 34 | if(matchedPrefix.includes(client.user.id)) 35 | return message.channel.send(new Discord.MessageEmbed() 36 | .setColor(ee.color) 37 | .setFooter(ee.footertext,ee.footericon) 38 | .setTitle(`Hugh? I got pinged? Imma give you some help`) 39 | .setDescription(`To see all Commands type: \`${prefix}help\``) 40 | ); 41 | return; 42 | } 43 | //get the command from the collection 44 | let command = client.commands.get(cmd); 45 | //if the command does not exist, try to get it by his alias 46 | if (!command) command = client.commands.get(client.aliases.get(cmd)); 47 | //if the command is now valid 48 | if (command){ 49 | if (!client.cooldowns.has(command.name)) { //if its not in the cooldown, set it too there 50 | client.cooldowns.set(command.name, new Discord.Collection()); 51 | } 52 | const now = Date.now(); //get the current time 53 | const timestamps = client.cooldowns.get(command.name); //get the timestamp of the last used commands 54 | const cooldownAmount = (command.cooldown || 1.5) * 1000; //get the cooldownamount of the command, if there is no cooldown there will be automatically 1 sec cooldown, so you cannot spam it^^ 55 | if (timestamps.has(message.author.id)) { //if the user is on cooldown 56 | const expirationTime = timestamps.get(message.author.id) + cooldownAmount; //get the amount of time he needs to wait until he can run the cmd again 57 | if (now < expirationTime) { //if he is still on cooldonw 58 | const timeLeft = (expirationTime - now) / 1000; //get the lefttime 59 | return message.channel.send(new Discord.MessageEmbed() 60 | .setColor(ee.wrongcolor) 61 | .setFooter(ee.footertext,ee.footericon) 62 | .setTitle(`❌ Please wait ${timeLeft.toFixed(1)} more second(s) before reusing the \`${command.name}\` command.`) 63 | ); //send an information message 64 | } 65 | } 66 | timestamps.set(message.author.id, now); //if he is not on cooldown, set it to the cooldown 67 | setTimeout(() => timestamps.delete(message.author.id), cooldownAmount); //set a timeout function with the cooldown, so it gets deleted later on again 68 | try{ 69 | //if Command has specific permission return error 70 | if(command.memberpermissions && !message.member.hasPermission(command.memberpermissions)) { 71 | return message.channel.send(new Discord.MessageEmbed() 72 | .setColor(ee.wrongcolor) 73 | .setFooter(ee.footertext, ee.footericon) 74 | .setTitle("❌ Error | You are not allowed to run this command!") 75 | .setDescription(`You need these Permissions: \`${command.memberpermissions.join("`, ``")}\``) 76 | ).then(msg=>msg.delete({timeout: 5000}).catch(e=>console.log("Couldn't Delete --> Ignore".gray))); 77 | } 78 | //if the Bot has not enough permissions return error 79 | let required_perms = ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"] 80 | if(!message.guild.me.hasPermission(required_perms)){ 81 | return message.channel.send(new Discord.MessageEmbed() 82 | .setColor(ee.wrongcolor) 83 | .setFooter(ee.footertext, ee.footericon) 84 | .setTitle("❌ Error | I don't have enough Permissions!") 85 | .setDescription("Please give me just `ADMINISTRATOR`, because I need it to delete Messages, Create Channel and execute all Admin Commands.\n If you don't want to give me them, then those are the exact Permissions which I need: \n> `" + required_perms.join("`, `") +"`") 86 | ) 87 | } 88 | //run the command with the parameters: client, message, args, user, text, prefix, 89 | command.run(client, message, args, message.member, args.join(" "), prefix); 90 | }catch (e) { 91 | console.log(String(e.stack).red) 92 | return message.channel.send(new Discord.MessageEmbed() 93 | .setColor(ee.wrongcolor) 94 | .setFooter(ee.footertext, ee.footericon) 95 | .setTitle("❌ Something went wrong while, running the: `" + command.name + "` command") 96 | .setDescription(`\`\`\`${e.message}\`\`\``) 97 | ).then(msg=>msg.delete({timeout: 5000}).catch(e=>console.log("Couldn't Delete --> Ignore".gray))); 98 | } 99 | } 100 | else //if the command is not found send an info msg 101 | return message.channel.send(new Discord.MessageEmbed() 102 | .setColor(ee.wrongcolor) 103 | .setFooter(ee.footertext, ee.footericon) 104 | .setTitle(`❌ Unkown command, try: **\`${prefix}help\`**`) 105 | ).then(msg=>msg.delete({timeout: 5000}).catch(e=>console.log("Couldn't Delete --> Ignore".gray))); 106 | }catch (e){ 107 | return message.channel.send( 108 | new MessageEmbed() 109 | .setColor("RED") 110 | .setTitle(`❌ ERROR | An error occurred`) 111 | .setDescription(`\`\`\`${e.stack}\`\`\``) 112 | ); 113 | } 114 | /** 115 | * @INFO 116 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 117 | * @INFO 118 | * Work for Milrato Development | https://milrato.eu 119 | * @INFO 120 | * Please mention Him / Milrato Development, when using this Code! 121 | * @INFO 122 | */ 123 | } 124 | -------------------------------------------------------------------------------- /events/message.js: -------------------------------------------------------------------------------- 1 | const { prefix } = require("../botconfig/config.json"); 2 | const { MessageEmbed, Collection } = require("discord.js"); 3 | const escapeRegex = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); 4 | 5 | 6 | module.exports = async (client, message) => { 7 | if (!message.guild) return; 8 | if (message.author.bot) return; 9 | 10 | let Prefix = prefix 11 | 12 | // || PREFIX && COMMAND || 13 | const prefixRegex = new RegExp(`^(<@!?${client.user.id}>|${escapeRegex(Prefix)})\\s*`); 14 | if (!prefixRegex.test(message.content)) return; 15 | const [, matchedPrefix] = message.content.match(prefixRegex); 16 | 17 | const args = message.content.slice(matchedPrefix.length).trim().split(/ +/); 18 | 19 | if (!commandName.length && message.content.includes(client.user.id)) { 20 | message.reply(new MessageEmbed().setColor("#009dff").setDescription(`**My Prefix here is \`${Prefix}\`**`)); 21 | } 22 | 23 | const command = 24 | client.commands.get(commandName) || 25 | client.commands.find((cmd) => cmd.aliases && cmd.aliases.includes(commandName)); 26 | 27 | if (!command) return; 28 | 29 | 30 | // || C O O L D O W N S || 31 | if (!client.cooldowns.has(command.name)) { 32 | client.cooldowns.set(command.name, new Collection()); 33 | } 34 | 35 | const now = Date.now(); 36 | const timestamps = client.cooldowns.get(command.name); 37 | const cooldownAmount = (command.cooldown || 1) * 1000; 38 | 39 | if (timestamps.has(message.author.id)) { 40 | const expirationTime = timestamps.get(message.author.id) + cooldownAmount; 41 | 42 | if (now < expirationTime) { 43 | const timeLeft = (expirationTime - now) / 1000; 44 | return message.channel.send(new MessageEmbed() 45 | .setDescription(`**❌ Please wait \`${timeLeft.toFixed(1)}\` more second(s) before reusing the \`${command.name}\` command!**`) 46 | .setColor('#ff0000')) 47 | } 48 | } 49 | timestamps.set(message.author.id, now); 50 | setTimeout(() => timestamps.delete(message.author.id), cooldownAmount); 51 | 52 | // || E X E C U T E || 53 | try { 54 | command.run(client, message, args); 55 | } catch (error) { 56 | console.error(error); 57 | return message.channel.send("**❌ There was some problem executing that command!**").catch(console.error); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | module.exports = (client) => { 2 | 3 | console.log(`${client.user.username} ready!`.bold.green) 4 | 5 | client.user.setActivity("memer-api.js.org | m!help", { type: "PLAYING" }); 6 | } -------------------------------------------------------------------------------- /handlers/command.js: -------------------------------------------------------------------------------- 1 | const { readdirSync } = require("fs"); 2 | const ascii = require("ascii-table"); 3 | 4 | let table = new ascii("Commands"); 5 | table.setHeading("Command", "Load status"); 6 | 7 | module.exports = (client) => { 8 | 9 | readdirSync("./commands/").forEach((dir) => { 10 | 11 | const commands = readdirSync(`./commands/${dir}/`).filter((file) => file.endsWith(".js")); 12 | 13 | for (let file of commands) { 14 | let pull = require(`../commands/${dir}/${file}`); 15 | 16 | if (pull.name) { 17 | client.commands.set(pull.name, pull); 18 | table.addRow(file, '✅'); 19 | } else { 20 | table.addRow(file, `❌ -> missing a help.name, or help.name is not a string.`); 21 | continue; 22 | } 23 | 24 | if (pull.aliases && Array.isArray(pull.aliases)) { 25 | pull.aliases.forEach((alias) => client.aliases.set(alias, pull.name)); 26 | } 27 | 28 | } 29 | 30 | }) 31 | 32 | // Log the table 33 | console.log(table.toString()); 34 | } -------------------------------------------------------------------------------- /handlers/events.js: -------------------------------------------------------------------------------- 1 | const { readdirSync } = require("fs"); 2 | const ascii = require("ascii-table"); 3 | 4 | let table = new ascii("Events"); 5 | table.setHeading("Events", "Load status"); 6 | 7 | module.exports = (client) => { 8 | 9 | const commands = readdirSync(__dirname.replace("\handlers", "\events")).filter(file => file.endsWith(".js")); 10 | 11 | for (let file of commands) { 12 | 13 | try { 14 | let pull = require(`${__dirname.replace("\handlers", "\events")}/${file}`); 15 | 16 | if (pull.event && typeof pull.event !== "string") { 17 | table.addRow(file, `❌ -> Property event should be string.`); 18 | continue; 19 | } 20 | 21 | pull.event = pull.event || file.replace(".js", "") 22 | 23 | client.on(pull.event, pull.bind(null, client)) 24 | 25 | table.addRow(file, '✅'); 26 | 27 | } catch(err) { 28 | 29 | console.log(err) 30 | } 31 | } 32 | 33 | console.log(table.toString()); 34 | } -------------------------------------------------------------------------------- /handlers/functions.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | //changeging the duration from ms to a date 3 | duration: function(ms) { 4 | const sec = Math.floor((ms / 1000) % 60).toString(); 5 | const min = Math.floor((ms / (60 * 1000)) % 60).toString(); 6 | const hrs = Math.floor((ms / (60 * 60 * 1000)) % 60).toString(); 7 | const days = Math.floor((ms / (24 * 60 * 60 * 1000)) % 60).toString(); 8 | return `\`${days} Days\`, \`${hrs} Hours\`, \`${min} Minutes\`, \`${sec} Seconds\``; 9 | }, 10 | //Function to wait some time 11 | delay: function(delayInms) { 12 | return new Promise((resolve) => { 13 | setTimeout(() => { 14 | resolve(2); 15 | }, delayInms); 16 | }); 17 | }, 18 | format: function(millis) { 19 | var h = Math.floor(millis / 3600000), 20 | m = Math.floor(millis / 60000), 21 | s = ((millis % 60000) / 1000).toFixed(0); 22 | if (h < 1) return (m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s + " | " + (Math.floor(millis / 1000)) + " Seconds"; 23 | else return (h < 10 ? "0" : "") + h + ":" + (m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s + " | " + (Math.floor(millis / 1000)) + " Seconds"; 24 | }, 25 | escapeRegex: function(str) { 26 | return str.replace(/[.*+?^${}()|[\]\\]/g, `\\$&`); 27 | }, 28 | } 29 | /** 30 | * @INFO 31 | * Bot Coded by Tomato#6966 | https://github.com/Tomato6966/Discord-Js-Handler-Template 32 | * @INFO 33 | * Work for Milrato Development | https://milrato.eu 34 | * @INFO 35 | * Please mention Him / Milrato Development, when using this Code! 36 | * @INFO 37 | */ 38 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const Meme = require("memer-api"); 3 | const { prefix, token, api_token } = require("./botconfig/config.json"); 4 | const colors = require("colors"); 5 | 6 | 7 | const client = new Discord.Client({ 8 | restTimeOffset: 0, 9 | disableEveryone: true, 10 | partials: ['MESSAGE', 'CHANNEL', 'REACTION'] 11 | }) 12 | 13 | client.login(token); 14 | 15 | 16 | client.memer = new Meme(api_token) // Memer API Token from - https://discord.gg/emD44ZJaSA 17 | client.prefix = prefix; 18 | 19 | client.commands = new Discord.Collection(); 20 | client.aliases = new Discord.Collection(); 21 | client.cooldowns = new Discord.Collection(); 22 | 23 | 24 | ["command", "events"].forEach(handler => { 25 | require(`./handlers/${handler}`)(client); 26 | }); 27 | module.exports = client; 28 | 29 | client.on("warn", (info) => console.log(info)); 30 | client.on("error", console.error); 31 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "memer_api_bot", 3 | "version": "2.0.0", 4 | "description": "Memer api Bot", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Yash & Aniket", 11 | "license": "ISC", 12 | "dependencies": { 13 | "ascii-table": "0.0.9", 14 | "discord.js": "^12.5.1", 15 | "memer-api": "^3.0.2" 16 | }, 17 | "devDependencies": { 18 | "ascii-table": "0.0.9", 19 | "colors": "^1.4.0" 20 | } 21 | } 22 | --------------------------------------------------------------------------------