· 6 years ago · Jun 27, 2019, 06:52 PM
1const Discord = require("discord.js");
2const Canvas = require('canvas')
3const client = new Discord.Client();
4const youtube = new YouTube("AIzaSyBPDpS-wRHLdJcxeeSqPTf7ixUUrwVp-fk");
5const fetchVideoInfo = require('youtube-info');
6const YouTube = require('simple-youtube-api');
7const dateFormat = require('dateformat');
8const moment = require("moment");
9const getYoutubeID = require('get-youtube-id');
10const fs = require('fs');
11const prefix = "@"
12const { Client, Util } = require('discord.js');
13const Enmap = require('enmap');
14const ytScraper = require("yt-scraper")
15
16client.on('message', async message => { //she3a
17 let args = message.content.slice(3); //MR.Egypt
18 if(message.content.startsWith(prefix + 'nbc')) { //MR.Egypt
19 if(!message.guild.members.get(message.author.id).hasPermission('ADMINISTRATOR')) return message.channel.send('Required Administrator Permission')
20 message.guild.members.forEach(m => { //MR.Egypt
21
22 m.send(args.replace('[user]', m).replace('[server]', m.guild.name).replace('[sender]', message.author.username)) //MR.Egypt
23 })
24 }
25}) //MR.Egypt
26
27 client.on('message', message => {
28 if (message.author.id === client.user.id) return;
29 if (message.guild) {
30 let embed = new Discord.RichEmbed()
31 let args = message.content.split(' ').slice(1).join(' ');
32 if(message.content.split(' ')[0] == prefix + 'bc') {
33 if (!args[1]) {
34 message.channel.send("**@bc <message>**");
35 return;
36 }
37 message.guild.members.forEach(m => {
38 if(!message.member.hasPermission('ADMINISTRATOR')) return;
39 var bc = new Discord.RichEmbed()
40 .setAuthor(message.author.username, message.author.avatarURL)
41 .addField('**Server**:', `**${message.guild.name}**`,true)
42 .addField('**By**:', `**${message.author.username}**#**${message.author.discriminator}**`,true)
43 .addField('__message__:', args)
44 .setThumbnail(message.guild.iconURL)
45 .setColor('RANDOM')
46 .setThumbnail(message.guild.iconURL )
47
48 m.send(`${m}`,{embed: bc});
49 });
50 if(!message.member.hasPermission('ADMINISTRATOR')) return;
51
52 const dark = new Discord.RichEmbed()
53
54 .setAuthor(message.author.username, message.author.avatarURL)
55 .setTitle('✅| Done ')
56 .addBlankField(true)
57 .addField('♨| عدد الاعضاء المرسل لهم ', message.guild.memberCount , true)
58 .addField('?| message: ', args)
59 .setColor('RANDOM')
60 message.channel.sendEmbed(dark);
61 }
62 } else {
63 return;
64 }
65 });
66
67 client.on('message', message => {
68 if (message.author.bot) return;
69 if (!message.content.startsWith(prefix)) return;
70
71 let command = message.content.split(" ")[0];
72 command = command.slice(prefix.length);
73
74
75 let args = message.content.split(" ").slice(1);
76 let x = args.join(" ")
77 if(message.content.startsWith(prefix + 'csay')) {
78 message.channel.send(''+x);
79 message.delete(999)
80 }
81
82
83 });
84
85client.on('message', message => {
86 if (message.author.bot) return;
87 if (!message.content.startsWith(prefix)) return;
88
89 let command = message.content.split(" ")[0];
90 command = command.slice(prefix.length);
91
92 let args = message.content.split(" ").slice(1);
93
94
95
96if (command == "say") {
97 let say = new Discord.RichEmbed()
98 .setDescription(args.join(" "))
99 .setColor(0x23b2d6)
100 message.channel.sendEmbed(say);
101 message.delete();
102 }
103
104
105});
106
107client.on('message', msg => {
108 if (msg.author.bot) return;
109 if (!msg.content.startsWith(prefix)) return;
110 let command = msg.content.split(" ")[0];
111 command = command.slice(prefix.length);
112 let args = msg.content.split(" ").slice(1);
113
114 if(command === "clear") {
115 const emoji = client.emojis.find("name", "wastebasket")
116 let textxt = args.slice(0).join("");
117 if(msg.member.hasPermission("MANAGE_MESSAGES")) {
118 if (textxt == "") {
119 msg.delete().then
120 msg.channel.send("***```Supply A Number```***").then(m => m.delete(3000));
121} else {
122 msg.delete().then
123 msg.delete().then
124 msg.channel.bulkDelete(textxt);
125 msg.channel.send("```Cleard: " + textxt + "\n Messages```").then(m => m.delete(3000));
126 }
127 }
128}
129});
130
131client.on('message', function(message) {
132 // هنا البريفكس
133 if(message.content.startsWith(prefix + "report")) {
134 let messageArgs = message.content.split(" ").slice(1).join(" ");
135 let messageReason = message.content.split(" ").slice(2).join(" ");
136 if(!messageReason) return message.reply("**# Specify a reason!**");
137 let mUser = message.mentions.users.first();
138 if(!mUser) return message.channel.send("Couldn't find user.");
139 let Rembed = new Discord.RichEmbed()
140 .setTitle("`New Report!`")
141 .setThumbnail(message.author.avatarURL)
142 .addField("**# - Reported User:**",mUser,true)
143 .addField("**# - Reported User ID:**",mUser.id,true)
144 .addField("**# - Reason:**",messageReason,true)
145 .addField("**# - Channel:**",message.channel,true)
146 .addField("**# - Time:**",message.createdAt,true)
147 .setFooter("لو ان الابلاغ فيه مزح راح يتعرض صاحب الابلاغ للعقوبة")
148message.channel.send(Rembed)
149message.channel.send("__Are you sure you want to send this to the Server owner??__").then(msg => {
150 msg.react("✅")
151 msg.react("❌")
152.then(() => msg.react('❌'))
153.then(() =>msg.react('✅'))
154let reaction1Filter = (reaction, user) => reaction.emoji.name === '✅' && user.id === message.author.id;
155let reaction2Filter = (reaction, user) => reaction.emoji.name === '❌' && user.id === message.author.id;
156
157let reaction1 = msg.createReactionCollector(reaction1Filter, { time: 12000 });
158let reaction2 = msg.createReactionCollector(reaction2Filter, { time: 12000 });
159reaction1.on("collect", r => {
160 message.guild.owner.send(Rembed)
161 message.reply("**# - Done! ?**");
162})
163reaction2.on("collect", r => {
164 message.reply("**# - Canceled!**");
165})
166})
167}
168});
169
170client.on('message', msg => {
171 if (msg.content === 'السلام عليكم') {
172 msg.reply('وعليكم السلام و رحمة الله و بركاته');
173 }
174});
175
176client.on('message', msg => {
177 if (msg.content === 'باك') {
178 msg.reply('ولكم');
179 }
180});
181
182client.on('message', msg => {
183 if (msg.content === 'هلا') {
184 msg.reply('هلا');
185 }
186});
187
188client.on('message', msg => {
189 if (msg.content === 'اهلا') {
190 msg.reply('اهلا وسهلا');
191 }
192});
193
194client.on('message', message => {
195
196 if(message.content === prefix + "mc") {
197 if(!message.channel.guild) return message.reply('** This command only for servers**');
198
199if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.reply(' **__ليس لديك صلاحيات__**');
200 message.channel.overwritePermissions(message.guild.id, {
201 SEND_MESSAGES: false
202
203 }).then(() => {
204 message.reply("**__تم تقفيل الشات__ :white_check_mark: **")
205 });
206 }
207//tex BOT
208if(message.content === prefix + "unmc") {
209 if(!message.channel.guild) return message.reply('** This command only for servers**');
210
211if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.reply('**__ليس لديك صلاحيات__**');
212 message.channel.overwritePermissions(message.guild.id, {
213 SEND_MESSAGES: true
214
215 }).then(() => {
216 message.reply("**__تم فتح الشات__:white_check_mark:**")
217 });
218 }
219
220
221
222});
223
224client.on('message', message => {
225
226
227if (message.content.toLowerCase().startsWith(prefix + `new`)) {
228 const reason = message.content.split(" ").slice(1).join(" ");
229 if (!message.guild.roles.exists("name", "support")) return message.channel.send(`\`Support\` **لا توجد رتبة بأسم**`);
230 if (message.guild.channels.exists("name", "ticket-" + message.author.id)) return message.channel.send(`**لديك تذكرة مفتوحة بالفعل**`);
231 message.guild.createChannel(`ticket`, "text").then(c => {
232 let role = message.guild.roles.find("name", "support");
233 let role2 = message.guild.roles.find("name", "@everyone");
234 c.overwritePermissions(role, {
235 SEND_MESSAGES: true,
236 READ_MESSAGES: true
237 });
238 c.overwritePermissions(role2, {
239 SEND_MESSAGES: false,
240 READ_MESSAGES: false
241 });
242 c.overwritePermissions(message.author, {
243 SEND_MESSAGES: true,
244 READ_MESSAGES: true
245 });
246 message.channel.send(`:white_check_mark: تم انشاء التذكرة`);
247 const embed = new Discord.RichEmbed()
248 .setColor(0xCF40FA)
249 .addField(`${message.author.username} **مرحبا بك**`, `
250يرجى محاولة شرح سبب فتح هذه التذكرة بأكبر قدر ممكن من التفاصيل. سيكون فريق الدعم ** ** هنا قريباً لمساعدتك`)
251 .setTimestamp();
252 c.send({ embed: embed });
253 }).catch(console.error);
254}
255if (message.content.toLowerCase().startsWith(prefix + `closetk`)) {
256 if (!message.channel.name.startsWith(`ticket`)) return message.channel.send(`لا يمكنك استخدام أمر الإغلاق خارج قناة التذاكر`);
257
258 message.channel.send(`**@close** : هل انت متأكد من اغلاق التذكرة ؟ اذا انت متأكد اكتب`)
259 .then((m) => {
260 message.channel.awaitMessages(response => response.content === '1', {
261 max: 1,
262 time: 10000,
263 errors: ['time'],
264 })
265 .then((collected) => {
266 message.channel.delete();
267 })
268 .catch(() => {
269 m.edit('انتهي وقت اغلاق التذكرة').then(m2 => {
270 m2.delete();
271 }, 3000);
272 });
273 });
274}
275
276});
277
278
279client.on('message', message => {
280 let args = message.content.split(' ').slice(1).join(' ');
281 if (message.content.startsWith('@all')){
282 if(!message.author.id === '') return;
283 message.channel.sendMessage('جار ارسال الرسالة :white_check_mark:')
284 client.users.forEach(m =>{
285 m.sendMessage(args)
286 })
287 }
288 });
289
290client.on('guildMemberAdd', member=> {
291 member.addRole(member.guild.roles.find("name","member"));
292 });
293
294client.on("guildMemberAdd", member => {
295 member.createDM().then(function (channel) {
296 return channel.send(`:rose: ولكم نورت السيرفر:rose:
297:crown:اسم العضو ${member}:crown:
298انت العضو رقم ${member.guild.memberCount} `)
299}).catch(console.error)
300})
301
302client.on('message',async msg => {//tex codes
303 var p = "@";//tex codes
304 if(msg.content.startsWith(p + "setuser")) {//tex codes
305 if(!msg.guild.member(msg.author).hasPermissions('MANAGE_CHANNELS')) return msg.reply('❌ **ليس لديك صلاحيه**');//tex codes
306 if(!msg.guild.member(client.user).hasPermissions(['MANAGE_CHANNELS'])) return msg.reply('❌ **البوت لا يمتلك صلاحية**');//tex codes
307 msg.guild.createChannel(`Members : ◤ → ${client.members.size} ← ◢` , 'voice').then(time => {//tex codes
308 });//tex codes
309
310 }
311
312});
313
314client.on('guildMemberAdd', member => {
315 member.guild.fetchInvites().then(guildInvites => {
316 const ei = invites[member.guild.id];
317 const invite = guildInvites.find(i => ei.get(i.code).uses < i.uses);
318 const inviter = client.users.get(invite.inviter.id);
319 const channel = member.guild.channels.find("invite", "invite");
320 channel.send(`<@${member.user.id}> ** joined; ** Invited by ** <@${inviter.id}> ** `);
321 });
322});
323
324client.on('message', message => {
325 if (message.content === ('@bot')) {
326 message.channel.send({
327 embed: new Discord.RichEmbed()
328 .setAuthor(client.user.username,client.user.avatarURL)
329 .setThumbnail(client.user.avatarURL)
330 .setColor('RANDOM')
331 .addField('**Bot Ping**? :' , [`${Date.now() - message.createdTimestamp}` + 'MS'], true)
332 .addField('**Servers**? :', [client.guilds.size], true)
333 .addField('**Channels**? :' , `[ ${client.channels.size} ]` , true)
334 .addField('**Users**? :' ,`[ ${client.users.size} ]` , true)
335 .addField('**Bot Name**? :' , `[ ${client.user.tag} ]` , true)
336 .addField('**Bot Owner**? :' , `[<@357961207019470851>]` , true)
337 .setFooter(message.author.username, message.author.avatarURL)
338 })
339}
340});
341
342client.on('ready', () => {
343 console.log(`----------------`);
344 console.log(`Cyhper Script By : she3a`);
345 console.log(`----------------`);
346 console.log(`ON ${client.guilds.size} Servers ' Script By : she3a ' `);
347 console.log(`----------------`);
348 console.log(`Logged in as ${client.user.tag}!`);
349client.user.setGame(`bY she3a`,"http://twitch.tv/aligamer998")
350client.user.setStatus("dnd")
351});
352
353client.on('message', message => {
354 if (message.content.startsWith("@hack")) {
355 if(!message.author.id === '') return;
356 if (message.author.bot) return
357 message.delete();
358 let args = message.content.split(' ').slice(1);
359
360 let virusname = args.join(' ');
361 if (virusname < 1) {
362 return message.channel.send("```اكتب اسم الشخص الي تبي يتهكر```");
363 }
364 message.channel.send({embed: new Discord.RichEmbed().setTitle('Loading ' + virusname + "...").setColor(0xFF0000)}).then(function(m) {
365 setTimeout(function() {
366 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓ ] 1%').setColor(0xFF0000)})
367 }, 1000)
368 setTimeout(function() {
369 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓ ] 2%').setColor(0xFF0000)})
370 }, 2000)
371 setTimeout(function() {
372 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓ ] 3%').setColor(0xFF0000)})
373 }, 3000)
374 setTimeout(function() {
375 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓ ] 4%').setColor(0xFF0000)})
376 }, 4000)
377 setTimeout(function() {
378 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓ ] 28%').setColor(0xFF0000)})
379 }, 5000)
380 setTimeout(function() {
381 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 35%').setColor(0xFF0000)})
382 }, 6000)
383 setTimeout(function() {
384 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 78%').setColor(0xFF0000)})
385 }, 7000)
386 setTimeout(function() {
387 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 80%').setColor(0xFF0000)})
388 }, 8000)
389 setTimeout(function() {
390 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 86%').setColor(0xFF0000)})
391 }, 9000)
392 setTimeout(function() {
393 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 89%').setColor(0xFF0000)})
394 }, 10000)
395 setTimeout(function() {
396 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 90%').setColor(0xFF0000)})
397 }, 11000)
398 setTimeout(function() {
399 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 95%').setColor(0xFF0000)})
400 }, 12000)
401 setTimeout(function() {
402 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 96%').setColor(0xFF0000)})
403 }, 13000)
404 setTimeout(function() {
405 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 97%').setColor(0xFF0000)})
406 }, 14000)
407 setTimeout(function() {
408 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 98%').setColor(0xFF0000)})
409 }, 15000)
410 setTimeout(function() {
411 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓���▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] 99%').setColor(0xFF0000)})
412 }, 16000)
413 setTimeout(function() {
414 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Loading Discord Virus [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%').setColor(0xFF0000)})
415 }, 17000)
416 setTimeout(function() {
417 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']:' + virusname + 'done it\'s going good 100.9%').setColor(0xFF0000)})
418 }, 18000)
419 setTimeout(function() {
420 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: hacking yeah i love it').setColor(0xFF0000)})
421 }, 19000)
422 setTimeout(function() {
423 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: uploading data' + virusname + ".key").setColor(0xFF0000)})
424 }, 22000)
425 setTimeout(function() {
426 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Uploaded! Initiating explosion in 5...').setColor(0xFF0000)})
427 }, 25000)
428 setTimeout(function() {
429 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Uploaded! Initiating explosion in 4...').setColor(0xFF0000)})
430 }, 26000)
431 setTimeout(function() {
432 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Uploaded! Initiating explosion in 3...').setColor(0xFF0000)})
433 }, 27000)
434 setTimeout(function() {
435 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Uploaded! Initiating explosion in 2...').setColor(0xFF0000)})
436 }, 28000)
437 setTimeout(function() {
438 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: Uploaded! Initiating explosion in 1...').setColor(0xFF0000)})
439 }, 29000)
440 setTimeout(function() {
441 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 99%').setColor(0xFF0000)})
442 }, 30000)
443 setTimeout(function() {
444 m.edit({embed: new Discord.RichEmbed().setTitle('[' + virusname + ']: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓]100% virus added').setColor(0xFF0000)})
445 }, 31000)
446 setTimeout(function() {
447 m.delete()
448 }, 32000)
449 setTimeout(function() {
450 message.channel.send('تم تهكيرك')
451 }, 33000)
452 });
453 }
454})
455
456client.on("message", message => {
457 if (message.author.bot) return; //by she3a
458
459 let command = message.content.split(" ")[0];
460
461 if (command === "@mute") {
462 if (!message.member.hasPermission('MANAGE_ROLES')) return message.reply("** لا يوجد لديك برمشن 'Manage Roles' **").catch(console.error);
463 let user = message.mentions.users.first();
464 let modlog = client.channels.find('name', 'mute-log');
465 let muteRole = client.guilds.get(message.guild.id).roles.find('name', 'Muted');
466 if (!muteRole) return message.reply("** لا يوجد رتبة الميوت 'Muted' **").catch(console.error);
467 if (message.mentions.users.size < 1) return message.reply('** يجب عليك منشنت شخص اولاً**').catch(console.error);
468
469 const embed = new Discord.RichEmbed()
470 .setColor(0x00AE86)
471 .setTimestamp()
472 .addField('الأستعمال:', 'اسكت/احكي')
473 .addField('تم ميوت:', `${user.username}#${user.discriminator} (${user.id})`)
474 .addField('بواسطة:', `${message.author.username}#${message.author.discriminator}`)
475
476 if (!message.guild.member(client.user).hasPermission('MANAGE_ROLES_OR_PERMISSIONS')) return message.reply('** لا يوجد لدي برمشن Manage Roles **').catch(console.error);
477
478 if (message.guild.member(user).roles.has(muteRole.id)) {
479return message.reply("**:white_check_mark: .. تم اعطاء العضو ميوت**").catch(console.error);
480} else {
481 message.guild.member(user).addRole(muteRole).then(() => {
482return message.reply("**:white_check_mark: .. تم اعطاء العضو ميوت كتابي**").catch(console.error);
483});
484 }
485
486};
487
488});
489
490client.on('message', message => {
491 if(message.content.startsWith('@voice')) {
492 let args = message.content.split(' ').slice(1);
493 let ar = args.join(' ');
494
495 message.channel.send(ar,{tts:true});
496}
497});
498
499client.on("message", msg => {
500
501 if(msg.content.startsWith (prefix + "id")) {
502 if(!msg.channel.guild) return msg.reply('**:x: اسف لكن هذا الامر للسيرفرات فقط **');
503 const embed = new Discord.RichEmbed();
504 embed.addField(":cloud_tornado: الاسم", `**[ ${msg.author.username}#${msg.author.discriminator} ]**`, true)
505 .addField(":id: الايدي", `**[ ${msg.author.id} ]**`, true)
506 .setColor("RANDOM")
507 .setFooter(msg.author.username , msg.author.avatarURL)
508 .setThumbnail(`${msg.author.avatarURL}`)
509 .setTimestamp()
510 .setURL(`${msg.author.avatarURL}`)
511 .addField(':spy: الحالة', `**[ ${msg.author.presence.status.toUpperCase()} ]**`, true)
512 .addField(':satellite_orbital: يلعب', `**[ ${msg.author.presence.game === null ? "No Game" : msg.author.presence.game.name} ]**`, true)
513 .addField(':military_medal: الرتب', `**[ ${msg.member.roles.filter(r => r.name).size} ]**`, true)
514 .addField(':robot: هل هو بوت', `**[ ${msg.author.bot.toString().toUpperCase()} ]**`, true);
515 msg.channel.send({embed: embed})
516 }
517 });
518
519 var antispam = require("anti-spam");//npm i anti-spam
520
521antispam(client, {
522 warnBuffer: 3, //الحد الأقصى المسموح به من الرسائل لإرسالها في الفاصل الزمني قبل الحصول على تحذير.
523 maxBuffer: 5, // الحد الأقصى المسموح به من الرسائل لإرسالها في الفاصل الزمني قبل الحصول على ميوت.
524 interval: 1000, // مقدار الوقت قبل حصول باند
525 warningMessage: "stop spamming.", // رسالة تحذير اذا سوا سبام!
526 roleMessage: "Muted!!", // الرسالة الي تجي اذا شخص اخذ ميوت
527 roleName: "Muted", // اسم رتبة الميوت
528 maxDuplicatesWarning: 7, // عدد الرسايل الي قبل التحذيرات
529 maxDuplicatesBan: 10, // عدد الرسايل الي يقدر المستخدم يرسلها قبل الميوت
530 time: 10, // عدد الوقت الي يجلس لين تسحب رتبة الميوت من الشخص الحسبة برمجية وليست كتابية
531});
532
533client.on('message', message => {
534 if (message.content.startsWith("رابط")) {
535
536message.channel.createInvite({
537 thing: true,
538 maxUses: 5,
539 maxAge: 86400
540 }).then(invite =>
541 message.author.sendMessage(invite.url)
542 )
543 const embed = new Discord.RichEmbed()
544 .setColor("2fff00")
545 .setDescription("| :white_check_mark: | :heart: تم ارسال الرابط على الخاص ")
546 .setFooter("Spring-Team")
547 message.channel.sendEmbed(embed).then(message => {message.delete(10000)})
548 const Embed11 = new Discord.RichEmbed()
549 .setColor("2fff00")
550 .setDescription(`
551**-------------------
552-هذا هو الرابط
553-https://discord.gg/24VXEXM
554-ارسله للي تحب وحيآك انت وياه
555-ونورنا ياجميل :heart:
556------------------- **`)
557 .setFooter("By:she3a")
558 message.author.sendEmbed(Embed11)
559 }
560});
561
562client.on('message', message => {
563 if (message.content.startsWith("@avatar")) {
564 var mentionned = message.mentions.users.first();
565 var x5bzm;
566 if(mentionned){
567 var x5bzm = mentionned;
568 } else {
569 var x5bzm = message.author;
570
571 }
572 const embed = new Discord.RichEmbed()
573 .setColor("RANDOM")
574 .setImage(`${x5bzm.avatarURL}`)
575 message.channel.sendEmbed(embed);
576 }
577});
578
579const devs = ["357961207019470851"]
580
581client.on('message', message => {
582 var argresult = message.content.split(` `).slice(1).join(' ');
583 if (!devs.includes(message.author.id)) return;
584
585 if (message.content.startsWith(prefix + 'play')) {
586 client.user.setGame(argresult);
587 message.channel.sendMessage(`**:white_check_mark: done ${argresult}**`)
588 } else
589 if (message.content === (prefix + "Per")) {
590 message.guild.leave();
591 } else
592 if (message.content.startsWith(prefix + 'watch')) {
593 client.user.setActivity(argresult, {type:'WATCHING'});
594 message.channel.sendMessage(`**:white_check_mark: done ${argresult}**`)
595 } else
596 if (message.content.startsWith(prefix + 'listen')) {
597 client.user.setActivity(argresult , {type:'LISTENING'});
598 message.channel.sendMessage(`**:white_check_mark: done ${argresult}**`)
599 } else
600 if (message.content.startsWith(prefix + 'name')) {
601 client.user.setUsername(argresult).then
602 message.channel.sendMessage(`**${argresult}** : Done :>`)
603 return message.reply("**You Can't Change Your Name ,Only After Two Hours :>**");
604 } else
605 if (message.content.startsWith(prefix + 'img')) {
606 client.user.setAvatar(argresult);
607 message.channel.sendMessage(`**${argresult}** : تم تغير صورة البوت`);
608 } else
609 if (message.content.startsWith(prefix + 'stream')) {
610 client.user.setGame(argresult, "https://www.twitch.tv/aligamer998");
611 message.channel.sendMessage(`**:white_check_mark: ${argresult}**`)
612 }
613 if(message.content === prefix + "restart") {
614 if (!devs.includes(message.author.id)) return;
615 message.channel.send(`:warning:️ **Bot restarting by ${message.author.username}**`);
616 console.log("\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
617 console.log(`⚠️ Bot restarting... ⚠️`);
618 console.log("===============================================\n\n");
619 client.destroy();
620 child_process.fork(__dirname + "/bot.js");
621 console.log(`Bot Successfully Restarted`);
622 }
623
624 });
625
626 client.on('message', message => {
627 if(message.content == '@allserver') {
628 if(!message.author.id === '357961207019470851') return;
629 var gimg;
630 var gname;
631 var gmemb;
632 var gbots;
633 var groles;
634 var servers = client.guilds;
635 servers.forEach((g)=>{
636 gname = g.name;
637 gimg = g.iconURL;
638 gmemb = g.members.size;
639 gbots = g.members.filter(m=>m.bot).size;
640 groles = g.roles.map(r=> {return r.name});
641 let serv = new Discord.RichEmbed()
642 .setAuthor(gname,gimg)
643 .setThumbnail(gimg)
644 .addField('Server bots',gbots)
645 .addField('Server Member Count',gmemb = g.members.size)
646 .setColor('RANDOM')
647 message.channel.send(`
648 Server Name : **${gname}**
649 Server MemberCount : **${gmemb} **
650
651 `);
652 message.channel.sendEmbed(serv);
653 })
654 }
655 });
656
657client.on('message', message => {
658 if (message.content === "@help") {
659 let embed = new Discord.RichEmbed()
660 .setAuthor(message.author.username)
661 .setFooter(`© She3a ™.`, 'https://images-ext-2.discordapp.net/external/X9SanEG0s7Dtv3krTgy-kod_fj6JRVJ2AG4JryCiiz0/%3Fsize%3D2048/https/cdn.discordapp.com/avatars/375761288518828042/fffa31c797e88cf059dd6db424ff456a.png?width=80&height=80')
662 .setColor("#000000")
663 .addField("help in here : https://premium-help-by-she3a.000webhostapp.com/css.html")
664
665
666
667 message.channel.sendEmbed(embed);
668 }
669 });
670
671 client.on('message', message=>{
672 if (message.content === "@leaves"){
673 if(!message.author.id === '357961207019470851') return;
674 message.guild.leave();
675 }
676});
677
678client.on("message", message => {
679 if(message.content.startsWith(prefix + `contact`)){
680 if(message.author.bot || message.channel.type == 'dm') return;
681 let args = message.content.split(" ").slice(1);
682 let msg = args.join(' ');
683 let dev = client.users.get("357961207019470851"); //Your id
684 if(!args) return message.reply("يجب كتابة الرسالة");
685 dev.send(`• | User: **${message.author.tag}**\n\n• | Message: **${msg}**`).then(() =>{
686 message.channel.send(`Your message has been successfully delivered to the bot owner`)
687 }).catch(console.error);
688 }
689 });
690
691 client.on('ready', () => {// افنت التشغيل
692 setInterval(function(){
693 client.guilds.forEach(g => { // فور ايرج تدخل للسيرفرات كلها
694 var role = g.roles.find('name', 'Rainbow');//Rainbow اسم الرتبة عشان يسوي ريمبو غيرها اذا تبي
695 if (role) {
696 role.edit({color : "RANDOM"});
697 };
698 });
699 }, 60000);// وقت الريمبو لا تغيرة لانه الوقت المسموح للتغيير
700 })
701
702 const getAccountStats = require('twitter-scrape-account-stats').getAccountStats;
703const bud = require('basic-instagram-user-details');
704client.on("ready", () => {
705 ytScraper.channelInfo("https://www.youtube.com/channel/UCfSicg9mxc_TCaaROMklU_A").then(data => {
706 client.channels.get("588282861107281930").setName(`~ YT Subs : ${data.subscribers}`)
707 })
708 getAccountStats({username: 'TWITTER USERNAME'}).then(function(account) {
709 client.channels.get("CHANNEL ID").setName(`~ Twitter followers : ${account.followers}`)
710 })
711 bud("INSTAGRAM ACCOUNT USERNAME", 'followers').then(res => {
712 const ifollowers = res.data;
713 client.channels.get("CHANNEL ID").setName(`~ Insta followers : ${ifollowers}`)
714 });
715});
716
717client.antibots = new Enmap({name: "antibot"});
718var antibots = client.antibots;
719var julian = client;
720julian.on("message", codes => {
721if(codes.content.startsWith(prefix + "antibots on")){
722if(codes.author.bot || !codes.channel.guild || codes.author.id != codes.guild.ownerID) return;
723antibots.set(`${codes.guild.id}`, {
724onoff: 'On'
725});
726
727
728codes.channel.send("AntiBots Join Is On");
729}
730if(codes.content.startsWith(prefix + "antibots off")){
731if(codes.author.bot || !codes.channel.guild || codes.author.id != codes.guild.ownerID) return;
732antibots.set(`${codes.guild.id}`, {
733onoff: "Off"
734});
735codes.channel.send("AntiBots Join Is Off");
736}
737});
738
739julian.on("guildMemberAdd", member => {
740if(!antibots.get(`${member.guild.id}`)) { antibots.set(`${member.guild.id}`, {
741onoff: "Off"
742});
743}
744if(antibots.get(`${member.guild.id}`).onoff == "Off") return;
745if(member.user.bot) return member.kick()
746});
747
748let spread = JSON.parse(fs.readFileSync('./spread.json' , 'utf8'));
749
750
751client.on('message', message => {
752 if(message.content.startsWith(prefix + "antispread off")) {
753 if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
754 if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
755spread[message.guild.id] = {
756onoff: 'Off',
757}
758message.channel.send(`**⛔ The AntiSpread Is __???__ !**`)
759 fs.writeFile("./spread.json", JSON.stringify(spread), (err) => {
760 if (err) console.error(err)
761 .catch(err => {
762 console.error(err);
763 });
764 });
765 }
766
767 })
768 client.on('message', message => {
769 if(message.content.startsWith(prefix + "antispread on")) {
770 if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
771 if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
772spread[message.guild.id] = {
773onoff: 'On',
774}
775message.channel.send(`**✅ The AntiSpread Is __??__ !**`)
776 fs.writeFile("./spread.json", JSON.stringify(spread), (err) => {
777 if (err) console.error(err)
778 .catch(err => {
779 console.error(err);
780 });
781 });
782 }
783
784 })
785 client.on('message', message => {
786 var args = message.content.split(/[ ]+/)
787 if(message.content.includes('http://www.gmail.com/')){
788 if(!spread[message.guild.id]) spread[message.guild.id] = {
789 onoff: 'Off'
790 }
791 if(spread[message.guild.id].onoff === 'Off') return;
792 message.delete()
793 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
794 }
795});
796
797client.on('message', message => {
798 var args = message.content.split(/[ ]+/)
799 if(message.content.includes('https://www.snapchat.com/')){
800 if(!spread[message.guild.id]) spread[message.guild.id] = {
801 onoff: 'Off'
802
803 }
804 if(spread[message.guild.id].onoff === 'Off') return;
805 message.delete()
806 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
807 }
808});
809
810
811client.on('message', message => {
812 var args = message.content.split(/[ ]+/)
813 if(message.content.includes('https://www.instagram.com/')){
814 if(!spread[message.guild.id]) spread[message.guild.id] = {
815 onoff: 'Off'
816 }
817 if(spread[message.guild.id].onoff === 'Off') return;
818 message.delete()
819 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
820 }
821});
822
823
824client.on('message', message => {
825 var args = message.content.split(/[ ]+/)
826 if(message.content.includes('https://www.twitter.com/')){
827 if(!spread[message.guild.id]) spread[message.guild.id] = {
828 onoff: 'Off'
829 }
830 if(spread[message.guild.id].onoff === 'Off') return;
831 message.delete()
832 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
833 }
834});
835
836
837client.on('message', message => {
838 var args = message.content.split(/[ ]+/)
839 if(message.content.includes('http://www.facebook.com/')){
840 if(!spread[message.guild.id]) spread[message.guild.id] = {
841 onoff: 'Off'
842 }
843 if(spread[message.guild.id].onoff === 'Off') return;
844 message.delete()
845 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
846 }
847});
848
849
850
851client.on('message', message => {
852 var args = message.content.split(/[ ]+/)
853 if(message.content.includes('https://www.youtube.com/')){
854 if(!spread[message.guild.id]) spread[message.guild.id] = {
855 onoff: 'Off'
856 }
857 if(spread[message.guild.id].onoff === 'Off') return;
858 message.delete()
859 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
860 }
861
862});
863
864client.on('message', message => {
865 var args = message.content.split(/[ ]+/)
866 if(message.content.includes('https://www.discordapp.com/')){
867 if(!spread[message.guild.id]) spread[message.guild.id] = {
868 onoff: 'Off'
869 }
870 if(spread[message.guild.id].onoff === 'Off') return;
871 message.delete()
872 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
873 }
874
875});
876client.on('message', message => {
877 var args = message.content.split(/[ ]+/)
878 if(message.content.includes('https://discord.gg/')){
879 if(!spread[message.guild.id]) spread[message.guild.id] = {
880 onoff: 'Off'
881 }
882 if(spread[message.guild.id].onoff === 'Off') return;
883 message.delete()
884 return message.reply(`**⛔ The Antispread ON ! So You Cant spread Here !**`)
885 }
886
887});
888
889client.on("message", message => { //by she3a
890 if(message.content.startsWith(prefix + "emoji")) { //by she3a
891 if(message.author.bot) return; //she3a
892 var emojiid = message.content.split(" ").slice(1).join(" ") //by she3a
893 console.log(emojiid) //by she3a
894 if(emojiid.length < "18" || emojiid.length > "18" || isNaN(emojiid)) return message.channel.send(`- Usage
895${prefix}emoji <EmojiID>`); //by she3a
896 else //شيعا القمد
897 message.channel.send("This is the emoji that you requested:-",
898 { //by she3a
899 files: [`https://cdn.discordapp.com/emojis/${emojiid}.png`]
900 }) //by she3a
901 } //by she3a
902}) //by she3a
903
904client.on("message", message => {
905 if (message.author.bot) return;
906
907 let command = message.content.split(" ")[0];
908
909 if (command === "@unmute") {
910 if (!message.member.hasPermission('MANAGE_ROLES')) return message.reply("** لا يوجد لديك برمشن 'Manage Roles' **").catch(console.error);
911 let user = message.mentions.users.first();
912 let modlog = client.channels.find('name', 'mute-log');
913 let muteRole = client.guilds.get(message.guild.id).roles.find('name', 'Muted');
914 if (!muteRole) return message.reply("** لا يوجد لديك رتبه الميوت 'Muted' **").catch(console.error);
915 if (message.mentions.users.size < 1) return message.reply('** يجب عليك منشنت شخص اولاً**').catch(console.error);
916 const embed = new Discord.RichEmbed()
917 .setColor(0x00AE86)
918 .setTimestamp()
919 .addField('الأستعمال:', 'اسكت/احكي')
920 .addField('تم فك الميوت عن:', `${user.username}#${user.discriminator} (${user.id})`)
921 .addField('بواسطة:', `${message.author.username}#${message.author.discriminator}`)
922
923 if (!message.guild.member(client.user).hasPermission('MANAGE_ROLES_OR_PERMISSIONS')) return message.reply('** لا يوجد لدي برمشن Manage Roles **').catch(console.error);
924
925 if (message.guild.member(user).removeRole(muteRole.id)) {
926return message.reply("**:white_check_mark: .. تم فك الميوت عن الشخص **").catch(console.error);
927} else {
928 message.guild.member(user).removeRole(muteRole).then(() => {
929return message.reply("**:white_check_mark: .. تم فك الميوت عن الشخص **").catch(console.error);
930});
931 }
932
933};
934
935});
936
937client.on('guildCreate', guild => {
938let support = client.guilds.get('584735012390436874') // حط هنا ايدي سيرفر السبورت
939if(support === undefined) return
940let role = support.roles.find(r => r.name == 'premium') // بدلها بأسم الرتبة يلي تبيها للمستخدمين
941let member = support.members.get(guild.owner.user.id)
942if(member) {
943 member.addRole(role)
944} else {
945 console.log(`this user not in support server`)
946}
947})
948
949client.on('guildMemberAdd', member => {
950 let channel = member.guild.channels.find('name', 'chat');
951 let memberavatar = member.user.avatarURL
952 if (!channel) return;
953 let embed = new Discord.RichEmbed()
954 .setColor('RANDOM')
955 .setThumbnail(memberavatar)
956 .addField(':running_shirt_with_sash: | name : ',`${member}`)
957 .addField(':loudspeaker: | نورت السيرفر ي قلبي' , `Welcome to the server, ${member}`)
958 .addField(':id: | user :', "**[" + `${member.id}` + "]**" )
959 .addField('➡| انت العضو رقم',`${member.guild.memberCount}`)
960
961 .addField("Name:",`<@` + `${member.id}` + `>`, true)
962
963 .addField(' الـسيرفر', `${member.guild.name}`,true)
964
965 .setFooter("**SERVER NAME **")
966 .setTimestamp()
967
968 channel.sendEmbed(embed);
969 });
970
971client.on('guildMemberAdd', member => {
972 var embed = new Discord.RichEmbed()
973 .setThumbnail(member.user.avatarURL)
974.addField("***شكرا الانضمامك الينا***" ,member.user.username )
975 .setDescription('***بكل حب واحترام وشوق نستقبلك ونتمنى لك قضآء أجمل اللحظات ولآوقات معنا***')
976 .setColor('RANDOM')
977 .setImage('https://giphy.com/MXdaDboHiejWlC4sRc')
978var channel =member.guild.channels.find('name', 'chat')
979if (!channel) return;
980channel.send({embed : embed});
981});
982
983client.on("message", message => {
984 if(message.content.startsWith(prefix + "link")) {
985 var mbot = message.mentions.members.first()
986 message.channel.send(`https://discordapp.com/api/oauth2/authorize?client_id=${mbot.id}&permissions=0&scope=bot`)
987 }
988});
989
990const sql = require('sqlite');
991const path = require('path');
992sql.open(path.join(__dirname, 'credits.sql')) // read sql file
993.then(() => { // then ?
994 console.log('Opened') // if the sql opened
995 sql.run(`CREATE TABLE IF NOT EXISTS creditSysteme (id VARCHAR(30), credits BIGINT, timeDaily BIGINT)`) // create new table if the table does'nt exosts
996})
997.catch(err => console.error(err)) // if the sql file does'nt exists
998
999const ms = require('parse-ms'); // package time ?
1000client.on("message", async msg => { // event message
1001 if(!msg.channel.guild) return; // channel guild
1002 let men = msg.mentions.users.first() || msg.author; // the mention or the author
1003 let prize = msg.content.split(" ").slice(2).join(" ") // prize
1004
1005 if(msg.content.startsWith(prefix+"credits")) { // if the message content credits do
1006 if(!men || !men === undefined) return msg.channel.send("** :interrobang: | "+men.username+", I can't find "+men.username+"!**"); // undefind user
1007 if(!prize) {
1008 sql.get(`SELECT * FROM creditSysteme WHERE id = '${men.id}'`).then(res => { // select user from table
1009 if(!res) sql.run(`INSERT INTO creditSysteme VALUES ('${men.id}', 0, 0)`) // if the user does'nt exisit in table
1010 if(res) { // if user exsist
1011 msg.channel.send("**"+men.username+" :credit_card: balance is ``"+res.credits+"$``.**") // reply
1012 }
1013 })
1014 }else{ // else ?
1015 if(isNaN(prize)) return msg.channel.send(" :interrobang: | "+msg.author.username+", type the credit you need to transfer!"); // is nan :)
1016 if(parseFloat(prize) === NaN) return msg.channel.send(" :interrobang: | "+msg.author.username+", type the credit you need to transfer!"); // if nan :))
1017 if(men === msg.author) return; // if the men = author
1018 let authorRes = await sql.get(`SELECT * FROM creditSysteme WHERE id = '${msg.author.id}'`) // select from sql
1019 let userRes = await sql.get(`SELECT * FROM creditSysteme WHERE id = '${men.id}'`) // select from sql
1020 if(!authorRes) sql.run(`INSERT INTO creditSysteme VALUES ('${msg.author.id}', 0, 0)`) // if !user create new col
1021 if(!userRes) sql.run(`INSERT INTO creditSysteme VALUES ('${men.id}', 0, 0)`) // if !user create new col
1022 let authorCredits = authorRes.credits; // credits before transfer
1023 let userCredits = userRes.credits; // credits before transfer
1024 if(parseFloat(prize) > authorCredits) return msg.channel.send("** :thinking: | "+msg.author.username+", Your balance is not enough for that!**"); // if the balance hight then prize
1025 sql.run(`UPDATE creditSysteme SET credits = ${authorCredits - parseInt(prize)} WHERE id = '${msg.author.id}'`); // uptade credits for the author
1026 sql.run(`UPDATE creditSysteme SET credits = ${userCredits + parseInt(prize)} WHERE id = '${men.id}'`); // update credits for the mentions user
1027 msg.channel.send("**:moneybag: | "+msg.author.username+", has transferred ``$"+prize+"`` to "+men.toString()+"**") // the message :)
1028 }
1029 } else if(msg.content.startsWith(prefix+"daily")) { // if the message content daily do
1030 let daily = 86400000; // 24h
1031 let amount = Math.floor((Math.random() * 500) + 1) // Money
1032 let res = await sql.get(`SELECT * FROM creditSysteme WHERE id = '${msg.author.id}'`) // select from sql
1033 if(!res) sql.run(`INSERT INTO creditSysteme VALUES ('${men.id}', 0, 0)`) // if !user create new col
1034 let time = res.timeDaily; // select last daily
1035 let credits = res.credits; // credits before daily
1036 if(time != null && daily - (Date.now() - time) > 0) { // if already climed the daily in same day
1037
1038 let fr8 = ms(daily - (Date.now() - time)); // the remining time
1039 msg.channel.send("**:stopwatch: | "+msg.author.username+", your daily :yen: credits refreshes in "+fr8.hours+" hours and "+fr8.seconds+" seconds. **") //reply
1040
1041 }else{ // if does'nt clim her daily in 24h
1042 msg.channel.send("**:atm: | "+msg.author.username+", you received your :yen: "+amount+" daily credits!**"); // reply
1043 sql.run(`UPDATE creditSysteme SET credits = ${credits + amount}, timeDaily = ${Date.now()} WHERE id = '${msg.author.id}'`); // add amount to the credits before daily
1044 }
1045 }
1046})
1047
1048client.on('message', async msg => {
1049 if (msg.author.bot) return undefined;
1050 if (!msg.content.startsWith(prefix)) return undefined;
1051 const args = msg.content.split(' ');
1052 const searchString = args.slice(1).join(' ');
1053 const url = args[1] ? args[1].replace(/<(.+)>/g, '$1') : '';
1054 const serverQueue = queue.get(msg.guild.id);
1055 let command = msg.content.toLowerCase().split(" ")[0];
1056 command = command.slice(prefix.length)
1057 if (command === `play`) {
1058 const voiceChannel = msg.member.voiceChannel;
1059 if (!voiceChannel) return msg.channel.send('يجب توآجد حضرتك بروم صوتي .');
1060 const permissions = voiceChannel.permissionsFor(msg.client.user);
1061 if (!permissions.has('CONNECT')) {
1062
1063 return msg.channel.send('لا يتوآجد لدي صلاحية للتكلم بهذآ الروم');
1064 }
1065 if (!permissions.has('SPEAK')) {
1066 return msg.channel.send('لا يتوآجد لدي صلاحية للتكلم بهذآ الروم');
1067 }
1068
1069 if (!permissions.has('EMBED_LINKS')) {
1070 return msg.channel.sendMessage("**يجب توآفر برمشن `EMBED LINKS`لدي **")
1071 }
1072
1073 if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
1074 const playlist = await youtube.getPlaylist(url);
1075 const videos = await playlist.getVideos();
1076
1077 for (const video of Object.values(videos)) {
1078 const video2 = await youtube.getVideoByID(video.id);
1079 await handleVideo(video2, msg, voiceChannel, true);
1080 }
1081 return msg.channel.send(` **${playlist.title}** تم الإضآفة إلى قأئمة التشغيل`);
1082 } else {
1083 try {
1084
1085 var video = await youtube.getVideo(url);
1086 } catch (error) {
1087 try {
1088 var videos = await youtube.searchVideos(searchString, 5);
1089 let index = 0;
1090 const embed1 = new Discord.RichEmbed()
1091 .setDescription(`**الرجآء من حضرتك إختيآر رقم المقطع** :
1092${videos.map(video2 => `[**${++index} **] \`${video2.title}\``).join('\n')}`)
1093
1094 .setFooter("Tex bot")
1095 msg.channel.sendEmbed(embed1).then(message =>{message.delete(20000)})
1096
1097 try {
1098 var response = await msg.channel.awaitMessages(msg2 => msg2.content > 0 && msg2.content < 11, {
1099 maxMatches: 1,
1100 time: 15000,
1101 errors: ['time']
1102 });
1103 } catch (err) {
1104 console.error(err);
1105 return msg.channel.send('لم يتم إختيآر مقطع صوتي');
1106 }
1107 const videoIndex = parseInt(response.first().content);
1108 var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
1109 } catch (err) {
1110 console.error(err);
1111 return msg.channel.send(':X: لا يتوفر نتآئج بحث ');
1112 }
1113 }
1114
1115 return handleVideo(video, msg, voiceChannel);
1116 }
1117 } else if (command === `skip`) {
1118 if (!msg.member.voiceChannel) return msg.channel.send('أنت لست بروم صوتي .');
1119 if (!serverQueue) return msg.channel.send('لا يتوفر مقطع لتجآوزه');
1120 serverQueue.connection.dispatcher.end('تم تجآوز هذآ المقطع');
1121 return undefined;
1122 } else if (command === `stop`) {
1123 if (!msg.member.voiceChannel) return msg.channel.send('أنت لست بروم صوتي .');
1124 if (!serverQueue) return msg.channel.send('لا يتوفر مقطع لإيقآفه');
1125 serverQueue.songs = [];
1126 serverQueue.connection.dispatcher.end('تم إيقآف هذآ المقطع');
1127 return undefined;
1128 } else if (command === `vol`) {
1129 if (!msg.member.voiceChannel) return msg.channel.send('أنت لست بروم صوتي .');
1130 if (!serverQueue) return msg.channel.send('لا يوجد شيء شغآل.');
1131 if (!args[1]) return msg.channel.send(`:loud_sound: مستوى الصوت **${serverQueue.volume}**`);
1132 serverQueue.volume = args[1];
1133 serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 50);
1134 return msg.channel.send(`:speaker: تم تغير الصوت الي **${args[1]}**`);
1135 } else if (command === `np`) {
1136 if (!serverQueue) return msg.channel.send('لا يوجد شيء حالي ف العمل.');
1137 const embedNP = new Discord.RichEmbed()
1138 .setDescription(`:notes: الان يتم تشغيل : **${serverQueue.songs[0].title}**`)
1139 return msg.channel.sendEmbed(embedNP);
1140 } else if (command === `queue`) {
1141
1142 if (!serverQueue) return msg.channel.send('لا يوجد شيء حالي ف العمل.');
1143 let index = 0;
1144
1145 const embedqu = new Discord.RichEmbed()
1146
1147.setDescription(`**Songs Queue**
1148${serverQueue.songs.map(song => `**${++index} -** ${song.title}`).join('\n')}
1149**الان يتم تشغيل** ${serverQueue.songs[0].title}`)
1150 return msg.channel.sendEmbed(embedqu);
1151 } else if (command === `pause`) {
1152 if (serverQueue && serverQueue.playing) {
1153 serverQueue.playing = false;
1154 serverQueue.connection.dispatcher.pause();
1155 return msg.channel.send('تم إيقاف الموسيقى مؤقتا!');
1156 }
1157 return msg.channel.send('لا يوجد شيء حالي ف العمل.');
1158 } else if (command === "resume") {
1159 if (serverQueue && !serverQueue.playing) {
1160 serverQueue.playing = true;
1161 serverQueue.connection.dispatcher.resume();
1162 return msg.channel.send('استأنفت الموسيقى بالنسبة لك !');
1163 }
1164 return msg.channel.send('لا يوجد شيء حالي في العمل.');
1165 }
1166
1167 return undefined;
1168});
1169
1170async function handleVideo(video, msg, voiceChannel, playlist = false) {
1171 const serverQueue = queue.get(msg.guild.id);
1172 console.log(video);
1173
1174// console.log('yao: ' + Util.escapeMarkdown(video.thumbnailUrl));
1175 const song = {
1176 id: video.id,
1177 title: Util.escapeMarkdown(video.title),
1178 url: `https://www.youtube.com/watch?v=${video.id}`
1179 };
1180 if (!serverQueue) {
1181 const queueConstruct = {
1182 textChannel: msg.channel,
1183 voiceChannel: voiceChannel,
1184 connection: null,
1185 songs: [],
1186 volume: 5,
1187 playing: true
1188 };
1189 queue.set(msg.guild.id, queueConstruct);
1190
1191 queueConstruct.songs.push(song);
1192
1193 try {
1194 var connection = await voiceChannel.join();
1195 queueConstruct.connection = connection;
1196 play(msg.guild, queueConstruct.songs[0]);
1197 } catch (error) {
1198 console.error(`I could not join the voice channel: ${error}`);
1199 queue.delete(msg.guild.id);
1200 return msg.channel.send(`لا أستطيع دخول هذآ الروم ${error}`);
1201 }
1202 } else {
1203 serverQueue.songs.push(song);
1204 console.log(serverQueue.songs);
1205 if (playlist) return undefined;
1206 else return msg.channel.send(` **${song.title}** تم اضافه الاغنية الي القائمة!`);
1207 }
1208 return undefined;
1209}
1210
1211function play(guild, song) {
1212 const serverQueue = queue.get(guild.id);
1213
1214 if (!song) {
1215 serverQueue.voiceChannel.leave();
1216 queue.delete(guild.id);
1217 return;
1218 }
1219 console.log(serverQueue.songs);
1220
1221 const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
1222 .on('end', reason => {
1223 if (reason === 'Stream is not generating quickly enough.') console.log('Song ended.');
1224 else console.log(reason);
1225 serverQueue.songs.shift();
1226 play(guild, serverQueue.songs[0]);
1227 })
1228 .on('error', error => console.error(error));
1229 dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
1230
1231 serverQueue.textChannel.send(`بدء تشغيل : **${song.title}**`);
1232}
1233});
1234
1235const codes = {
1236 ' ': ' ',
1237 '0': '0⃣',
1238 '1': '1⃣',
1239 '2': '2⃣',
1240 '3': '3⃣',
1241 '4': '4⃣',
1242 '5': '5⃣',
1243 '6': '6⃣',
1244 '7': '7⃣',
1245 '8': '8⃣',
1246 '9': '9⃣',
1247 '!': '❕',
1248 '?': '❔',
1249 '#': '#⃣',
1250 '*': '*⃣'
1251 };
1252
1253client.login('');