Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require('discord.js');
- const client = new Discord.Client();
- const prefix = '!'
- var GuildBcOn = {}
- client.on('ready',()=>{
- console.log('I\'m ready: '+ client.user.username)
- })
- client.on('message',msg=>{
- if(msg.content.indexOf(prefix) !== 0) return;
- const args = msg.content.slice(prefix.length).trim().split(/ +/g);
- const command = args.shift().toLowerCase();
- const roleOrPrem = ''; // تقدر تضع هون اسم رتبة او برمشن ///////////////////////////////////////////////////
- const filter = m => m.author.id === msg.author.id;
- const members = msg.guild.members;
- if(!msg.guild) return;
- if(!msg.member.roles.find('name',roleOrPrem) && !msg.member.hasPermission(roleOrPrem)) return;
- if(msg.author.bot) return;
- if(command == 'bc') {
- msg.delete().then((msg)=>{
- if(GuildBcOn[msg.guild.id]) return msg.channel.send('**Broadcast running now in this server**').then(m=> m.delete(4000))
- if(!GuildBcOn[msg.guild.id]) GuildBcOn[msg.guild.id] = true;
- msg.channel.send('**Please send your broadcast**').then(/**@param {msg} m*/m=>{
- msg.channel.awaitMessages(filter, {max: 1,time: 90000,errors: ['time']}).then(c=>{
- let cc = c.first();
- c.first().delete();
- const bc = new Discord.RichEmbed()
- .setTitle(`:mailbox_with_mail: **You want send a broadcast for \`${members.size - 1}\` members**`)
- .setThumbnail(client.user.displayAvatarURL)
- .setColor([103,58,183])
- .setDescription(`**\n:envelope: ➥ Your message**\n\n${cc.content}`)
- .setTimestamp()
- .setFooter(msg.author.tag, msg.author.displayAvatarURL);
- m.edit(bc).then(m=>{
- m.react('✅').then(() => m.react('❎'));
- let yesEmoji = (reaction, user) => reaction.emoji.name === '✅' && user.id === msg.author.id;
- let noEmoji = (reaction, user) => reaction.emoji.name === '❎' && user.id === msg.author.id;
- let sendBC = m.createReactionCollector(yesEmoji);
- let dontSendBC = m.createReactionCollector(noEmoji);
- let faild = [];
- let done = 0;
- sendBC.on('collect', r => {
- m.delete()
- msg.channel.send('**Please Wait**').then(m=>{
- members.map(member =>member).forEach(async(member,index)=>{
- await member.send(cc.content.replace(/\[user\]/g, member)).catch(e=>faild.push(member)).then(m=>!faild.includes(member) && (done+=1));
- if(cc.attachments.first()){member.sendFile(cc.attachments.first().url).catch();}
- m.edit(`**I'm now in member number: \`${index + 1}\`; Sent: \`${done}\`; Failed: \`${faild.length}\`;**`);
- if(index >= members.size - 1) {
- delete GuildBcOn[msg.guild.id]
- m.edit(`**Done, Sent: \`${done}\`; Failed:\`${faild.length}\`;\n Do you want show who i can't send him**`,).then(m=>{
- m.react('✅').then(() => m.react('❎'));
- let timeout = setTimeout(() => {
- m.delete()
- }, 60000);
- let yesEmoji = (reaction, user) => reaction.emoji.name === '✅' && user.id === msg.author.id;
- let noEmoji = (reaction, user) => reaction.emoji.name === '❎' && user.id === msg.author.id;
- let yes = m.createReactionCollector(yesEmoji);
- let no = m.createReactionCollector(noEmoji);
- yes.on('collect', r => {
- m.delete()
- msg.channel.send(`${faild.map((u)=> `${u.tag} = ${u.id}`).join('\n')}`,{split:true,code:'ini'});
- clearTimeout(timeout);
- })
- no.on('collect', r => {
- m.delete();
- clearTimeout(timeout);
- })
- })
- }
- })
- })
- })
- dontSendBC.on('collect', r => {
- m.delete()
- msg.channel.send(':white_check_mark: **Done, the boardcast stopped**').then(m => {m.delete(4000);delete GuildBcOn[msg.guild.id]});
- cc.delete()
- msg.delete();
- });
- })
- }).catch((e)=> m.edit('**Failed :x:**').then(m=>{m.delete(4000);msg.delete();delete GuildBcOn[msg.guild.id]}))
- })
- })
- }
- })
- client.login('')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement