Advertisement
gaber-elsayed

broadcast

Sep 30th, 2021
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.37 KB | None | 0 0
  1. const Discord = require("discord.js");
  2. const client = new Discord.Client();
  3.  
  4. let config = require('./config.json')
  5.  
  6. let Token = config.BOT_TOKEN;
  7.  
  8. let prefix = config.Prefix;
  9.  
  10. let owners = config.owners;
  11.  
  12. let timeS = config.Time
  13.  
  14. client.on("ready", () => {
  15.  
  16. console.log(`Logged in as: ${client.user.tag}`);
  17. console.log(`-> Servers / Members: ${client.guilds.cache.size} server / ${client.users.cache.size} member`);
  18. console.log(`Developer: Amir.#0001`);
  19.  
  20. });
  21.  
  22. // Timeout Function
  23.  
  24. const timeIIa = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
  25.  
  26. client.on("message", async message => {
  27.  
  28. if (!message.channel.guild) return;
  29.  
  30. if (message.content === prefix + "bc") {
  31.  
  32. if (owners.includes(message.author.id)) {
  33.  
  34. let loading = new Discord.MessageEmbed()
  35.  
  36. .setTitle("Advanced Broadcast")
  37. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  38. .setColor(message.member.roles.highest.hexColor)
  39. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  40. .addField("Loading . . .", "Loading . . .")
  41. .addField("Loading . . .", "Loading . . .")
  42. .addField("Loading . . .", "Loading . . .")
  43. .addField("Loading . . .", "**Loading . . .**")
  44. .setFooter("Advanced Broadcast by Amir.#0001")
  45.  
  46. let embed = new Discord.MessageEmbed()
  47.  
  48. .setTitle("Advanced Broadcast")
  49. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  50. .setColor(message.member.roles.highest.hexColor)
  51. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  52. .addField("🟢", "Send to online members **only** `[ " + message.guild.members.cache.filter(m => m.presence.status === "dnd" || m.presence.status === "idle" || m.presence.status === "online" && !m.user.bot).size + " ] member`")
  53. .addField("🟠", "Send to **role** members")
  54. .addField("🔵", "Send to **all** members `[ " + message.guild.memberCount + " ] member`")
  55. .addField("❌", "**Cancel**")
  56. .setFooter("Advanced Broadcast by Amir.#0001")
  57.  
  58. message.channel.send(loading).then(async (m) => {
  59.  
  60. await m.react("🟢");
  61. await m.react("🟠");
  62. await m.react("🔵")
  63. await m.react("❌").then(() => {
  64.  
  65. m.edit(embed);
  66.  
  67. })
  68.  
  69. let ReactionFilter = (r, user) => {
  70. return user.id === message.author.id && ["🟢", "🟠", "🔵", "❌"].includes(r.emoji.name);
  71. };
  72. let ReactionCollector = m.createReactionCollector(ReactionFilter, { time: 15000 });
  73.  
  74. ReactionCollector.on("collect", re => {
  75.  
  76. if (re.emoji.name === "❌") {
  77.  
  78. m.delete({ timeout: 150 });
  79. message.channel.send(`**:x: Canceled by: ${message.member}**`)
  80.  
  81. return;
  82. }
  83.  
  84. if (re.emoji.name === "🔵") {
  85.  
  86. m.reactions.removeAll();
  87.  
  88. ReactionCollector.stop("Done2");
  89.  
  90. } else if (re.emoji.name === "🟢") {
  91.  
  92. m.reactions.removeAll();
  93.  
  94. ReactionCollector.stop("Done1");
  95.  
  96. } else if (re.emoji.name === "🟠") {
  97.  
  98. m.reactions.removeAll();
  99.  
  100. ReactionCollector.stop("Done3");
  101.  
  102. }
  103.  
  104. });
  105.  
  106. ReactionCollector.on("end", async (col, reason) => {
  107.  
  108. if (reason === "Done1") {
  109.  
  110. //Online only
  111.  
  112. let msgEmbed = new Discord.MessageEmbed()
  113.  
  114. .setTitle("Advanced Broadcast")
  115. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  116. .setColor(message.member.roles.highest.hexColor)
  117. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  118. .setDescription(":white_check_mark:** | Write your message.**")
  119. .setFooter("Advanced Broadcast by Amir.#0001")
  120.  
  121. m.edit(msgEmbed).then(() => {
  122.  
  123.  
  124. let MsgFilter = m => m.author.id === message.author.id;
  125.  
  126. let MsgCollector = m.channel.createMessageCollector(MsgFilter, { time: 60000, max: 1 });
  127.  
  128. MsgCollector.on("collect", msg => {
  129.  
  130. let SureEmbed = new Discord.MessageEmbed()
  131.  
  132. .setTitle("Are you sure you want to send this message ?")
  133. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  134. .setColor(message.member.roles.highest.hexColor)
  135. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  136. .setDescription(msg.content)
  137. .setFooter("Advanced Broadcast by Amir.#0001")
  138.  
  139. msg.delete({ timeout: 500 });
  140. m.delete({ timeout: 500 });
  141.  
  142. msg.channel.send(SureEmbed).then(async (mSure) => {
  143.  
  144.  
  145. await mSure.react("✅");
  146. await mSure.react("❌");
  147.  
  148. let ReactionFilter = (r, user) => {
  149.  
  150. return user.id === message.author.id && ["✅", "❌"].includes(r.emoji.name);
  151.  
  152. }
  153.  
  154. let ReactionCollector = mSure.createReactionCollector(ReactionFilter, { time: 15000 });
  155.  
  156. ReactionCollector.on("collect", r => {
  157.  
  158. if (r.emoji.name === "✅") {
  159.  
  160.  
  161. mSure.reactions.removeAll();
  162. ReactionCollector.stop("Done1" + msg.content);
  163.  
  164. } else if (r.emoji.name === "❌") {
  165.  
  166. mSure.reactions.removeAll();
  167.  
  168. ReactionCollector.stop("Done2");
  169.  
  170. }
  171.  
  172. })
  173.  
  174. ReactionCollector.on("end", async (col, reason) => {
  175.  
  176. if (reason.startsWith("Done1")) {
  177.  
  178. let msg = reason.replace("Done1", "");
  179.  
  180. //Send
  181.  
  182.  
  183. let sendEmbed = new Discord.MessageEmbed()
  184. .setTitle("Advanced Broadcast")
  185. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  186. .setColor(message.member.roles.highest.hexColor)
  187. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  188. .setDescription(`:white_check_mark: **| Sending... | All Members: ${message.guild.members.cache.filter(m => m.presence.status === "dnd" || m.presence.status === "idle" || m.presence.status === "online" && !m.user.bot).size}**`)
  189. .setFooter("Advanced Broadcast by Amir.#0001")
  190.  
  191. mSure.edit(sendEmbed);
  192.  
  193. let members = message.guild.members.cache.filter(m => m.presence.status === "dnd" || m.presence.status === "idle" || m.presence.status === "online" && !m.user.bot).array();
  194.  
  195.  
  196. for (var i = 0; i < members.length; i++) {
  197.  
  198. try {
  199.  
  200. await members[i].send(msg) // Send Message;
  201.  
  202. await timeIIa(timeS);
  203.  
  204.  
  205. } catch {
  206.  
  207. }
  208.  
  209. }
  210.  
  211. setInterval(() => {
  212.  
  213. let edddd = new Discord.MessageEmbed()
  214. .setTitle("Advanced Broadcast")
  215. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  216. .setColor(message.member.roles.highest.hexColor)
  217. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  218. .setDescription(`:white_check_mark: **| Sending... | All Members: ${message.guild.members.cache.filter(m => m.presence.status === "dnd" || m.presence.status === "idle" || m.presence.status === "online" && !m.user.bot).size}**`)
  219. .setFooter("Advanced Broadcast by Amir.#0001")
  220.  
  221. mSure.edit(edddd);
  222.  
  223. }, 1 * 10000);
  224.  
  225. } else if (reason === "Done2") {
  226.  
  227. //Cancel
  228.  
  229. let cancelEmbed = new Discord.MessageEmbed()
  230. .setTitle("Advanced Broadcast")
  231. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  232. .setColor(message.member.roles.highest.hexColor)
  233. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  234. .setDescription(":x:** | Canceled.**")
  235. .setFooter("Advanced Broadcast by Amir.#0001")
  236.  
  237. mSure.edit(cancelEmbed);
  238. mSure.reactions.removeAll();
  239.  
  240. } else if (!reason.startsWith("Done1") && !reason.startsWith("Done2")) {
  241.  
  242. let timeoutEmbed = new Discord.MessageEmbed()
  243. .setTitle("Advanced Broadcast")
  244. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  245. .setColor(message.member.roles.highest.hexColor)
  246. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  247. .setDescription(":x:** | Reaction timeout.**")
  248. .setFooter("Advanced Broadcast by Amir.#0001")
  249.  
  250.  
  251. mSure.reactions.removeAll();
  252. mSure.edit(timeoutEmbed);
  253.  
  254. }
  255.  
  256.  
  257.  
  258. })
  259.  
  260.  
  261. })
  262.  
  263. });
  264.  
  265. MsgCollector.on("end", async (ccol, reason) => {
  266.  
  267.  
  268. });
  269.  
  270. })
  271.  
  272. } else if (reason === "Done2") {
  273.  
  274. //All
  275.  
  276. let msgEmbed = new Discord.MessageEmbed()
  277.  
  278. .setTitle("Advanced Broadcast")
  279. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  280. .setColor(message.member.roles.highest.hexColor)
  281. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  282. .setDescription(":white_check_mark:** | Write your message.**")
  283. .setFooter("Advanced Broadcast by Amir.#0001")
  284.  
  285. m.edit(msgEmbed).then(() => {
  286.  
  287. let MsgFilter = m => m.author.id === message.author.id;
  288. let MsgCollector = m.channel.createMessageCollector(MsgFilter, { time: 60000, max: 1 });
  289.  
  290. MsgCollector.on("collect", msg => {
  291.  
  292. let SureEmbed = new Discord.MessageEmbed()
  293.  
  294. .setTitle("Are you sure you want to send this message ?")
  295. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  296. .setColor(message.member.roles.highest.hexColor)
  297. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  298. .setDescription(msg.content)
  299. .setFooter("Advanced Broadcast by Amir.#0001")
  300.  
  301. msg.delete({ timeout: 500 });
  302. m.delete({ timeout: 500 });
  303.  
  304. msg.channel.send(SureEmbed).then(async (mSure) => {
  305.  
  306. await mSure.react("✅");
  307. await mSure.react("❌");
  308.  
  309. let ReactionFilter = (r, user) => {
  310.  
  311. return user.id === message.author.id && ["✅", "❌"].includes(r.emoji.name);
  312.  
  313. }
  314. let ReactionCollector = mSure.createReactionCollector(ReactionFilter, { time: 15000 });
  315.  
  316. ReactionCollector.on("collect", r => {
  317.  
  318. if (r.emoji.name === "✅") {
  319.  
  320.  
  321. mSure.reactions.removeAll();
  322. ReactionCollector.stop("Done1" + msg.content);
  323.  
  324. } else if (r.emoji.name === "❌") {
  325.  
  326. mSure.reactions.removeAll();
  327.  
  328. ReactionCollector.stop("Done2");
  329.  
  330. }
  331.  
  332. })
  333.  
  334. ReactionCollector.on("end", async (col, reason) => {
  335.  
  336.  
  337. if (reason.startsWith("Done1")) {
  338.  
  339. let msg = reason.replace("Done1", "");
  340.  
  341. //Send
  342.  
  343. let sendEmbed = new Discord.MessageEmbed()
  344. .setTitle("Advanced Broadcast")
  345. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  346. .setColor(message.member.roles.highest.hexColor)
  347. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  348. .setDescription(`:white_check_mark: **| Sending... | All Members: ${message.guild.members.cache.filter(m => !m.user.bot).size}**`)
  349. .setFooter("Advanced Broadcast by Amir.#0001")
  350.  
  351. mSure.edit(sendEmbed);
  352.  
  353. let members = message.guild.members.cache.filter(m => !m.user.bot).array();
  354.  
  355. for (var i = 0; i < members.length; i++) {
  356.  
  357. try {
  358.  
  359. await members[i].send(msg) // Send Message;
  360.  
  361. await timeIIa(timeS);
  362.  
  363.  
  364. } catch {
  365.  
  366. }
  367.  
  368. }
  369.  
  370.  
  371.  
  372. setInterval(() => {
  373.  
  374. let edddd = new Discord.MessageEmbed()
  375. .setTitle("Advanced Broadcast")
  376. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  377. .setColor(message.member.roles.highest.hexColor)
  378. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  379. .setDescription(`:white_check_mark: **| Sending... | All Members: ${message.guild.memberCount}**`)
  380. .setFooter("Advanced Broadcast by Amir.#0001")
  381.  
  382. mSure.edit(edddd);
  383.  
  384. }, 1 * 10000);
  385.  
  386. } else if (reason === "Done2") {
  387.  
  388. //Cancel
  389.  
  390. let cancelEmbed = new Discord.MessageEmbed()
  391. .setTitle("Advanced Broadcast")
  392. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  393. .setColor(message.member.roles.highest.hexColor)
  394. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  395. .setDescription(":x:** | Canceled.**")
  396. .setFooter("Advanced Broadcast by Amir.#0001")
  397.  
  398. mSure.reactions.removeAll();
  399. mSure.edit(cancelEmbed);
  400.  
  401.  
  402. } else if (!reason.startsWith("Done1") && !reason.startsWith("Done2")) {
  403.  
  404. let timeoutEmbed = new Discord.MessageEmbed()
  405. .setTitle("Advanced Broadcast")
  406. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  407. .setColor(message.member.roles.highest.hexColor)
  408. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  409. .setDescription(":x:** | Reaction timeout.**")
  410. .setFooter("Advanced Broadcast by Amir.#0001")
  411.  
  412. mSure.reactions.removeAll();
  413. mSure.edit(timeoutEmbed);
  414.  
  415. }
  416.  
  417.  
  418.  
  419. })
  420.  
  421.  
  422. })
  423.  
  424. });
  425.  
  426. MsgCollector.on("end", reason => {
  427.  
  428.  
  429. });
  430. })
  431.  
  432. } else if (reason === "Done3") {
  433.  
  434. //Role
  435.  
  436. message.channel.send("🟠 **| Mention the role: **").then((rmm) => {
  437.  
  438. let MsgFilter = m => m.author.id === message.author.id;
  439. let MsgCollector = rmm.channel.createMessageCollector(MsgFilter, { time: 60000, max: 1 });
  440.  
  441. MsgCollector.on("collect", msg => {
  442.  
  443. let role = msg.mentions.roles.first();
  444.  
  445. if (role) {
  446.  
  447. rmm.delete({ timeout: 150 });
  448. msg.delete({ timeout: 150 })
  449. let msgEmbed = new Discord.MessageEmbed()
  450.  
  451. .setTitle("Advanced Broadcast")
  452. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  453. .setColor(message.member.roles.highest.hexColor)
  454. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  455. .setDescription(":white_check_mark:** | Write your message.**")
  456. .setFooter("Advanced Broadcast by Amir.#0001")
  457.  
  458. m.edit(msgEmbed).then(() => {
  459.  
  460. let MsgFilter = m => m.author.id === message.author.id;
  461. let MsgCollector = m.channel.createMessageCollector(MsgFilter, { time: 60000, max: 1 });
  462.  
  463. MsgCollector.on("collect", msg => {
  464.  
  465. let SureEmbed = new Discord.MessageEmbed()
  466.  
  467. .setTitle("Are you sure you want to send this message ?")
  468. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  469. .setColor(message.member.roles.highest.hexColor)
  470. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  471. .setDescription(msg.content)
  472. .setFooter("Advanced Broadcast by Amir.#0001")
  473.  
  474. msg.delete({ timeout: 500 });
  475. m.delete({ timeout: 500 });
  476.  
  477. msg.channel.send(SureEmbed).then(async (mSure) => {
  478.  
  479. await mSure.react("✅");
  480. await mSure.react("❌");
  481.  
  482. let ReactionFilter = (r, user) => {
  483.  
  484. return user.id === message.author.id && ["✅", "❌"].includes(r.emoji.name);
  485.  
  486. }
  487. let ReactionCollector = mSure.createReactionCollector(ReactionFilter, { time: 15000 });
  488.  
  489. ReactionCollector.on("collect", r => {
  490.  
  491. if (r.emoji.name === "✅") {
  492.  
  493.  
  494. mSure.reactions.removeAll();
  495. ReactionCollector.stop("Done1" + msg.content);
  496.  
  497. } else if (r.emoji.name === "❌") {
  498.  
  499. mSure.reactions.removeAll();
  500.  
  501. ReactionCollector.stop("Done2");
  502.  
  503. }
  504.  
  505. })
  506.  
  507. ReactionCollector.on("end", async (col, reason) => {
  508.  
  509. if (reason.startsWith("Done1")) {
  510.  
  511. let msg = reason.replace("Done1", "");
  512.  
  513. //Send
  514.  
  515.  
  516. let sendEmbed = new Discord.MessageEmbed()
  517. .setTitle("Advanced Broadcast")
  518. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  519. .setColor(message.member.roles.highest.hexColor)
  520. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  521. .setDescription(`:white_check_mark: **| Sending... | All Members: ${message.guild.members.cache.filter(m => m.roles.cache.find(r => r.id === role.id) && !m.user.bot).size}**`)
  522. .setFooter("Advanced Broadcast by Amir.#0001")
  523.  
  524. mSure.edit(sendEmbed);
  525.  
  526. let members = message.guild.members.cache.filter(m => m.roles.cache.find(r => r.id === role.id) && !m.user.bot).array();
  527.  
  528.  
  529. for (var i = 0; i < members.length; i++) {
  530.  
  531. try {
  532.  
  533. await members[i].send(msg) // Send Message;
  534.  
  535. await timeIIa(timeS);
  536.  
  537.  
  538. } catch {
  539.  
  540. }
  541.  
  542. }
  543.  
  544. setInterval(() => {
  545.  
  546. let edddd = new Discord.MessageEmbed()
  547. .setTitle("Advanced Broadcast")
  548. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  549. .setColor(message.member.roles.highest.hexColor)
  550. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  551. .setDescription(`:white_check_mark: **| Sending... | All Members: ${message.guild.members.cache.filter(m => m.roles.cache.find(r => r.id === role.id) && !m.user.bot).size}**`)
  552. .setFooter("Advanced Broadcast by Amir.#0001")
  553.  
  554. mSure.edit(edddd);
  555.  
  556. }, 1 * 10000);
  557.  
  558. } else if (reason === "Done2") {
  559.  
  560. //Cancel
  561.  
  562. let cancelEmbed = new Discord.MessageEmbed()
  563. .setTitle("Advanced Broadcast")
  564. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  565. .setColor(message.member.roles.highest.hexColor)
  566. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  567. .setDescription(":x:** | Canceled.**")
  568. .setFooter("Advanced Broadcast by Amir.#0001")
  569.  
  570. mSure.reactions.removeAll();
  571. mSure.edit(cancelEmbed);
  572.  
  573. } else if (!reason.startsWith("Done1") && !reason.startsWith("Done2")) {
  574.  
  575. let timeoutEmbed = new Discord.MessageEmbed()
  576. .setTitle("Advanced Broadcast")
  577. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  578. .setColor(message.member.roles.highest.hexColor)
  579. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  580. .setDescription(":x:** | Reaction timeout.**")
  581. .setFooter("Advanced Broadcast by Amir.#0001")
  582.  
  583. mSure.reactions.removeAll();
  584. mSure.edit(timeoutEmbed);
  585.  
  586. }
  587.  
  588.  
  589.  
  590. })
  591.  
  592.  
  593. })
  594.  
  595. });
  596.  
  597. MsgCollector.on("end", reason => {
  598.  
  599.  
  600. });
  601. })
  602.  
  603. } else {
  604.  
  605. MsgCollector.stop();
  606. rmm.edit(":x: ** | Bad answer.**")
  607. }
  608.  
  609. });
  610.  
  611. })
  612.  
  613.  
  614. } else if (reason != "Done1" && reason != "Done2" && reason != "Done3") {
  615.  
  616. let timeoutEmbed = new Discord.MessageEmbed()
  617.  
  618. .setTitle("Advanced Broadcast")
  619. .setAuthor(client.user.username, client.user.displayAvatarURL({ dynamic: true }))
  620. .setColor(message.member.roles.highest.hexColor)
  621. .setThumbnail(message.guild.iconURL({ dynamic: true }))
  622. .setDescription(":x:** | Reaction timeout**")
  623. .setFooter("Advanced Broadcast by Amir.#0001")
  624.  
  625. m.reactions.removeAll();
  626. m.edit(timeoutEmbed);
  627.  
  628. }
  629.  
  630. })
  631.  
  632. })
  633.  
  634. }
  635.  
  636. }
  637.  
  638. });
  639.  
  640. client.login(Token);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement