Advertisement
Guest User

Megan Ideas

a guest
Oct 21st, 2017
485
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.07 KB | None | 0 0
  1. // Main
  2. const Discord = require("discord.js");
  3. const client = new Discord.Client();
  4. // Modules
  5. const ytdl = require('ytdl-core');
  6. const cheerio = require('cheerio'),
  7. snekfetch = require('snekfetch'),
  8. querystring = require('querystring');
  9.  
  10. // Bot
  11. let token = "CENSORED"
  12. let prefix = "p/"
  13. // YouTube API
  14. const YouTube_API_Token = `AIzaSyC8xq8po-AyecuwPSisJ_mzIXpuK96h28M`;
  15. var YouTube_Client = require('youtube-node');
  16. var yt = new YouTube_Client();
  17. yt.setKey(YouTube_API_Token);
  18. // Data
  19. const answers = ["Maybe, just maybe.", "Duh..", "Could be.", "OMG YES YES YES!", "Not in a million years.", "Yeah, yeah.", "Of course!", "No, just.. no.", "Yeah yeah, yeah yeah yeah!"];
  20. const cF = ["heads", "tails"]
  21.  
  22. // // //
  23.  
  24. client.on('ready', () => {
  25. console.log(`Logged in as ${client.user.tag}!\nReady for Action! :D`);
  26. console.log(`[Stats] User: ${client.user.tag} | ID: ${client.user.id}`);
  27. console.log(`[Stats] Guilds: ${client.guilds.size} | Members: ${client.users.size}`);
  28. client.user.setPresence({ game: { name: `${prefix}help`, type: 0 } });
  29. });
  30.  
  31.  
  32. client.on("guildMemberAdd", member => {
  33. let welcomePortal = client.channels.get('285052353109950466')
  34. const embed = new Discord.RichEmbed()
  35. const embed2 = new Discord.RichEmbed()
  36. embed2.setAuthor(member.user.tag, member.user.avatarURL)
  37. embed2.setColor(0xefb81c)
  38. embed2.addField(`Member joined!`, `Welcome to the ParasiteMC Discord, ${member}!`, true)
  39. embed2.setFooter("Member joined", client.user.avatarURL)
  40. embed2.setThumbnail(member.user.avatarURL)
  41. embed2.setTimestamp()
  42.  
  43. let DlogChannel = "logs"
  44. const channel = member.guild.channels.find('name', DlogChannel);
  45. if (!channel) return;
  46. embed.setAuthor(member.user.tag, member.user.avatarURL)
  47. embed.setColor(0xefb81c)
  48. embed.setFooter("Member joined", client.user.avatarURL)
  49. embed.setTimestamp()
  50. channel.send({ embed: embed });
  51. welcomePortal.send({ embed: embed2 });
  52. });
  53.  
  54. client.on("guildMemberRemove", member2 => {
  55. let welcomePortal = client.channels.get('285052353109950466')
  56. const embed = new Discord.RichEmbed()
  57. const embed2 = new Discord.RichEmbed()
  58. embed2.setAuthor(member2.user.tag, member2.user.avatarURL)
  59. embed2.setColor(0xefb81c)
  60. embed2.addField(`Member left!`, `Byebye ${member2.user.tag}, you will be missed!`, true)
  61. embed2.setFooter("Member left", client.user.avatarURL)
  62. embed2.setThumbnail(member2.user.avatarURL)
  63. embed2.setTimestamp()
  64.  
  65. let DlogChannel = "logs"
  66. const channel = member2.guild.channels.find('name', DlogChannel);
  67. if (!channel) return;
  68. embed.setAuthor(member2.user.tag, member2.user.avatarURL)
  69. embed.setColor(0xefb81c)
  70. embed.setFooter("Member left", client.user.avatarURL)
  71. embed.setTimestamp()
  72. channel.send({ embed: embed });
  73. welcomePortal.send({ embed: embed2 });
  74. });
  75.  
  76. client.on("messageDelete", message => {
  77. let welcomePortal = client.channels.get('326393866963910656')
  78. const embed = new Discord.RichEmbed()
  79. embed.setAuthor(message.author.tag, message.author.displayAvatarURL);
  80. embed.setColor(0xefb81c)
  81. embed.setDescription(`**Message:** ${message.content}`)
  82. embed.setFooter("Message Deleted", client.user.avatarURL);
  83. embed.setTimestamp()
  84.  
  85. let DlogChannel = "logs"
  86. const channel = message.guild.channels.find('name', DlogChannel);
  87. if (!channel) return;
  88. channel.send({ embed: embed });
  89. });
  90.  
  91. client.on('message', msg => { // start
  92.  
  93. if (msg.content.startsWith(prefix + `ping`)) {
  94. const embed = new Discord.RichEmbed()
  95. embed.setTitle("Pong!");
  96. embed.setFooter(prefix + "ping", client.user.avatarURL)
  97. embed.setColor(0xefb81c)
  98. embed.setTimestamp()
  99. msg.channel.send({embed}).then(m => {
  100. embed.setDescription((m.createdTimestamp - msg.createdTimestamp) + "ms");
  101. m.edit({embed});
  102. });
  103. }
  104. if (msg.content.startsWith(prefix + `help`)) {
  105. const embed = new Discord.RichEmbed()
  106. embed.addField(prefix + "help", "Shows you this help menu.")
  107. embed.setColor(0xefb81c)
  108. embed.addField(prefix + "youtube", "Search for a YouTube video.")
  109. embed.addField(prefix + "ping", "Pings the bot's connection to Discord.")
  110. embed.addField(prefix + "play", "Plays a YouTube video.")
  111. embed.addField(prefix + "stop", "Stops playing music and leaves the channel.")
  112. embed.addField(prefix + "coinflip", "Flips a coin, you'll get heads or tails.")
  113. embed.addField(prefix + "8ball", "Ask a question to the magical 8ball.")
  114. embed.addField(prefix + "mcbust", "Renders a player's Minecraft bust.")
  115. embed.addField(prefix + "mchead", "Renders a player's Minecraft head in 3D.")
  116. embed.addField(prefix + "mcbody", "Renders a player's Minecraft body from the front/side in 3D.")
  117. embed.addField(prefix + "serverinfo", "Shows you information about this Discord server.")
  118. embed.addField(prefix + "mute", "Mutes the mentioned user. Will error if the muted role isn't present.")
  119. embed.addField(prefix + "warn", "Warns the mentioned user. Make sure to provide a reason!")
  120. embed.addField(prefix + "online", "Shows you who is on the server and which gamemode they are in!")
  121. embed.addField(prefix + "uptime", "Shows you how long the server has been online!")
  122. embed.addField(prefix + "dab @user", "Dabs on the user you @!")
  123. embed.addField(prefix + "poke @user", "Pokes the user you @!")
  124. embed.addField(prefix + "kiss @user", "Kisses the user you @!")
  125. embed.addField(prefix + "hoot @user", "Hoots at the user you @!")
  126. embed.addField(prefix + "lick @user", "Licks the user you @!")
  127. embed.addField(prefix + "highfive @user", "Highfives the user you @!")
  128. embed.addField(prefix + "slap @user", "Slaps the user you @!")
  129. embed.addField(prefix + "hug @user", "Hugs the user you @!")
  130. embed.setFooter(prefix + "help", client.user.avatarURL)
  131. embed.setTimestamp()
  132. msg.channel.send({ embed: embed });
  133. }
  134.  
  135. //
  136.  
  137. if (msg.content.startsWith(prefix + `mchead`)) {
  138. const args = msg.content.split(" ").slice(1).join(" ");
  139. const embed = new Discord.RichEmbed()
  140. embed.setFooter(prefix + "mchead", client.user.avatarURL)
  141. embed.setColor(0xefb81c)
  142. embed.setTimestamp()
  143. embed.setAuthor(args, `https://visage.surgeplay.com/face/512/${args}.png`)
  144. embed.setImage(`https://visage.surgeplay.com/head/256/${args}.png`)
  145. msg.channel.send({embed});
  146. }
  147. if (msg.content.startsWith(prefix + `mcbody`)) {
  148. const args = msg.content.split(" ").slice(1).join(" ");
  149. const embed = new Discord.RichEmbed()
  150. embed.setFooter(prefix + "mcbody", client.user.avatarURL)
  151. embed.setColor(0xefb81c)
  152. embed.setTimestamp()
  153. embed.setAuthor(args, `https://visage.surgeplay.com/face/512/${args}.png`)
  154. embed.setImage(`https://visage.surgeplay.com/full/256/${args}.png`)
  155. msg.channel.send({embed});
  156. }
  157. if (msg.content.startsWith(prefix + `mcbust`)) {
  158. const args = msg.content.split(" ").slice(1).join(" ");
  159. const embed = new Discord.RichEmbed()
  160. embed.setFooter(prefix + "mcbust", client.user.avatarURL)
  161. embed.setColor(0xefb81c)
  162. embed.setTimestamp()
  163. embed.setAuthor(args, `https://visage.surgeplay.com/face/512/${args}.png`)
  164. embed.setImage(`https://visage.surgeplay.com/bust/256/${args}.png`)
  165. msg.channel.send({embed});
  166. }
  167.  
  168. if (msg.content.startsWith(prefix + `8ball`)) {
  169. if(msg.content.endsWith(`?`)) {
  170. // answer
  171. const embed = new Discord.RichEmbed()
  172. .setFooter(prefix + "8ball", client.user.avatarURL)
  173. .setColor(0xefb81c)
  174. .setDescription(":8ball: " + answers[Math.floor(Math.random() * answers.length)])
  175. msg.channel.send({embed});
  176. } else {
  177. // error
  178. const embed = new Discord.RichEmbed()
  179. .setFooter(prefix + "8ball", client.user.avatarURL)
  180. .setColor(0xefb81c)
  181. .setDescription(":8ball: That isn't a question!")
  182. msg.channel.send({embed});
  183. }
  184. }
  185.  
  186. if (msg.content.startsWith(prefix + `serverinfo`)) {
  187. let m1user = msg.guild.members.filter(b => !b.user.bot).size;
  188. let m2bot = msg.guild.members.filter(b => b.user.bot).size;
  189. const embed = new Discord.RichEmbed()
  190. embed.addField(`Server information`, `**Name**: \`${msg.guild.name}\`\n**Owner**: \`${msg.guild.owner.user.tag}\`\n**Members**: \`${m1user}\`\n**Bots**: \`${m2bot}\`\n**Total**: \`${msg.guild.memberCount}\``, true);
  191. embed.setColor(0xefb81c)
  192. embed.setFooter(prefix + "serverinfo", client.user.avatarURL)
  193. embed.setTimestamp()
  194. embed.setThumbnail(msg.guild.iconURL)
  195. msg.channel.send({embed});
  196. }
  197.  
  198. if (msg.content.startsWith(prefix + `coinflip`)) {
  199. const embed = new Discord.RichEmbed()
  200. .setFooter(prefix + "coinflip", client.user.avatarURL)
  201. .setDescription("You flipped a " + cF[Math.floor(Math.random() * cF.length)] + "!")
  202. .setColor(0xefb81c)
  203. msg.channel.send({embed});
  204. }
  205.  
  206. if (msg.content.startsWith(prefix + `warn`)) {
  207. let user = msg.mentions.members.first();
  208. const args = msg.content.split(" ").slice(2).join(" ");
  209.  
  210. if (!msg.member.roles.exists('name', 'Staff')) {
  211. const embed = new Discord.RichEmbed()
  212. embed.addField("Error", `You do not have the Staff role, therefore you are not permitted to use moderation commands.`, true);
  213. embed.setFooter(prefix + "warn", client.user.avatarURL)
  214. embed.setColor(0xefb81c)
  215. embed.setTimestamp()
  216. msg.channel.send({ embed: embed });
  217. } else {
  218. if (!user) {
  219. const embed = new Discord.RichEmbed()
  220. embed.addField("Error", `You didn't mention the user to mute`, true);
  221. embed.setFooter(prefix + "warn", client.user.avatarURL)
  222. embed.setColor(0xefb81c)
  223. embed.setTimestamp()
  224. msg.channel.send({ embed: embed });
  225. } else {
  226. if (!args) {
  227. const embed = new Discord.RichEmbed()
  228. embed.addField("Error", `You didn't provide a reason for the warning`, true);
  229. embed.setFooter(prefix + "warn", client.user.avatarURL)
  230. embed.setColor(0xefb81c)
  231. embed.setTimestamp()
  232. msg.channel.send({ embed: embed });
  233. } else {
  234. const embed = new Discord.RichEmbed()
  235. embed.addField("Success", `**${user.user.tag}** was warned.`, true);
  236. embed.setFooter(prefix + "warn", client.user.avatarURL)
  237. embed.setColor(0xefb81c)
  238. embed.setTimestamp()
  239. msg.channel.send({ embed: embed });
  240.  
  241. const embed2 = new Discord.RichEmbed()
  242. let DlogChannel = "logs"
  243. const channel = user.guild.channels.find('name', DlogChannel);
  244. if (!channel) return;
  245. embed2.setAuthor(user.user.tag, user.user.avatarURL)
  246. embed2.setDescription(`**Moderator**: \`${msg.author.tag}\`\n**Reason**: ${args}`)
  247. embed2.setFooter("User warned", client.user.avatarURL)
  248. embed.setColor(0xefb81c)
  249. embed2.setTimestamp()
  250. channel.send({ embed: embed2 });
  251. }
  252. }}}
  253.  
  254. if (msg.content.startsWith(prefix + `mute`)) {
  255. let user = msg.mentions.members.first();
  256. let role = msg.guild.roles.find('name', 'Muted');
  257.  
  258. if (!msg.member.roles.exists('name', 'Staff')) {
  259. const embed = new Discord.RichEmbed()
  260. embed.addField("Error", `You do not have the Staff role, therefore you are not permitted to use moderation commands.`, true);
  261. embed.setFooter(prefix + "mute", client.user.avatarURL)
  262. embed.setColor(0xefb81c)
  263. embed.setTimestamp()
  264. msg.channel.send({ embed: embed });
  265. } else {
  266. if (!role) {
  267. const embed = new Discord.RichEmbed()
  268. embed.addField("Error", `There isn't a muted role present in the guild`, true);
  269. embed.setFooter(prefix + "mute", client.user.avatarURL)
  270. embed.setColor(0xefb81c)
  271. embed.setTimestamp()
  272. msg.channel.send({embed});
  273. } else {
  274. if (!user) {
  275. const embed = new Discord.RichEmbed()
  276. embed.addField("Error", `You didn't mention the user to mute`, true);
  277. embed.setFooter(prefix + "mute ", client.user.avatarURL)
  278. embed.setColor(0xefb81c)
  279. embed.setTimestamp()
  280. msg.channel.send({ embed: embed });
  281. } else {
  282. user.addRole(role)
  283. const embed = new Discord.RichEmbed()
  284. embed.addField("Success", `**${user.user.tag}** was muted. To unmute them, remove the \`Muted\` role`, true);
  285. embed.setFooter(prefix + "mute", client.user.avatarURL)
  286. embed.setColor(0xefb81c)
  287. embed.setTimestamp()
  288. msg.channel.send({ embed: embed });
  289.  
  290. const embed2 = new Discord.RichEmbed()
  291. let DlogChannel = "logs"
  292. const channel = user.guild.channels.find('name', DlogChannel);
  293. if (!channel) return;
  294. embed2.setAuthor(user.user.tag, user.user.avatarURL)
  295. embed2.setDescription(`**Moderator**: \`${msg.author.tag}\``)
  296. embed2.setFooter("User muted", client.user.avatarURL)
  297. embed2.setColor(0xefb81c)
  298. embed2.setTimestamp()
  299. channel.send({ embed: embed2 });
  300. }}}}
  301.  
  302. //
  303.  
  304. if (msg.content.startsWith(prefix + `youtube`)) {
  305. const embed = new Discord.RichEmbed()
  306. const args = msg.content.split(" ").slice(1).join(" ");
  307.  
  308. yt.search(args, 1, function(error, result) {
  309. if (error) {
  310. embed.setDescription(`Error: \`${error}\``)
  311. embed.setFooter(prefix + "youtube", client.user.avatarURL)
  312. embed.setColor(0xefb81c)
  313. embed.setTimestamp()
  314. msg.channel.send({embed});
  315. }
  316. else {
  317.  
  318. // msg.channel.send("```JSON\n" + JSON.stringify(result, null, 1) + "\n```");
  319.  
  320. embed.setDescription(`Result found:\n\nTitle: ${result.items[0].snippet.title}\nPublisher: ${result.items[0].snippet.channelTitle}\nID: ${result.items[0].id.videoId}\nURL: [Click here!](https://www.youtube.com/watch?v=${result.items[0].id.videoId})`)
  321. embed.setFooter(prefix + "youtube", client.user.avatarURL)
  322. embed.setColor(0xefb81c)
  323. embed.setTimestamp()
  324. msg.channel.send({ embed: embed });
  325. }
  326. });
  327. }
  328.  
  329. if (msg.content.startsWith(prefix + `play`)) {
  330.  
  331. const args = msg.content.split(" ").slice(1).join(" ");
  332. const voiceChannel = msg.member.voiceChannel;
  333.  
  334. if(args.startsWith(`yt:`)) {
  335.  
  336. yt.search(args, 1, function(error, result) {
  337. if (error) {
  338. const embed22 = new Discord.RichEmbed()
  339. embed22.addField("Error", `Unknown error, please try again.`, true);
  340. embed22.setFooter("Music", client.user.avatarURL)
  341. embed22.setColor(0xefb81c)
  342. embed22.setTimestamp()
  343. msg.channel.send({ embed: embed22 });
  344. } else {
  345. if (!voiceChannel) {
  346. const embed222 = new Discord.RichEmbed()
  347. embed222.addField("Error", `Please be in a voice channel first!`, true);
  348. embed222.setFooter("Music", client.user.avatarURL)
  349. embed222.setColor(e58a30)
  350. embed222.setTimestamp()
  351. msg.channel.send({ embed: embed222 });
  352. }
  353. voiceChannel.join()
  354. .then(connnection => {
  355. const stream = ytdl(`https://www.youtube.com/watch?v=${result.items[0].id.videoId}`, { filter: 'audioonly' });
  356. const dispatcher = connnection.playStream(stream);
  357. const embed = new Discord.RichEmbed()
  358. embed.addField("Now playing", `**${result.items[0].snippet.title}** by ${result.items[0].snippet.channelTitle}`, true);
  359. embed.setFooter("Music", client.user.avatarURL)
  360. embed.setColor(0xefb81c)
  361. embed.setThumbnail(result.items[0].snippet.thumbnails.default.url)
  362. embed.setTimestamp()
  363. msg.channel.send({ embed: embed });
  364. dispatcher.on('end', () => voiceChannel.leave());
  365. })
  366. }
  367. })} else {
  368. if (!voiceChannel) {
  369. const embed2221 = new Discord.RichEmbed()
  370. embed2221.addField("Error", `Please be in a voice channel first!`, true);
  371. embed2221.setFooter("Music", client.user.avatarURL)
  372. embed2221.setColor(0xefb81c)
  373. embed2221.setTimestamp()
  374. msg.channel.send({ embed: embed2221 });
  375. return;
  376. }
  377. voiceChannel.join()
  378. .then(connnection => {
  379. const stream = new ytdl(args, { filter: 'audioonly' });
  380. const dispatcher = connnection.playStream(stream);
  381. const embed = new Discord.RichEmbed()
  382. embed.addField("Now playing", `**[${args}](${args})**\nNo more information is available, as a URL was used.`, true);
  383. embed.setFooter("Music", client.user.avatarURL)
  384. embed.setColor(0xefb81c)
  385. embed.setTimestamp()
  386. msg.channel.send({ embed: embed });
  387. dispatcher.on('end', () => voiceChannel.leave());
  388. });
  389. }}
  390.  
  391. if (msg.content.startsWith(prefix + `stop`)) {
  392. const voice = msg.guild.voiceConnection;
  393. if (!voice) {
  394. const embed = new Discord.RichEmbed()
  395. embed.addField("Error", `The bot isn't playing music.`, true);
  396. embed.setFooter("Music", client.user.avatarURL)
  397. embed.setColor(0xefb81c)
  398. embed.setTimestamp()
  399. msg.channel.send({ embed: embed });
  400. } else {
  401. if (!voice.dispatcher) return;
  402. voice.dispatcher.end();
  403. voice.disconnect();
  404. const embed1 = new Discord.RichEmbed()
  405. embed1.addField("Success", `Music stopped.`, true);
  406. embed1.setFooter("Music", client.user.avatarURL)
  407. embed.setColor(0xefb81c)
  408. embed1.setTimestamp()
  409. msg.channel.send({ embed: embed1 });
  410. }
  411. }
  412. // Hoot Command
  413.  
  414. if (msg.content.startsWith(prefix + `hoot`)) {
  415. let member = msg.mentions.members.first();
  416. const embed = new Discord.RichEmbed()
  417. embed.setFooter("!hoot | ParasiteMC ")
  418. embed.setColor(0xefb81c)
  419. embed.addField("Hoot Hoot", ":owl: " + msg.author + " just hooted at " + member + "! Hoot Hoot Hoot", true)
  420. embed.setThumbnail("https://i.imgur.com/iSmUCSG.gif")
  421. msg.channel.send({embed});
  422. }
  423. // Dab Command
  424.  
  425. if (msg.content.startsWith(prefix + `dab`)) {
  426. let member = msg.mentions.members.first();
  427. const embed = new Discord.RichEmbed()
  428. embed.setFooter("!dab | ParasiteMC ")
  429. embed.setColor(0xefb81c)
  430. embed.addField("Dabberty Dab", " " + msg.author + " just dabbed on " + member + "! They must be a hater!", true)
  431. embed.setThumbnail("https://i.imgur.com/wjwFo5F.png")
  432. msg.channel.send({embed});
  433. }
  434.  
  435. // Poke Command
  436.  
  437. if (msg.content.startsWith(prefix + `poke`)) {
  438. let member = msg.mentions.members.first();
  439. const embed = new Discord.RichEmbed()
  440. embed.setFooter("!poke | ParasiteMC ")
  441. embed.setColor(0xefb81c)
  442. embed.addField("*giggles*", msg.author + " just poked " + member + " hehe", true)
  443. embed.setThumbnail("https://i.imgur.com/yC3srKg.gif")
  444. msg.channel.send({embed});
  445. }
  446.  
  447. // Highfive Command
  448.  
  449. if (msg.content.startsWith(prefix + `highfive`)) {
  450. let member = msg.mentions.members.first();
  451. const embed = new Discord.RichEmbed()
  452. embed.setFooter("!highfive | ParasiteMC ")
  453. embed.setColor(0xefb81c)
  454. embed.addField("Epic!", msg.author + " just highfived " + member + "!", true)
  455. embed.setThumbnail("https://i.imgur.com/DMbJYBr.gif")
  456. msg.channel.send({embed});
  457. }
  458. // Lick Command
  459.  
  460. if (msg.content.startsWith(prefix + `lick`)) {
  461. let member = msg.mentions.members.first();
  462. const embed = new Discord.RichEmbed()
  463. embed.setFooter("!lick | ParasiteMC ")
  464. embed.setColor(0xefb81c)
  465. embed.addField("Ermm, ", msg.author + " just licked " + member + "...", true)
  466. embed.setThumbnail("https://i.imgur.com/mxOEBUM.gif")
  467. msg.channel.send({embed});
  468. }
  469.  
  470. // Hug Command
  471.  
  472. if (msg.content.startsWith(prefix + `hug`)) {
  473. let member = msg.mentions.members.first();
  474. const embed = new Discord.RichEmbed()
  475. embed.setFooter("!hug | ParasiteMC ")
  476. embed.setColor(0xefb81c)
  477. embed.addField("Cute!", msg.author + " just hugged " + member + "!", true)
  478. embed.setThumbnail("https://i.imgur.com/IPs7xKU.gif")
  479. msg.channel.send({embed});
  480. }
  481.  
  482. // Slap Command
  483.  
  484. if (msg.content.startsWith(prefix + `slap`)) {
  485. let member = msg.mentions.members.first();
  486. const embed = new Discord.RichEmbed()
  487. embed.setFooter("!slap | ParasiteMC ")
  488. embed.setColor(0xefb81c)
  489. embed.addField("Ow, ", msg.author + " just slapped " + member + "!", true)
  490. embed.setThumbnail("https://i.imgur.com/7eOVjlR.gif")
  491. msg.channel.send({embed});
  492. }
  493.  
  494. // Kiss Command
  495.  
  496. if (msg.content.startsWith(prefix + `kiss`)) {
  497. let member = msg.mentions.members.first();
  498. const embed = new Discord.RichEmbed()
  499. embed.setFooter("!kiss | ParasiteMC ")
  500. embed.setColor(0xefb81c)
  501. embed.addField("Awww, ", msg.author + " just kissed " + member + "!", true)
  502. embed.setThumbnail("https://i.imgur.com/4l9OkSZ.gif")
  503. msg.channel.send({embed});
  504. }
  505. });
  506. client.login(token);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement