· 6 years ago · Jun 21, 2019, 05:40 PM
1const Discord = require('discord.js');
2
3const Util = require('discord.js');
4
5const getYoutubeID = require('get-youtube-id');
6
7const fetchVideoInfo = require('youtube-info');
8
9const YouTube = require('simple-youtube-api');
10
11const youtube = new YouTube("AIzaSyB2AlcMM3pqfcVZwdoZTvCLFf0D3xe47yk");
12
13const queue = new Map();
14
15const ytdl = require('ytdl-core');
16
17const fs = require('fs');
18
19const gif = require("gif-search");
20
21const client = new Discord.Client({disableEveryone: true});
22
23const prefix = "+";
24const adminprefix = "+";
25/////////////////////////
26////////////////////////
27
28
29client.on('message', message => {
30 let command = message.content.split(" ")[0].slice(prefix.length);
31 let args = message.content.split(" ").slice(1);
32
33 if(!message.content.toLowerCase().startsWith(prefix)) return;
34 if(command == "sug") {
35 if(!args.join(" ")) return message.channel.send(`**يرجي كتابة الاقتراح **`);
36 let channel = message.guild.channels.find(c => c.name == "◊〖☻suggestions☻〗-◊");
37 let embed = new Discord.RichEmbed()
38 .setAuthor(message.author.username, message.author.displayAvatarURL)
39 .setTitle(``)
40 .setFooter(`Select a reaction below to vote on suggestion`)
41 .setDescription(args.join(" "));
42 channel.send(embed).then(msg => {
43 msg.react("✅").then(() => msg.react("❌"));
44 message.delete()
45 message.channel.send(`**تم ارسال الاقتراح بنجاح ✅**`);
46 });
47 }
48});
49
50client.on("message", message => {
51 if (message.content === (prefix + "help")) {
52 const embed = new Discord.RichEmbed()
53 .setColor("#580e6b")
54 .setThumbnail(message.author.avatarURL)
55 .setDescription(`**
56 +bc : برودكاست لجميع اعضاء السيرفر بايمبد
57 +ping لعرض بنقك الحالي
58 +skin (minecraftusername) عرض سكنك في ماين كرافت
59 +giveaway لبدء قيفاواي
60 +clear مسح الشات
61 +temp لانشاء غرفة مؤقتة صوتية او كتابية
62 +new لانشاء تذكرة
63 +close لاغلاق التذكرة
64 +avatar لعرض صورتك
65 +avatar (mentionuser) لعرض صورة الشخص اللي منشنته
66 +role (mentionuser) (rolename)
67 +server لعرض معلومات السيرفر
68 +simage لعرض صورة السيرفر
69 +vmute لاعطاء الشخص ميوت صوتي
70 +unvmute لفك الميوت الصوتي عن الشخص
71 +content (messege) لارسال رسالة لمطور البوت او الابلاغ عن مشكلة
72 +report للابلاغ عن شخص
73 +sug (sugget) للاقتراح
74 ------------------------------
75 +help : عرض هذه الرسالة
76
77 ** `)
78 message.author.sendEmbed(embed)
79
80 }
81 });
82client.on('message', message => {
83 if (message.content === (prefix + "help")) {
84 let embed = new Discord.RichEmbed()
85 .setAuthor(message.author.username)
86 .setColor("#8650a7")
87 .addField("Done" , " تــــم ارســالك في الخــاص")
88 message.channel.sendEmbed(embed);
89 }
90});
91
92client.on('message', message => {
93 const swearWords = ["زق", "قحبة","كلب", "حيوان", "fuck", "fuck you", "الله يلعنك", "zg", "haywan", "كس امك", "كس ابوك", "wtf"]; // الكلمات الممنوعه هنا
94 if( swearWords.some(word => message.content.includes(word)) ) {
95 message.delete();
96 message.author.send('ممنوع السب ولا تبلع ميوت');
97 }
98})
99
100client.on("message", (message) => {
101 if (message.channel.type === "dm") {
102 if (message.author.id === client.user.id) return;
103 let yumz = new Discord.RichEmbed()
104 .setTimestamp()
105 .setTitle("Direct Message To The Bot")
106 .addField(`Sent By:`, `<@${message.author.id}>`)
107 .setColor("RANDOM")
108 .setThumbnail(message.author.displayAvatarURL)
109 .addField(`Message: `, `\n\n\`\`\`${message.content}\`\`\``)
110 .setFooter(`DM Bot Messages | DM Logs`)
111 client.users.get("575731198752718859").send(yumz)
112 }
113 });
114
115
116
117
118client.on('ready', () => {
119 console.log(`Logged in as ${client.user.tag}!`);
120});
121
122 client.on('message', message => {
123 var prefix = "+";
124 if(!message.channel.guild) return;
125 if(message.content.startsWith(prefix + 'bc')) {
126 if(!message.channel.guild) return message.channel.send('**هذا الأمر فقط للسيرفرات**').then(m => m.delete(5000));
127 if(!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send('**للأسف لا تمتلك صلاحية** `ADMINISTRATOR`' );
128 let args = message.content.split(" ").join(" ").slice(2 + prefix.length);
129 let copy = "xHyperMC Network";
130 let request = `Requested By ${message.author.username}`;
131 if (!args) return message.reply('**يجب عليك كتابة كلمة او جملة لإرسال البرودكاست**');message.channel.send(`**هل أنت متأكد من إرسالك البرودكاست؟ \nمحتوى البرودكاست:** \` ${args}\``).then(msg => {
132 msg.react('✅')
133 .then(() => msg.react('❌'))
134 .then(() =>msg.react('✅'))
135
136 let reaction1Filter = (reaction, user) => reaction.emoji.name === '✅' && user.id === message.author.id;
137 let reaction2Filter = (reaction, user) => reaction.emoji.name === '❌' && user.id === message.author.id;
138
139 let reaction1 = msg.createReactionCollector(reaction1Filter, { time: 12000 });
140 let reaction2 = msg.createReactionCollector(reaction2Filter, { time: 12000 });
141 reaction1.on("collect", r => {
142 message.channel.send(`**☑ | Done ... The Broadcast Message Has Been Sent For __${message.guild.members.size}__ Members**`).then(m => m.delete(5000));
143 message.guild.members.forEach(m => {
144
145 var bc = new
146 Discord.RichEmbed()
147 .setColor('RANDOM')
148 .setTitle('Broadcast')
149 .addField('سيرفر', message.guild.name)
150 .addField('المرسل', message.author.username)
151 .addField('الرسالة', args)
152 .setThumbnail(message.author.avatarURL)
153 .setFooter(copy, client.user.avatarURL);
154 m.send({ embed: bc })
155 msg.delete();
156 })
157 })
158 reaction2.on("collect", r => {
159 message.channel.send(`**Broadcast Canceled.**`).then(m => m.delete(5000));
160 msg.delete();
161 })
162 })
163 }
164 });
165
166client.on('message', message => {
167 const aa = message.content.split(" ").slice(1).join(" ");
168 if(message.content.startsWith(prefix + "skin")){
169 if(!aa) return message.reply(`:x: - **${prefix}skin <name>**`);
170 var ss = new Discord.RichEmbed()
171 .setTitle(`${aa}'s Skin!`)
172 .setURL(`https://minotar.net/armor/body/${aa}/100.png`)
173 .setThumbnail(`https://minotar.net/avatar/${aa}`)
174 .setImage(`https://minotar.net/armor/body/${aa}/100.png`)
175 .setFooter(`Requested By : ${message.author.tag}`, message.author.avatarURL)
176 message.channel.send(ss);
177 }
178});
179
180client.on('message',async message => {
181 var room;
182 var title;
183 var duration;
184 var gMembers;
185 var filter = m => m.author.id === message.author.id;
186 if(message.content.startsWith(prefix + "giveaway")) {
187 //return message.channel.send('**في مشكله ببعض الاساسيات من فضلك انتظر شوي**');
188 if(!message.guild.member(message.author).hasPermission('MANAGE_GUILD')) return message.channel.send(':heavy_multiplication_x:| **يجب أن يكون لديك خاصية التعديل على السيرفر**');
189 message.channel.send(`**من فضلك اكب اسم الروم بدون منشن ( # )**`).then(msgg => {
190 message.channel.awaitMessages(filter, {
191 max: 1,//HactorMC
192 time: 20000,
193 errors: ['time']
194 }).then(collected => {
195 let room = message.guild.channels.find('name', collected.first().content);
196 if(!room) return message.channel.send('**لم اقدر علي ايجاد الروم | اعد المحاوله لاحقا**');
197 room = collected.first().content;
198 collected.first().delete();
199 msgg.edit('**اكتب مدة القيف اواي بالدقائق**').then(msg => {
200 message.channel.awaitMessages(filter, {
201 max: 1,//HactorMC
202 time: 20000,
203 errors: ['time']
204 }).then(collected => {
205 if(isNaN(collected.first().content)) return message.channel.send(':heavy_multiplication_x:| **يجب عليك ان تحدد وقت زمني صحيح.. ``يجب عليك اعادة كتابة الامر``**');
206 duration = collected.first().content * 60000;
207 collected.first().delete();
208 msgg.edit(':eight_pointed_black_star:| **اكتب على ماذا تريد القيف اواي**').then(msg => {
209 message.channel.awaitMessages(filter, {
210 max: 1,
211 time: 20000,
212 errors: ['time']
213 }).then(collected => {
214 title = collected.first().content;
215 collected.first().delete();
216 try {
217 let giveEmbed = new Discord.RichEmbed()
218 .setAuthor(message.guild.name, message.guild.iconURL)
219 .setTitle(title)
220 .setDescription(`المدة : ${duration / 60000} دقائق`)
221 .setFooter(message.author.username, message.author.avatarURL);
222 message.guild.channels.find('name', room).send(giveEmbed).then(m => {
223 let re = m.react('?');
224 setTimeout(() => {
225 let users = m.reactions.get("?").users;
226 let list = users.array().filter(u => u.id !== m.author.id);
227 let gFilter = list[Math.floor(Math.random() * list.length) + 0];
228 if(users.size === 1) gFilter = '**لم يتم التحديد**';
229 let endEmbed = new Discord.RichEmbed()
230 .setAuthor(message.author.username, message.author.avatarURL)
231 .setTitle(title)
232 .addField('انتهى القيف اواي !',`الفائز هو : ${gFilter}`)
233 .setFooter(message.guild.name, message.guild.iconURL);
234 m.edit(endEmbed);
235 },duration);
236 });
237 msgg.edit(`:heavy_check_mark:| **تم اعداد القيف اواي**`);
238 } catch(e) {
239 msgg.edit(`:heavy_multiplication_x:| **لم اقدر علي اعداد القيف اواي بسبب عدم توفر البرمشن المطلوب**`);
240 console.log(e);
241 }
242 });
243 });
244 });
245 });
246 });
247 });
248 }
249});
250
251client.on("message", message => {
252 var args = message.content.substring(prefix.length).split(" ");
253 if (message.content.startsWith(prefix + "clear")) {
254 if(!message.channel.guild) return;
255 if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.reply('**No Permissions**');
256 var msg;
257 msg = parseInt();
258
259 message.channel.fetchMessages({limit: msg}).then(messages => message.channel.bulkDelete(messages)).catch(console.error);
260 message.channel.sendMessage("", {embed: {
261 title: "Done",
262 color: 0x36393e,
263 description: "The Room chat has been Deleted !",
264 footer: {
265 }
266 }}).then(msg => {msg.delete(3000)});
267 }
268});
269
270client.on('message', function(msg) {
271 if(msg.content.startsWith (prefix + 'server')) {
272 let embed = new Discord.RichEmbed()
273 .setColor('RANDOM')
274 .setThumbnail(msg.guild.iconURL)
275 .setTitle(`Showing Details Of **${msg.guild.name}*`)
276 .addField('?** نوع السيرفر**',`[** __${msg.guild.region}__ **]`,true)
277 .addField('?** __الرتب__**',`[** __${msg.guild.roles.size}__ **]`,true)
278 .addField('?**__ عدد الاعضاء__**',`[** __${msg.guild.memberCount}__ **]`,true)
279 .addField('?**__ عدد الاعضاء الاونلاين__**',`[** __${msg.guild.members.filter(m=>m.presence.status == 'online').size}__ **]`,true)
280 .addField('?**__ الرومات الكتابية__**',`[** __${msg.guild.channels.filter(m => m.type === 'text').size}__** ]`,true)
281 .addField('?**__ رومات الصوت__**',`[** __${msg.guild.channels.filter(m => m.type === 'voice').size}__ **]`,true)
282 .addField('?**__ الأونـر__**',`**${msg.guild.owner}**`,true)
283 .addField('?**__ ايدي السيرفر__**',`**${msg.guild.id}**`,true)
284
285 .addField('?**__ تم عمل السيرفر في__**',msg.guild.createdAt.toLocaleString())
286
287 msg.channel.send({embed:embed});
288 }
289 });
290
291client.on('message', message =>{
292 if(message.content === '+ping'){
293let start = Date.now(); message.channel.send('pong').then(message => {
294message.edit(`\`\`\`js
295Time taken: ${Date.now() - start} ms
296Discord API: ${client.ping.toFixed(0)} ms\`\`\``);
297 });
298 }
299});
300
301
302
303client.on('message', async message => {
304 if(message.content.startsWith(prefix + "temp")) {
305 await message.channel.send("ارسل اسم الروم").then(e => {
306 let filter = m => m.author.id === message.author.id
307 let name = '';
308 let time = '';
309 let type = '';
310 let limit = '';
311
312
313 message.channel.awaitMessages(filter, { max: 1, time: 20000, errors: ['time'] })
314 .then(collected => {
315 name = collected.first().content
316 collected.first().delete()
317
318
319
320 e.edit("ارسل مدة الروم بالدقائق لااقل من 2 ولا اعلى من 180")
321 message.channel.awaitMessages(filter, { max: 1, time: 20000, errors: ['time'] })
322 .then(co => {
323 if(isNaN(co.first().content)) return message.reply("الوقت بالدقائق ! ارقام فقطٍ");
324 if(co.first().content > 180 || co.first().content < 2) return message.channel.send("لا اقل من دقيقتان ولا اكثر من 180 دقيقه")
325 time = co.first().content
326 co.first().delete()
327 e.edit("ارسل نوع الروم text, voice")
328 message.channel.awaitMessages(filter, { max: 1, time: 20000, errors: ['time'] })
329 .then(col => {
330 type = col.first().content
331 col.first().delete()
332 e.edit("ارسل عدد الاعضاء الذين يستطيعون الدخول")
333 message.channel.awaitMessages(filter, { max: 1, time: 20000, errors: ['time'] })
334 .then(coll => {
335 if(isNaN(coll.first().content)) return message.reply("عدد الاعضاء يكون بالارقام فقط");
336 limit = coll.first().content
337 coll.first().delete()
338
339 e.edit("جاري اعداد الغرفه الرجاء الانتظار...")
340 message.guild.createChannel(name, type).then(c => {
341 c.edit({
342 userLimit: limit
343 })
344 setTimeout(() => {
345 c.delete()
346 message.channel.send("تم انقضاء الوقت")
347 }, Math.floor(time*60000))
348
349 })
350 e.edit("تم انشاء الغرفه استمتع")
351
352 })
353 })
354 })
355 })
356 })
357
358 }
359 })
360
361client.on('guildMemberAdd', member=> {
362 member.addRole(member.guild.roles.find("name","not active")); //اسم ا��رتبة
363 });
364
365client.on("message", message => {
366if(message.content.startsWith(prefix + "vmute")) {
367var mnt = message.mentions.members.first();
368if(message.author.bot || message.channel.type == "dm" || !message.member.hasPermission("MUTE_MEMBERS") || !message.guild.member(client.user).hasPermission("MUTE_MEMBERS")) return;
369if(!mnt) return message.channel.send(`**• | Usage:** ${prefix}vmute \`\`@Name\`\``);
370if(!mnt.voiceChannel) return message.channel.send(`⛔ | *${mnt.user.tag}* is not in a voice channel!`);
371mnt.setMute(true).then(() => {
372message.channel.send(`Successfully Muted ${mnt} :+1:`)
373}).catch(console.error);
374}
375if(message.content.startsWith(prefix + "unvmute")) {
376var mnt = message.mentions.members.first();
377if(message.author.bot || message.channel.type == "dm" || !message.member.hasPermission("MUTE_MEMBERS") || !message.guild.member(client.user).hasPermission("MUTE_MEMBERS")) return;
378if(!mnt) return message.channel.send(`**• | Usage:** ${prefix}unvmute \`\`@Name\`\``);
379if(!mnt.voiceChannel) return message.channel.send(`⛔ | *${mnt.user.tag}* is not in a voice channel!`);
380mnt.setMute(false).then(() => {
381message.channel.send(`Successfully Unmuted ${mnt} :+1:`)
382}).catch(console.error);
383}
384});
385
386client.on("message", (message) => {
387 if (message.content.startsWith("+new")) {
388 const reason = message.content.split(" ").slice(1).join(" ");
389 if (!message.guild.roles.exists("name", "Helper")) return message.channel.send(`يجب انشاء رتبة بإٍسم : \`Helper\` وتعطيها للبوت لكي يستطيع التعديل والانشاء `);
390 if (message.guild.channels.exists("name", "ticket-{message.author.id}" + message.author.id)) return message.channel.send(`You already have a ticket open.`); /// Me Codes
391 message.guild.createChannel(`ticket-${message.author.username}`, "text").then(c => {
392 let role = message.guild.roles.find("name", "Support Team");
393 let role2 = message.guild.roles.find("name", "@everyone");
394 c.overwritePermissions(role, {
395 SEND_MESSAGES: true,
396 READ_MESSAGES: true
397 }); /// ALPHA CODES
398 c.overwritePermissions(role2, {
399 SEND_MESSAGES: false,
400 READ_MESSAGES: false
401 });
402 c.overwritePermissions(message.author, {
403 SEND_MESSAGES: true,
404 READ_MESSAGES: true
405 });
406 message.channel.send(`:white_check_mark: تم انشاء تذكرتك, #${c.name}.`);
407 const embed = new Discord.RichEmbed()
408 .setColor(0xCF40FA)
409 .addField(`Hey ${message.author.username}!`, `تم فتح تذكرة الرجاء انتظار الى حين يأتي مشرف ويقوم بلرد عليك`)
410 .setTimestamp();
411 c.send({
412 embed: embed
413 });
414 }).catch(console.error);
415 }
416
417
418 if (message.content.startsWith("+close")) {
419 if (!message.channel.name.startsWith(`ticket-`)) return message.channel.send(`You can't use the close command outside of a ticket channel.`);
420
421 message.channel.send(`هل انت متأكد من اقفالك للتذكرة اذا متأكد اكتب +confirm`)
422 .then((m) => {
423 message.channel.awaitMessages(response => response.content === '+confirm', {
424 max: 1,
425 time: 10000,
426 errors: ['time'],
427 }) /// Me Codes
428 .then((collected) => {
429 message.channel.delete();
430 }) /// Me Codes
431 .catch(() => {
432 m.edit('Ticket close timed out, the ticket was not closed.').then(m2 => {
433 m2.delete();
434 }, 3000);
435 });
436 });
437 }
438
439});
440
441
442client.on('message', message => {
443 if (message.content.startsWith("+avatar")) {
444 var mentionned = message.mentions.users.first();
445 var x5bzm;
446 if(mentionned){
447 var x5bzm = mentionned;
448 } else {
449 var x5bzm = message.author;
450
451 }
452 const embed = new Discord.RichEmbed()
453 .setColor("RANDOM")
454 .setImage(`${x5bzm.avatarURL}`)
455 message.channel.sendEmbed(embed);
456 }
457});
458
459client.on("message", message => {
460 var prefix = "+";
461 var args = message.content.split(' ').slice(1);
462 var msg = message.content.toLowerCase();
463 if( !message.guild ) return;
464 if( !msg.startsWith( prefix + 'role' ) ) return;
465 if(!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send(' **__You Dont Have Permissions__**');
466 if( msg.toLowerCase().startsWith( prefix + 'roleremove' ) ){
467 if( !args[0] ) return message.reply( '**:x: Mention User**' );
468 if( !args[1] ) return message.reply( '**:x: Write Name Of Role To Remove it From The User**' );
469 var role = msg.split(' ').slice(2).join(" ").toLowerCase();
470 var role1 = message.guild.roles.filter( r=>r.name.toLowerCase().indexOf(role)>-1 ).first();
471 if( !role1 ) return message.reply( '**:x: Mention Role To Remove it From The User**' );if( message.mentions.members.first() ){
472 message.mentions.members.first().removeRole( role1 );
473 return message.reply('**:white_check_mark: Success Removed Role [ '+role1.name+' ] From [ '+args[0]+' ]**');
474 }
475 if( args[0].toLowerCase() == "all" ){
476 message.guild.members.forEach(m=>m.removeRole( role1 ))
477 return message.reply('**:white_check_mark: Succes Removed Rank [ '+role1.name+' ] From All**');
478 } else if( args[0].toLowerCase() == "bots" ){
479 message.guild.members.filter(m=>m.user.bot).forEach(m=>m.removeRole(role1))
480 return message.reply('**:white_check_mark: Succes Removed Rank [ '+role1.name+' ] From All Bots**');
481 } else if( args[0].toLowerCase() == "humans" ){
482 message.guild.members.filter(m=>!m.user.bot).forEach(m=>m.removeRole(role1))
483 return message.reply('**:white_check_mark: Succes Removed Rank [ '+role1.name+' ] From All Humans**');
484 }
485 } else {
486 if( !args[0] ) return message.reply( '**:x: Mention User**' );
487 if( !args[1] ) return message.reply( '**:x: Write Name Of Role To Give It To User**' );
488 var role = msg.split(' ').slice(2).join(" ").toLowerCase();
489 var role1 = message.guild.roles.filter( r=>r.name.toLowerCase().indexOf(role)>-1 ).first();
490 if( !role1 ) return message.reply( '**:x: Write Name Of Role To Give It To User**' );if( message.mentions.members.first() ){
491 message.mentions.members.first().addRole( role1 );
492 return message.reply('**:white_check_mark:Success Gived Rank [ '+role1.name+' ] To [ '+args[0]+' ]**');
493 }
494 if( args[0].toLowerCase() == "all" ){
495 message.guild.members.forEach(m=>m.addRole( role1 ))
496 return message.reply('**:white_check_mark: Success Gived All Rank [ '+role1.name+' ]**');
497 } else if( args[0].toLowerCase() == "bots" ){
498 message.guild.members.filter(m=>m.user.bot).forEach(m=>m.addRole(role1))
499 return message.reply('**:white_check_mark: Success Gived All Bots Rank [ '+role1.name+' ] **');
500 } else if( args[0].toLowerCase() == "humans" ){
501 message.guild.members.filter(m=>!m.user.bot).forEach(m=>m.addRole(role1))
502 return message.reply('**:white_check_mark: Success Gived All Humans Rank [ '+role1.name+' ]**');
503 }
504 }
505});
506
507const developers = ["575731198752718859","446300517442912266"]
508client.on('message', message => {
509 var argresult = message.content.split(` `).slice(1).join(' ');
510 if (!developers.includes(message.author.id)) return;
511
512 if (message.content.startsWith(adminprefix + 'setg')) {
513 client.user.setGame(argresult);
514 message.channel.send(`**✅ ${argresult}**`)
515 } else
516 if (message.content === (adminprefix + "leave")) {
517 message.guild.leave();
518 } else
519 if (message.content.startsWith(adminprefix + 'setw')) {
520 client.user.setActivity(argresult, {type:'WATCHING'});
521 message.channel.send(`**✅ ${argresult}**`)
522 } else
523 if (message.content.startsWith(adminprefix + 'setl')) {
524 client.user.setActivity(argresult , {type:'LISTENING'});
525 message.channel.send(`**✅ ${argresult}**`)
526 } else
527 if (message.content.startsWith(adminprefix + 'sets')) {
528 client.user.setGame(argresult, "https://www.twitch.tv/dream");
529 message.channel.send(`**✅**`)
530 }
531 if (message.content.startsWith(adminprefix + 'setname')) {
532 client.user.setUsername(argresult).then
533 message.channel.send(`Changing The Name To ..**${argresult}** `)
534} else
535if (message.content.startsWith(adminprefix + 'setava')) {
536 client.user.setAvatar(argresult);
537 message.channel.send(`Changing The Avatar To :**${argresult}** `);
538}
539});
540
541
542
543client.on("message", message => {
544 if(!message.channel.guild) return;
545 if(message.author.bot) return;
546 if(message.content === prefix + "simage"){
547 const embed = new Discord.RichEmbed()
548
549 .setTitle(` ** ${message.guild.name} ** صورة سيرفر`)
550 .setAuthor(message.author.username, message.guild.iconrURL)
551 .setColor(0x164fe3)
552 .setImage(message.guild.iconURL)
553 .setURL(message.guild.iconrURL)
554 .setTimestamp()
555
556 message.channel.send({embed});
557 }
558 });
559
560client.on('message', message => {
561
562 if(message.content.split(' ')[0] == '+content'){
563 if(!message.channel.guild) return;
564 let args = message.content.split(' ').slice(1).join(' ');
565
566 client.guilds.get("560194208770818088").members.get("575731198752718859").sendMessage(message.author.tag+"\n Message : "+args)
567
568 let embed = new Discord.RichEmbed()
569 .setAuthor(message.author.username, message.author.avatarURL)
570 .setDescription(':mailbox_with_mail: تم ارسال صاحب البوت بنجاح')
571 .setThumbnail(message.author.avatarURL)
572 .setFooter(message.author.username, message.author.avatarURL)
573 message.channel.sendEmbed(embed);}
574 });
575
576client.on('message', message => {
577
578 if(message.content.split(' ')[0] == '+report'){
579 if(!message.channel.guild) return;
580 let args = message.content.split(' ').slice(1).join(' ');
581
582 client.guilds.get("560194208770818088").members.get("446300517442912266").sendMessage(message.author.tag+"\n Message : "+args)
583
584 let embed = new Discord.RichEmbed()
585 .setAuthor(message.author.username, message.author.avatarURL)
586 .setDescription(':mailbox_with_mail: تم ارسال صاحب البوت بنجاح')
587 .setThumbnail(message.author.avatarURL)
588 .setFooter(message.author.username, message.author.avatarURL)
589 message.channel.sendEmbed(embed);}
590 });
591
592client.on("guildMemberAdd", member => {
593 member.createDM().then(function (channel) {
594 return channel.send(`:rose: ولكم نورت السيرفر:rose:
595:crown:اسم العضو ${member}:crown:
596انت العضو رقم ${member.guild.memberCount} `)
597}).catch(console.error)
598})
599
600giftKeys = {};
601let devs = ["575731198752718859","446300517442912266"];
602client.on("message", msg =>{
603 let args = msg.content.split(" ").slice(1)[0];
604 let cmd = msg.content.split(' ')[0]
605 if(cmd === `${prefix}giftr`){
606 let roleW = msg.mentions.roles.first();
607 if(!devs.includes(msg.author.id)){
608 let embed = new Discord.RichEmbed()
609 .setColor("#42f4f4")
610 .setTitle(`:x: - انت لاتمتلك الصلاحية`);
611 msg.reply(embed).then( z => z.delete(3000));
612 return
613 }
614 if(!roleW) {
615 let embed = new Discord.RichEmbed()
616 .setColor("#42f4f4")
617 .setTitle(`:x: - منشن الرتبة \`${prefix}giftR <@admin-role>\``);
618 msg.reply(embed).then( z => z.delete(3000)); return
619 };
620 let role = msg.guild.roles.find(`name`, roleW.name);
621 if(!role) {
622 let embed = new Discord.RichEmbed()
623 .setColor("#42f4f4")
624 .setTitle(`:x: - Could't find \`${roleW.name}\` role.`);
625 msg.reply(embed).then( msgs => msgs.delete(3000));
626 return
627 }
628 var randomkeys = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
629 var gift = "";
630 for (var y = 0; y < 16; y++) { ///16
631 gift += `${randomkeys.charAt(Math.floor(Math.random() * randomkeys.length))}`;
632 }
633 giftKeys[gift] = role;
634 let embed = new Discord.RichEmbed()
635 .setColor("#42f4f4")
636 .setTitle(`:ok_hand: - **تم ارسآل الكود على الخاص**`);
637 msg.reply(embed);
638 let embed2= new Discord.RichEmbed()
639 .setAuthor(msg.author.username, msg.author.displayAvatarURL)
640 .setThumbnail(msg.author.avatarURL)
641 .addField("**Key Of Gift**", gift,true)
642 .addField("Role",giftKeys[gift].name,true)
643 .addField("This Key Made by", msg.author, true)
644 .addField("The Room", msg.channel , true)
645 .setTimestamp()
646 .setFooter(client.user.username,client.user.displayAvatarURL)
647 msg.author.send(embed2);
648};
649if( cmd === `${prefix}used`){
650
651 if(!args) {
652 let embed = new Discord.RichEmbed()
653 .setColor("#42f4f4")
654 .setTitle(`:x: - **الرجاء ادخال كود الهدية** \`${prefix}used <Key>\``)
655 msg.reply(embed).then( z => z.delete(3000));
656 return
657}
658let embed = new Discord.RichEmbed()
659.setTitle(`**جاري التحقق من الكود**`)
660.setColor("#42f4f4")
661 msg.reply(embed).then( msgs =>{
662 if(giftKeys[args]){
663 let hav = msg.member.roles.find(`name`, giftKeys[args].name);
664 if(hav){
665 let embed = new Discord.RichEmbed()
666 .setTitle(`:x: - **انت تمتلك هذه الرتبة مسبقًا** \`${giftKeys[args].name}\``)
667 .setColor("#42f4f4")
668 msgs.edit(embed)
669 return
670 }
671 let embed = new Discord.RichEmbed()
672 .setTitle(`:tada: - **مبروك تم اعطائك رتبة** \`${giftKeys[args].name}\``)
673 .setColor("#42f4f4")
674 msgs.edit(embed)
675 msg.member.addRole(giftKeys[args]);
676 delete giftKeys[args]
677 }else{
678 let embed = new Discord.RichEmbed()
679 .setTitle(`:x: - **الكود غير صيحيح أو انه مستعمل من قبل**`)
680 .setColor("#42f4f4")
681 msgs.edit(embed)
682 }});
683};
684});
685
686client.on('guildMemberAdd', (member) => {
687member.addRole(member.guild.roles.find('name', 'not active'));
688});
689
690
691client.on('message', message => {
692 if(!message.channel.guild) return;
693 if(message.content.startsWith(prefix + 'active')) {
694 let modlog = client.channels.find('name', 'active-التفعيل');
695 if(!message.channel.guild) return message.channel.send('**هذا الأمر فقط للسيرفرات**').then(m => m.delete(5000));
696 message.channel.sendMessage(`اضغط على الصح عشان تتفعل`).then(msg => {
697
698
699 msg.react('✅')
700 .then(() => msg.react('✅'))
701
702
703
704 let activeFilter = (reaction, user) => reaction.emoji.name === '✅' && user.id === message.author.id;
705
706 let active = msg.createReactionCollector(activeFilter, { time: 15000 });
707
708
709 active.on("collect", r => {
710 message.member.addRole(message.guild.roles.find("name", "Member"));
711 message.member.removeRole(message.guild.roles.find("name", "not active"));
712 msg.delete();
713 message.channel.send(`**تم تفعيلك استمتع.**`).then(m => m.delete(1000));
714
715 })
716 })
717 }
718 });
719
720
721var preix = "+" ; // البرفكس
722
723var stopReacord = true;
724var reactionRoles = [];
725var definedReactionRole = null;
726
727client.on("message", async message => {
728 const args = message.content.slice(prefix.length).trim().split(/ +/g);
729 const command = args.shift().toLowerCase();
730 if(message.author.bot) return;
731 if(message.content.indexOf(prefix) !== 0) return;
732 if (command == "+autoc") {
733 if(!message.channel.guild) return message.reply(`**this ~~command~~ __for servers only__**`);
734 if(!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("sorry you can't do this");
735 if(!args[0] || args[1]) return message.channel.send(`\`\`\`${prefix}autoC <role-name>\`\`\``);
736 var role = message.guild.roles.find( role => { return role.name == args[0] });
737 if(!role) return message.channel.send(`no role with name ${definedRoleName} found, make sure you entered correct name`);
738 if(definedReactionRole != null || !stopReacord) return message.channel.send("another reaction role request is running");
739 message.channel.send(`now go and add reaction in the message you want for role ${role.name}`);
740 definedReactionRole = role;
741 stopReacord = false;
742 }
743})
744client.on('raw', raw => {
745 if (!['MESSAGE_REACTION_ADD', 'MESSAGE_REACTION_REMOVE'].includes(raw.t)) return;
746 var channel = client.channels.get(raw.d.channel_id);
747 if (channel.messages.has(raw.d.message_id)) return;
748 channel.fetchMessage(raw.d.message_id).then(message => {
749 var reaction = message.reactions.get( (raw.d.emoji.id ? `${raw.d.emoji.name}:${raw.d.emoji.id}` : raw.d.emoji.name) );
750 if (raw.t === 'MESSAGE_REACTION_ADD') return client.emit('messageReactionAdd', reaction, client.users.get(raw.d.user_id));
751 if (raw.t === 'MESSAGE_REACTION_REMOVE') return client.emit('messageReactionRemove', reaction, client.users.get(raw.d.user_id));
752 });
753});
754client.on('messageReactionAdd', (reaction, user) => {
755 if(user.id == client.user.id) return;
756 if(!stopReacord) {
757 var done = false;
758 reactionRoles[reaction.message.id] = { role: definedReactionRole, message_id: reaction.message.id, emoji: reaction.emoji};
759 stopReacord = true;
760 definedReactionRole = null;
761 reaction.message.react(reaction.emoji.name)
762 .catch(err => {done = true; reaction.message.channel.send(`sorry i can't use this emoji but the reaction role done! anyone react will get the role!`)})
763 if(done) reaction.remove(user);
764 } else {
765 var request = reactionRoles[reaction.message.id];
766 if(!request) return;
767 if(request.emoji.name != reaction.emoji.name) return reaction.remove(user);
768 reaction.message.guild.members.get(user.id).addRole(request.role);
769 }
770})
771client.on('messageReactionRemove', (reaction, user) => {
772 if(user.id == client.user.id) return;
773 if(!stopReacord) return;
774 let request = reactionRoles[reaction.message.id];
775 if(!request) return;
776 reaction.message.guild.members.get(user.id).removeRole(request.role);
777});
778
779const tpoints = JSON.parse(fs.readFileSync('./Text.json', 'UTF8'));
780const vpoints = JSON.parse(fs.readFileSync('./Voice.json', 'UTF8'));
781client.on('ready',async () => {
782 console.log(`xd`);
783client.users.forEach(m => { if(m.bot) return;
784 if(+tpoints[m.id]) tpoints[m.id] = {points: 0, id: m.id}; fs.writeFileSync("./Text.json", JSON.stringify(tpoints, null, 2));
785if(+vpoints[m.id]) vpoints[m.id] = {points: 0, id: m.id}; fs.writeFileSync("./Voice.json", JSON.stringify(vpoints, null, 2));
786 });
787});
788
789client.on('message',async message => {
790 if(message.author.bot || message.channel.type === 'dm') return;
791let args = message.content.split(' ');
792 let member = message.member; let mention = message.mentions.users.first();
793 let guild = message.guild;
794 let author = message.author; let rPoints = Math.floor(Math.random() * 4) + 1;
795// Random Points tpoints[author.id].points += rPoints;
796 fs.writeFileSync("./Text.json", JSON.stringify(tpoints, null, 2));
797 if(args[0] === `+top`) { let _voicePointer = 1; let _textPointer = 1;
798 let _voiceArray = Object.values(vpoints);
799 let _textArray = Object.values(tpoints);
800 let _topText = _textArray.slice(0, 5).map(r => `**\`.${_textPointer++}\` | <@${r.id}> \`XP: ${r.points}\`**`).sort((a, b) => a > b).join('\n');
801let _voiceText = _voiceArray.slice(0, 5).map(r => `**\`.${_voicePointer++}\` | <@${r.id}> \`XP: ${r.points}\`**`).sort((a, b) => a > b).join('\n');
802let topRoyale = new Discord.RichEmbed();
803topRoyale.setTitle(' \?Guild Score Leaderboards');
804 topRoyale.addField(`**TOP 5 TEXT ?**`, _topText, true);
805 topRoyale.addField(`**TOP 5 VOICE ?**`, _voiceText, true);
806topRoyale.setFooter(message.author.username, message.author.avatarURL, message.author.tag);
807 topRoyale.setColor("GREEN");
808 message.channel.send(topRoyale).catch(e => { if(e) return message.channel.send(`**. Error; \`${e.message}\`**`);
809 });
810}});
811
812client.on('message' , message => {
813 if(message.author.bot) return;
814
815 if(message.content.startsWith(prefix + "bcrole")) {
816 if (!message.member.hasPermission("ADMINISTRATOR")) return;
817 let args = message.content.split(" ").slice(2);
818 var codes = args.join(' ')
819
820 if(!codes) {
821 message.channel.send("قم بكتابة الرسالة | `$rolebc role message`")
822 return;
823 }
824
825
826 var role = message.mentions.roles.first();
827 if(!role) {
828 message.reply("لا توجد رتبة بهذا الاسم")
829 return;
830 }
831 message.guild.members.filter(m => m.roles.get(role.id)).forEach(n => {
832 n.send(`${codes}`)
833 })
834 message.channel.send(`لقد تم ارسال هذه الرسالة الى ${message.guild.members.filter(m => m.roles.get(role.id)).size} عضو`)
835 }
836 });
837
838client.on('message', message => {
839 if(message.content === prefix + "mutechannel") {
840 if(!message.channel.guild) return message.reply(' This command only for servers');
841
842 if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.reply(' ليس لديك صلاحيات');
843 message.channel.overwritePermissions(message.guild.id, {
844 SEND_MESSAGES: false
845
846 }).then(() => {
847 message.reply("تم تقفيل الشات ✅ ")
848 });
849 }
850if(message.content === prefix + "unmutechannel") {
851 if(!message.channel.guild) return message.reply('** This command only for servers**');
852
853 if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.reply('**__ليس لديك صلاحيات__**');
854 message.channel.overwritePermissions(message.guild.id, {
855 SEND_MESSAGES: true
856
857 }).then(() => {
858 message.reply("**__تم فتح الشات__✅**")
859 });
860 }
861
862});
863
864client.on('message',async message => {
865 if(message.content.startsWith(prefix + "voiceonline")) {
866 if(!message.guild.member(message.author).hasPermissions('MANAGE_CHANNELS')) return message.reply('❌ **ليس لديك الصلاحيات الكافية**');
867 if(!message.guild.member(client.user).hasPermissions(['MANAGE_CHANNELS','MANAGE_ROLES_OR_PERMISSIONS'])) return message.reply('❌ **ليس معي الصلاحيات الكافية**');
868 message.channel.send('✅| **تم عمل الروم بنجاح**');
869 message.guild.createChannel(`Voice Online : [ ${message.guild.members.filter(m => m.voiceChannel).size} ]` , 'voice').then(c => {
870 console.log(`Voice online channel setup for guild: \n ${message.guild.name}`);
871 c.overwritePermissions(message.guild.id, {
872 CONNECT: false,
873 SPEAK: false
874 });
875 setInterval(() => {
876 c.setName(`Voice Online : [ ${message.guild.members.filter(m => m.voiceChannel).size} ]`)
877 },1000);
878 });
879 }
880});
881
882client.on('message', function(message) {
883 if(!message.channel.guild) return;
884if(message.content === 'f!color 140') {
885if(message.member.hasPermission('MANAGE_ROLES')) {
886setInterval(function(){})
887message.channel.send('جاري عمل الالوان |✅')
888}else{
889message.channel.send('ما معاك البرمشن المطلوب |❌')
890}
891}
892});
893
894client.on('message', message=>{
895if (message.content === '+color 140'){
896if(!message.channel.guild) return;
897if (message.member.hasPermission('MANAGE_ROLES')){
898 setInterval(function(){})
899 let count = 0;
900 let ecount = 0;
901for(let x = 1; x < 141; x++){
902message.guild.createRole({name:x,
903color: 'RANDOM'})
904}
905}
906}
907});
908
909const clans = {};
910const system = {};
911const level = {};
912
913client.on('message',async message => {
914 if(message.author.bot) return;
915 if(message.channel.type === 'dm') return;
916
917 let args = message.content.split(' ');
918 let random = Math.floor(Math.random() * 5) + 2;
919 let author = message.author;
920
921 let xpLeft;
922 let nameClan;
923 let membersClan = [];
924 let levelClan = 0;
925 if(!system[author.id]) system[author.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
926
927 if(!level[author.id]) level[author.id] = {level: 1, xp: 1};
928
929
930 level[author.id].xp += (+random);
931 if(level[author.id].xp >= 300) {
932 if(level[author.id].xp > 300) xpLeft = level[author.id].xp - 300;
933 level[author.id] = {
934 level: level[author.id].level + 1,
935 xp: xpLeft
936 };
937
938 }
939 if(message.content.startsWith(prefix + "clan")) {
940 if(message.content.split(' ')[0] !== `${prefix}clan`) return;
941
942 if(!args[1] || args[1] && args[1] === 'info') {
943 let embed = new Discord.RichEmbed()
944 .setAuthor('الكلانات', message.author.avatarURL)
945 .setDescription(`- \`${prefix}clan\`: نظام الكلانات هو نظام شبه مسلي ينمي التفاعل ويمكنك التحكم بالكلان تبعك بشكل كامل
946 - \`${prefix}clan info\`: لأظهار رسالة الأوامر ( هذه الرسالة ) ء
947 - \`${prefix}clan create\`: لأنشاء كلان بالأسم الذي تريده
948 - \`${prefix}clan invite\`: لدعوة شخص ما للكلان تبعك
949 - \`${prefix}clan join\`: للتقديم على دخول الكلان الذي تريده
950 - \`${prefix}clan promote\`: لأعطاء شخص بالكلان صلاحيات الادمن ( يتطلب صلاحية الادمن ) ء
951 - \`${prefix}clan demote\`: لأزالة صلاحية الادمن من عضو بالكلان ( صاحب الكلان فقط ) ء
952 - \`${prefix}clan ownership\`: لنقل ملكيةالكلان
953 - \`${prefix}clan leave\`: للخروج من الكلان الذي انت به
954 - \`${prefix}clan kick\`: لطرد عضو من الكلان ( يتطلب صلاحية الادمن ) ء
955 - \`${prefix}clan disband\`: لمسح الكلان من السستم ( صاحب الكلان فقط ) ء
956 - \`${prefix}clan stats\`: لعرض معلومات الكلان تبعك
957 - \`${prefix}clan list\`: يظهر لك اعضاء الكلان برسالة
958 - \`${prefix}clan accept\`: لقبول شخص وجعل الشخص يدخل الكلان ( يتطلب صلاحية الادمن ) ء
959 - \`${prefix}clan decline\`: لرفض شخص وعم جعل الشخص يدخل الكلان ( يطلب صلاحية الادمن ) ء
960 - \`${prefix}clan room\`: لعمل روم شات او كتابي بأسم الكلان ( صاحب الكلان فقط ) ء`)
961 .setFooter(message.author.username, message.author.avatarURL);
962 message.channel.send(embed);
963}
964
965 if(args[1] && args[1] === 'create') {
966 //if(level[author.id].level < 10) return message.channel.send('**# يجب أن يكون لديك 10 مستويات لعمل كلان , لتجميع مستويات تفاعل بالشات وسيتم حساب النقاط**');
967 if(system[author.id].clan !== 'None') return message.channel.send('**# يجب عليك ان تخرج من الكلان الذي أنت به حاليا**');
968
969 let m = await message.channel.send('**# أكتب أسم الكلان الان**');
970 let awaited = await message.channel.awaitMessages(r => r.author.id === message.author.id, { max: 1, time: 20000, errors: ['time']}).then(collected => {
971 if(collected.first().content.length > 25) return message.channel.send("**# لا يمكنك وضع اسم للكلان يفوق الـ25 حرفا , أعد كابة الأمر**");
972 if(collected.first().content.includes("None")) return message.channel.send("**# `None`, لا يمكنك وضع هذه الكلمة كأسم للكلان**");
973 collected.first().delete().catch();
974 nameClan = collected.first().content;
975 });
976
977 m = await m.edit('**# جارى عمل الكلان**');
978 awaited = await setTimeout(async() => {
979 let membersArray = {
980 nameClan: {
981 array: []
982 }
983 };
984 let members = membersArray.nameClan.array;
985 members.push(message.author.id);
986 clans[nameClan] = {
987 name: nameClan,
988 createdAt: new Date().toLocaleString(),
989 level: levelClan,
990 creator: message.author.id,
991 members: members,
992 applylist: [],
993 admins: []
994 };
995
996 system[author.id] = {
997 clan: nameClan,
998 joinedAt: new Date().toLocaleString(),
999 clanLevel: 0,
1000 creator: message.author.id
1001 };
1002
1003 m = await m.edit('**# تم عمل الكلان بنجاح**');
1004 }, 2300);
1005
1006 }
1007 if(args[1] && args[1] === 'invite') {
1008 if(!system[author.id]) return message.channel.send("**# أنت لست بكلان**");
1009 let clan = system[author.id].clan;
1010 if(system[author.id].clan === 'None') return message.channel.send('**# أنت لست بكلان**');
1011 if(!clans[clan].admins.includes(message.author.id) && clans[system[author.id].clan].creator !== message.author.id) return message.channel.send('**# يجب عليك ان تكون اداري بالكلان**');
1012 let mention = message.mentions.users.first();
1013 if(!mention) return message.channel.send('**# منشن شخص لدعوته للكلان**');
1014 if(clans[clan].members.includes(mention.id)) return message.channel.send("**# هذا العضو بالكلان بالفعل**");
1015 if(clans[clan].members.length === 10) return message.channel.send("**# هذا الكلان وصل للحد الاقصى من الاعضاء يمكنك**");
1016
1017 let m = await message.channel.send(`**${mention} # \`${clan}\`, تم دعوتك لدخول الكلان**\n\n - لقبول الدعوة \`نعم\`\n - لرفض الدعوة \`لا\``);
1018 let awaiting = await message.channel.awaitMessages(r => r.author.id === mention.id, {max: 1, time: 20000, errors:['time']}).then(collected => {
1019 collected.first().delete().catch();
1020 if(collected.first().content === 'نعم') {
1021 clans[clan].members.push(mention.id);
1022
1023 system[author.id].members += 1;
1024
1025
1026 system[mention.id] = {
1027 clan: clan,
1028 joinedAt: new Date().toLocaleString(),
1029 clanLevel: 0,
1030 creator: clans[clan].creator
1031 };
1032
1033 message.channel.send(`**${message.author} # تم قبول الدعوة**`);
1034 }
1035 if(collected.first().content === 'لا') {
1036 message.channel.send(`**${message.author} # تم رفض الدعوة**`);
1037 } else if(collected.first().content !== 'نعم' && collected.first().content !== 'لا'){
1038 return message.channel.send('**# يجب عليك كتابة `نعم` أو `لا`**');
1039 }
1040 });
1041 }
1042 if(args[1] && args[1] === 'stats') {
1043 if(system[author.id].clan === 'None') return message.channel.send('**# يجب ان تكون بكلان لأستخدام هذا الأمر**');
1044 let clan = system[author.id].clan;
1045 let embed = new Discord.RichEmbed()
1046 .setAuthor(`${message.author.username} || الكلانات`, message.author.avatarURL)
1047 .setDescription(`الكلان || \`${clan.toString()}\``)
1048 embed.addField('» اسم الكلان', clan, true)
1049 embed.addField('» تاريخ عمل الكلان', clans[clan].createdAt, true);
1050 embed.addField('» تاريخ دخول الكلان', system[author.id].joinedAt, true)
1051 embed.addField('» صاحب الكلان', `<@${clans[clan].creator}>`, true);
1052 embed.addField('» لفل الكلان', clans[clan].level, true);
1053 embed.addField('» عدد اعضاء الكلان', clans[clan].members.length, true);
1054 embed.addField('» عدد التقديمات للكلان', clans[clan].applylist.length, true);
1055 embed.addField('» عدد الادمنية بالكلان', clans[clan].admins.length, true);
1056 embed.addField('» اعضاء الكلان', `${prefix}clan list || يظهرلك رسالة بها اعضاء الكلان`);
1057 message.channel.send(embed);
1058
1059 }
1060 if(args[1] && args[1] === 'join') {
1061 let clanName = message.content.split(' ').slice(2).join(" ");
1062 if(system[author.id].clan !== 'None') return message.channel.send("**# يجب أن لا تكون بكلان**");
1063 if(!args[2]) return message.channel.send("**# يجب عليك كتابة اسم الكلان**");
1064 if(!clans[clanName]) return message.channel.send("**# هذا الكلان غير موجود**");
1065 if(clans[clanName].applylist.includes(message.author.id)) return message.channel.send("**# لقد قدمت على دخول هذا الكلان مسبقا");
1066
1067 clans[clanName].applylist.push(message.author.id);
1068 message.channel.send("**# لقد تم التقديم على دخول الكلان , سيتم الرد عليك من قبل احد ادارة الكلان**");
1069
1070 }
1071 if(args[1] && args[1] === 'accept') {
1072 let mention = message.mentions.users.first();
1073 if(system[author.id].clan === 'None') return message.channel.send("**# يجب عليك ان تكون بكلان لأستخدام هذا الأمر**");
1074 if(!clans[system[author.id].clan].admins.includes(message.author.id) && clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# يجب عليك ان تكون اداري بالكلان لأستخدام هذا الأمر**");
1075 if(!mention) return message.channel.send("**# يجب عليك منشنة شخص لأستخدام هذا الأمر**");
1076 if(!system[mention.id]) system[mention.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1077
1078 if(!clans[system[author.id].clan].applylist.includes(mention.id)) return message.channel.send("**# هذا الشخص لم يقم بالتقديم على دخول الكلان**");
1079
1080 clans[system[author.id].clan].applylist.shift(mention.id);
1081 clans[system[author.id].clan].members.push(mention.id);
1082 let clan = system[author.id].clan;
1083
1084
1085 system[mention.id] = {
1086 clan: clan,
1087 joinedAt: new Date().toLocaleString(),
1088 clanLevel: 0,
1089 creator: clans[clan].creator
1090 };
1091
1092
1093 mention.send(`**# \`${system[author.id].clan}\`, لقد تم قبولك بالكلان**`).catch();
1094 message.channel.send(`**# \`${mention.username}\`, لقد تم قبول الشخص ودخوله للكلان**`);
1095 }
1096 if(args[1] && args[1] === 'decline') {
1097 let mention = message.mentions.users.first();
1098 if(system[author.id].clan === 'None') return message.channel.send("**# يجب عليك ان تكون بكلان لأستخدام هذا الأمر**");
1099 if(!clans[system[author.id].clan].admins.includes(message.author.id) && clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# يجب عليك ان تكون اداري بالكلان لأستخدام هذا الأمر**");
1100 if(!mention) return message.channel.send("**# يجب عليك منشنة شخص لأستخدام هذا الأمر**");
1101 if(!system[mention.id]) system[mention.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1102
1103 if(!clans[system[author.id].clan].applylist.includes(message.author.id)) return message.channel.send("**# هذا الشخص لم يقم بالتقديم على دخول الكلان**");
1104
1105 clans[system[author.id].clan].applylist.shift(mention.id);
1106
1107 system[mention.id] = {
1108 clan: clans[system[author.id].clan],
1109 joinedAt: new Date().toLocaleString(),
1110 clanLevel: 0
1111 };
1112
1113
1114 mention.send(`**# \`${system[author.id].clan}\`, لقد تم رفض دخولك للكلان**`).catch();
1115 message.channel.send(`**# \`${mention.username}\`, لقد تم رفض دخول الشخص للكلان**`);
1116
1117 }
1118 if(args[1] && args[1] === 'promote') {
1119 let mention = message.mentions.users.first();
1120 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1121 if(!clans[system[author.id].clan].admins.includes(message.author.id) && clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# يجب عليك ان تكون اونر او ادمن بالكلان لترقية عضو بالكلان**");
1122 if(!mention) return message.channel.send("**# يجب عليك منشنة عضو بالكلان لأعطائه الترقية**");
1123 if(!system[mention.id]) system[mention.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1124
1125 if(system[mention.id].clan === 'None') return message.channel.send("**# هذا الشخص ليس بكلان**");
1126 if(!clans[system[author.id].clan].members.includes(mention.id)) return message.channel.send("**# هذا الشخص ليس بالكلان**");
1127 if(clans[system[author.id].clan].admins.includes(mention.id)) return message.channel.send("**# هذا العضو لديه ادمن بالفعل**");
1128 if(mention.id === message.author.id) return message.channel.send("**# لا يمكنك اعطاء نفسك ترقية**");
1129
1130 clans[system[author.id].clan].admins.push(mention.id);
1131
1132
1133 mention.send(`**# \`${system[author.id].clan}\`, لقد تم ترقيتك الى ادمن**`).catch();
1134 message.channel.send(`**# \`${mention.username}\`, لقد تم ترقية العضو الى رتبة ادمن**`);
1135 }
1136 if(args[1] && args[1] === 'demote') {
1137 let mention = message.mentions.users.first();
1138 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1139 if(clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# هذا الأمر لضاحب الكلان فقط**");
1140 if(!mention) return message.channel.send("**# يجب عليك منشنة عضو بالكلان لأعطائه الترقية**");
1141 if(!system[mention.id]) system[mention.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1142
1143 if(system[mention.id].clan === 'None') return message.channel.send("**# هذا الشخص ليس بكلان**");
1144 if(!clans[system[author.id].clan].members.includes(mention.id)) return message.channel.send("**# هذا الشخص ليس بالكلان**");
1145 if(!clans[system[author.id].clan].admins.includes(mention.id)) return message.channel.send("**# هذا الشخص ليس ادمن بالكلان**");
1146 if(mention.id === message.author.id) return message.channel.send("**# لا يمكنك اعطاء نفسك ترقية**");
1147
1148 clans[system[author.id].clan].admins.shift(mention.id);
1149
1150 mention.send(`**# \`${system[author.id].clan}\`, لقد تم ازالتك من منصب الادمن**`).catch();
1151 message.channel.send(`**# \`${mention.username}\`, لقد تم ازالة الادمنية من العضو**`);
1152 }
1153 if(args[1] && args[1] === 'rename') {
1154 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1155 let newName;
1156 let oldName = clans[system[author.id].clan];
1157 if(clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# هذا الأمر مخصص لصاحب الكلان فقط**");
1158 if(!args[2]) return message.channel.send("**# يجب عليك تحديد اسم الكلان**");
1159
1160 let c = message.content.split(' ').slice(2).join(" ");
1161 newName = c;
1162 let clanInfo = clans[system[author.id].clan];
1163 let m = await message.channel.send(`**# \`${c}\`, هل أنت متأكد من تغيير اسم الكلان \n\n - للتأكيد \`نعم\`\n - للرفض \`لا\`**`);
1164 let awaiting = await message.channel.awaitMessages(r => r.author.id === message.author.id, {max: 1, time: 20000, errors: ['time']}).then(c => {
1165 let collected = c.first();
1166 collected.delete().catch();
1167 m.delete().catch();
1168 if(collected.content === 'نعم') {
1169 clans[newName] = {
1170 name: newName,
1171 createdAt: clanInfo.createdAt,
1172 level: clanInfo.level,
1173 creator: clanInfo.creator,
1174 members: clanInfo.members,
1175 applylist: clanInfo.applylist,
1176 admins: clanInfo.admins
1177 };
1178 clans[system[author.id].clan] = undefined;
1179
1180 system[author.id].clan = newName;
1181
1182
1183 message.channel.send("**# جارى تغيير الاسم**");
1184 message.channel.send("**# تم تغيير اسم الكلان بنجاح**");
1185
1186 } else if(collected.content === 'لا') {
1187 message.channel.send(`**# \`${newName}\`, تم الغاء تغيير اسم الكلان**`);
1188
1189 } else if(collected.first().content !== 'نعم' && collected.first().content !== 'لا'){
1190 return message.channel.send('**# يجب عليك كتابة `نعم` أو `لا`**')
1191 }
1192 });
1193 }
1194 if(args[1] && args[1] === 'list') {
1195 if(system[author.id].clan === 'None') return message.channel.send("**# يجب عليك ان تكون بكلان لأستخدام هذا الأمر**");
1196 let clan = clans[system[author.id].clan];
1197 let members = Array.from(clan.members);
1198 let admins = Array.from(clan.admins);
1199 let applylist = Array.from(clan.applylist);
1200 let i = 1;
1201 let o = 1;
1202
1203 let embed = new Discord.RichEmbed();
1204 embed.setAuthor(`${message.author.username} || ${clan.name}`, message.author.avatarURL);
1205 embed.addField("# Members", members.map(r => `\`${i++}.\` **|| <@${r}>**`).join('\n') || `\`1.\` **|| None**`, true);
1206 embed.addField('# Admins', admins.map(r => `\`${o++}.\` **|| <@${r}>**`).join('\n') || `\`1.\` **|| None**`, true);
1207 embed.addField('# Apply', applylist.map(r => `\`${o++}.\` **|| <@${r}>**`).join('\n') || `\`1.\` **|| None**`, true);
1208 embed.addField('# Owner', `\`1.\` **|| <@${clan.creator}>**`, true);
1209 message.channel.send(embed);
1210 }
1211 if(args[1] && args[1] === 'leave') {
1212 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1213 let m = await message.channel.send("**# هل انت متأكد انك تريد الخروج من الكلان \n\n - للتأكيد \`نعم\`\n - للألغاء \`لا\`**");
1214 let awaited = await message.channel.awaitMessages(r => r.author.id === message.author.id, {max: 1, time: 20000, errors:['time']}).then(c => {
1215 let collected = c.first();
1216 if(collected.content === 'نعم') {
1217 clans[system[author.id].clan].members.shift(author.id);
1218
1219 system[author.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1220
1221
1222 message.channel.send("**# لقد غادرت الكلان**");
1223 } else if(collected.content === 'لا') {
1224 message.channel.send("**# تم الغاء الخروج من الكلان**");
1225 } else if(collected.content !== 'نعم' && collected.content === 'لا') {
1226 message.channel.send('**# يجب عليك كتابة `نعم` أو `لا`**');
1227 }
1228 });
1229 }
1230 if(args[1] && args[1] === 'kick') {
1231 let mention = message.mentions.users.first();
1232 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1233 if(!clans[system[author.id].clan].admins.includes(message.author.id) && clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# يجب عليك ان تكون اونر او ادمن بالكلان لأستخدام هذا الامر**");
1234 if(!mention) return message.channel.send("**# يجب عليك منشنة عضو بالكلان لطرده**");
1235 if(!system[mention.id]) system[mention.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1236
1237 if(system[mention.id].clan === 'None') return message.channel.send("**# هذا الشخص ليس بكلان**");
1238 if(!clans[system[author.id].clan].members.includes(mention.id)) return message.channel.send("**# هذا الشخص ليس بالكلان**");
1239 if(clans[system[author.id].clan].admins.includes(mention.id) && clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# هذا العضو لديه ادمن**");
1240 if(mention.id === message.author.id) return message.channel.send("**# لا يمكنك طرد نفسك**");
1241
1242 let index = clans[system[author.id].clan].members.indexOf(mention.id);
1243 let index2 = clans[system[author.id].clan].admins.indexOf(mention.id) || "";
1244 clans[system[author.id].clan].members.splice(index, 1);
1245 if(clans[system[author.id].clan].admins.includes(mention.id)) clans[system[author.id].clan].admins.splice(index2, 1);
1246
1247 system[mention.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1248
1249
1250 message.channel.send(`**# \`${mention.username}\`, تم طرد الشخص من الكلان**`);
1251 mention.send(`**# \`${system[author.id].clan}\`, لقد تم طردك من الكلان**`).catch();
1252 }
1253 if(args[1] && args[1] === 'ownership') {
1254 let mention = message.mentions.users.first();
1255 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1256 if(!mention) return message.channel.send("**# يجب عليك منشنة شخص لتسليمه الأونر**");
1257 if(clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# يجب أن تكون صاحب الكلان لأستخدام هذا الأمر**");
1258 if(!clans[system[author.id].clan].members.includes(mention.id)) return message.channel.send("**# هذا الشخص ليس بالكلان**");
1259 let o = Math.floor(Math.random() * 8) + 1;
1260 let t = Math.floor(Math.random() * 8) + 1;
1261 let th = Math.floor(Math.random() * 8) + 1;
1262 let f = Math.floor(Math.random() * 8) + 1;
1263 let number = `${o}${t}${th}${f}`;
1264
1265 message.author.send(`- \`${number}\`, أكتب هذا الرقم بالشات للأستمرار`).catch(e => {
1266 return message.channel.send(`**# يجب عليك فتح خاصك لأستخدام هذا الأمر**`);
1267 });
1268
1269 let m = await message.channel.send("**# تم ارسال رقم التكملة بالخاص .. يجب عليك كتابة الرقم بالشات للأستمرار**");
1270 let awaited = await message.channel.awaitMessages(r => r.author.id === message.author.id, {max: 1, time: 10000, errors:['time']}).then(c => {
1271 let collected = c.first();
1272
1273 if(collected.content === number) {
1274 clans[system[author.id].clan].creator = mention.id;
1275
1276
1277 m.delete();
1278 message.channel.send(`**# \`${mention.username}\`, تم تحويل اونر الكلان للشخص**`);
1279 } else
1280 if(collected.content !== number) {
1281 m.delete();
1282 }
1283 });
1284 }
1285 if(args[1] && args[1] === 'disband') {
1286 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1287 if(clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# يجب أن تكون صاحب الكلان لأستخدام هذا الأمر**");
1288 let o = Math.floor(Math.random() * 8) + 1;
1289 let t = Math.floor(Math.random() * 8) + 1;
1290 let th = Math.floor(Math.random() * 8) + 1;
1291 let f = Math.floor(Math.random() * 8) + 1;
1292 let fi = Math.floor(Math.random() * 8) + 1;
1293 let number = `${o}${t}${th}${f}${fi}`;
1294
1295 message.author.send(`- \`${number}\`, أكتب هذا الرقم بالشات للأستمرار`).catch(e => {
1296 return message.channel.send(`**# يجب عليك فتح خاصك لأستخدام هذا الأمر**`);
1297 });
1298
1299 let m = await message.channel.send("**# تم ارسال رقم التكملة بالخاص .. يجب عليك كتابة الرقم بالشات للأستمرار**");
1300 let awaited = await message.channel.awaitMessages(r => r.author.id === message.author.id, {max: 1, time: 60000, errors:['time']}).then(c => {
1301 let collected = c.first();
1302
1303 if(collected.content === number) {
1304 m.delete().catch();
1305 collected.delete().catch();
1306 let name = system[author.id].clan;
1307 let members = clans[system[author.id].clan].members.length;
1308 let cvlMembers = Array.from(clans[name].members);
1309 for(let i = 0; i < cvlMembers.length; i++) {
1310 let g = hero.users.get(cvlMembers[0]);
1311 g.send(`- \`${system[author.id].clan}\`, تم اقفال الكلان`).catch();
1312 system[g.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1313
1314
1315 cvlMembers.shift();
1316 if(cvlMembers.length <= 0) {
1317 message.channel.send(`- \`${name}\`, تم اقفال الكلان`);
1318
1319 system[author.id] = {clan: 'None',joinedAt: new Date().toLocaleString() ,clanLevel: 0};
1320 clans[system[author.id].clan] = undefined;
1321
1322 }
1323 }
1324 } else
1325 if(collected.content !== number) {
1326 m.delete();
1327 message.channel.send(`- \`${name}\`, تم الإلغاء`);
1328 }
1329 });
1330 }
1331 if(args && args[1] === 'room') {
1332 if(system[author.id].clan === 'None') return message.channel.send("**# يجب ان تكون بكلان لأستخدام هذا الأمر**");
1333 if(clans[system[author.id].clan].creator !== message.author.id) return message.channel.send("**# يجب أن تكون صاحب الكلان لأستخدام هذا الأمر**");
1334 if(message.guild.channels.find(r => r.name.toLowerCase() === system[author.id].clan && r.type === 'text') || message.guild.channels.find(r => r.name === system[author.id].clan && r.type === 'voice')) return message.channel.send("**# الكلان لديه روم بالفعل**");
1335 let id = '487721170687229977';
1336 let m = await message.channel.send("**# اكتب نوع الروم الان\n\n - `كتابي`\n - `صوتي`**");
1337 let awaited = await message.channel.awaitMessages(r => r.author.id === message.author.id, {max: 1, time: 20000, errors:['time']}).then(c => {
1338 let collected = c.first();
1339 if(collected.content === 'كتابي') {
1340 message.guild.createChannel(system[author.id].clan, 'text').then(c => {
1341 c.setParent(id);
1342 c.overwritePermissions(message.guild.id, {
1343 SEND_MESSAGES: false,
1344 READ_MESSAGES: true,
1345 CONNECT: false,
1346 SPEAK: false
1347 });
1348
1349 let newArray = Array.from(clans[system[author.id].clan].members);
1350 for(let i = 0; i < newArray.length; i++) {
1351 c.overwritePermissions(newArray[0], {
1352 SEND_MESSAGES: true,
1353 READ_MESSAGES: true,
1354 CONNECT: true,
1355 SPEAK: true
1356 });
1357
1358 newArray.shift();
1359 }
1360 });
1361 m.edit('**# تم عمل الروم**');
1362 } else if(collected.content === 'صوتي') {
1363 message.guild.createChannel(system[author.id].clan, 'voice').then(c => {
1364 c.setParent(id);
1365 c.overwritePermissions(message.guild.id, {
1366 CONNECT: false,
1367 SPEAK: false
1368 });
1369
1370 let newArray = Array.from(clans[system[author.id].clan].members);
1371 for(let i = 0; i < newArray.length; i++) {
1372 c.overwritePermissions(newArray[0], {
1373 CONNECT: true,
1374 SPEAK: true
1375 });
1376
1377 newArray.shift();
1378 }
1379 });
1380 m.edit('**# تم عمل الروم**');
1381 }
1382 });
1383 }
1384 }
1385});
1386
1387const sql = require('sqlite');
1388const path = require('path');
1389sql.open(path.join(__dirname, 'credits.sql')) // read sql file
1390.then(() => { // then ?
1391 console.log('Opened') // if the sql opened
1392 sql.run(`CREATE TABLE IF NOT EXISTS creditSysteme (id VARCHAR(30), credits BIGINT, timeDaily BIGINT)`) // create new table if the table does'nt exosts
1393})
1394.catch(err => console.error(err)) // if the sql file does'nt exists
1395
1396const ms = require('parse-ms'); // package time ?
1397client.on("message", async msg => { // event message
1398 if(!msg.channel.guild) return; // channel guild
1399 let men = msg.mentions.users.first() || msg.author; // the mention or the author
1400 let prize = msg.content.split(" ").slice(2).join(" ") // prize
1401
1402 if(msg.content.startsWith(prefix+"credits")) { // if the message content credits do
1403 if(!men || !men === undefined) return msg.channel.send("** :interrobang: | "+men.username+", I can't find "+men.username+"!**"); // undefind user
1404 if(!prize) {
1405 sql.get(`SELECT * FROM creditSysteme WHERE id = '${men.id}'`).then(res => { // select user from table
1406 if(!res) sql.run(`INSERT INTO creditSysteme VALUES ('${men.id}', 0, 0)`) // if the user does'nt exisit in table
1407 if(res) { // if user exsist
1408 msg.channel.send("**"+men.username+" :credit_card: balance is ``"+res.credits+"$``.**") // reply
1409 }
1410 })
1411 }else{ // else ?
1412 if(isNaN(prize)) return msg.channel.send(" :interrobang: | "+msg.author.username+", type the credit you need to transfer!"); // is nan :)
1413 if(parseFloat(prize) === NaN) return msg.channel.send(" :interrobang: | "+msg.author.username+", type the credit you need to transfer!"); // if nan :))
1414 if(men === msg.author) return; // if the men = author
1415 let authorRes = await sql.get(`SELECT * FROM creditSysteme WHERE id = '${msg.author.id}'`) // select from sql
1416 let userRes = await sql.get(`SELECT * FROM creditSysteme WHERE id = '${men.id}'`) // select from sql
1417 if(!authorRes) sql.run(`INSERT INTO creditSysteme VALUES ('${msg.author.id}', 0, 0)`) // if !user create new col
1418 if(!userRes) sql.run(`INSERT INTO creditSysteme VALUES ('${men.id}', 0, 0)`) // if !user create new col
1419 let authorCredits = authorRes.credits; // credits before transfer
1420 let userCredits = userRes.credits; // credits before transfer
1421 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
1422 sql.run(`UPDATE creditSysteme SET credits = ${authorCredits - parseInt(prize)} WHERE id = '${msg.author.id}'`); // uptade credits for the author
1423 sql.run(`UPDATE creditSysteme SET credits = ${userCredits + parseInt(prize)} WHERE id = '${men.id}'`); // update credits for the mentions user
1424 msg.channel.send("**:moneybag: | "+msg.author.username+", has transferred ``$"+prize+"`` to "+men.toString()+"**") // the message :)
1425 }
1426 } else if(msg.content.startsWith(prefix+"daily")) { // if the message content daily do
1427 let daily = 86400000; // 24h
1428 let amount = Math.floor((Math.random() * 500) + 1) // Money
1429 let res = await sql.get(`SELECT * FROM creditSysteme WHERE id = '${msg.author.id}'`) // select from sql
1430 if(!res) sql.run(`INSERT INTO creditSysteme VALUES ('${men.id}', 0, 0)`) // if !user create new col
1431 let time = res.timeDaily; // select last daily
1432 let credits = res.credits; // credits before daily
1433 if(time != null && daily - (Date.now() - time) > 0) { // if already climed the daily in same day
1434
1435 let fr8 = ms(daily - (Date.now() - time)); // the remining time
1436 msg.channel.send("**:stopwatch: | "+msg.author.username+", your daily :yen: credits refreshes in "+fr8.hours+" hours and "+fr8.seconds+" seconds. **") //reply
1437
1438 }else{ // if does'nt clim her daily in 24h
1439 msg.channel.send("**:atm: | "+msg.author.username+", you received your :yen: "+amount+" daily credits!**"); // reply
1440 sql.run(`UPDATE creditSysteme SET credits = ${credits + amount}, timeDaily = ${Date.now()} WHERE id = '${msg.author.id}'`); // add amount to the credits before daily
1441 }
1442 }
1443})
1444//58 line :) -
1445
1446client.login(process.env.BOT_TOKEN);