Advertisement
ZIADAHMED2006

bc code

Jan 25th, 2020
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.24 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const client = new Discord.Client();
  3. const prefix = '!'
  4. var GuildBcOn = {}
  5. client.on('ready',()=>{
  6. console.log('I\'m ready: '+ client.user.username)
  7. })
  8. client.on('message',msg=>{
  9. if(msg.content.indexOf(prefix) !== 0) return;
  10. const args = msg.content.slice(prefix.length).trim().split(/ +/g);
  11. const command = args.shift().toLowerCase();
  12. const roleOrPrem = ''; // تقدر تضع هون اسم رتبة او برمشن ///////////////////////////////////////////////////
  13. const filter = m => m.author.id === msg.author.id;
  14. const members = msg.guild.members;
  15. if(!msg.guild) return;
  16. if(!msg.member.roles.find('name',roleOrPrem) && !msg.member.hasPermission(roleOrPrem)) return;
  17. if(msg.author.bot) return;
  18. if(command == 'bc') {
  19. msg.delete().then((msg)=>{
  20. if(GuildBcOn[msg.guild.id]) return msg.channel.send('**Broadcast running now in this server**').then(m=> m.delete(4000))
  21. if(!GuildBcOn[msg.guild.id]) GuildBcOn[msg.guild.id] = true;
  22. msg.channel.send('**Please send your broadcast**').then(/**@param {msg} m*/m=>{
  23. msg.channel.awaitMessages(filter, {max: 1,time: 90000,errors: ['time']}).then(c=>{
  24. let cc = c.first();
  25. c.first().delete();
  26.  
  27. const bc = new Discord.RichEmbed()
  28. .setTitle(`:mailbox_with_mail: **You want send a broadcast for \`${members.size - 1}\` members**`)
  29. .setThumbnail(client.user.displayAvatarURL)
  30. .setColor([103,58,183])
  31. .setDescription(`**\n:envelope: ➥ Your message**\n\n${cc.content}`)
  32. .setTimestamp()
  33. .setFooter(msg.author.tag, msg.author.displayAvatarURL);
  34.  
  35. m.edit(bc).then(m=>{
  36. m.react('✅').then(() => m.react('❎'));
  37. let yesEmoji = (reaction, user) => reaction.emoji.name === '✅' && user.id === msg.author.id;
  38. let noEmoji = (reaction, user) => reaction.emoji.name === '❎' && user.id === msg.author.id;
  39. let sendBC = m.createReactionCollector(yesEmoji);
  40. let dontSendBC = m.createReactionCollector(noEmoji);
  41. let faild = [];
  42. let done = 0;
  43. sendBC.on('collect', r => {
  44. m.delete()
  45. msg.channel.send('**Please Wait**').then(m=>{
  46. members.map(member =>member).forEach(async(member,index)=>{
  47. await member.send(cc.content.replace(/\[user\]/g, member)).catch(e=>faild.push(member)).then(m=>!faild.includes(member) && (done+=1));
  48. if(cc.attachments.first()){member.sendFile(cc.attachments.first().url).catch();}
  49. m.edit(`**I'm now in member number: \`${index + 1}\`; Sent: \`${done}\`; Failed: \`${faild.length}\`;**`);
  50. if(index >= members.size - 1) {
  51. delete GuildBcOn[msg.guild.id]
  52. m.edit(`**Done, Sent: \`${done}\`; Failed:\`${faild.length}\`;\n Do you want show who i can't send him**`,).then(m=>{
  53. m.react('✅').then(() => m.react('❎'));
  54. let timeout = setTimeout(() => {
  55. m.delete()
  56. }, 60000);
  57. let yesEmoji = (reaction, user) => reaction.emoji.name === '✅' && user.id === msg.author.id;
  58. let noEmoji = (reaction, user) => reaction.emoji.name === '❎' && user.id === msg.author.id;
  59. let yes = m.createReactionCollector(yesEmoji);
  60. let no = m.createReactionCollector(noEmoji);
  61. yes.on('collect', r => {
  62. m.delete()
  63. msg.channel.send(`${faild.map((u)=> `${u.tag} = ${u.id}`).join('\n')}`,{split:true,code:'ini'});
  64. clearTimeout(timeout);
  65. })
  66. no.on('collect', r => {
  67. m.delete();
  68. clearTimeout(timeout);
  69. })
  70. })
  71. }
  72. })
  73. })
  74. })
  75.  
  76. dontSendBC.on('collect', r => {
  77. m.delete()
  78. msg.channel.send(':white_check_mark: **Done, the boardcast stopped**').then(m => {m.delete(4000);delete GuildBcOn[msg.guild.id]});
  79. cc.delete()
  80. msg.delete();
  81. });
  82. })
  83. }).catch((e)=> m.edit('**Failed :x:**').then(m=>{m.delete(4000);msg.delete();delete GuildBcOn[msg.guild.id]}))
  84. })
  85. })
  86. }
  87. })
  88. client.login('')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement