gaber-elsayed

اكواد كثير مرة تحتاجها

Feb 1st, 2020
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 118.08 KB | None | 0 0
  1. const http = require('http');
  2. const express = require('express');
  3. const app = express();
  4. app.get("/", (request, response) => {
  5. response.sendStatus(200);
  6. });
  7. app.listen(process.env.PORT);
  8. setInterval(() => {
  9. http.get(`http://reus.glitch.me/`);
  10. }, 280000);
  11.  
  12. // كل البكجات الي ممكن تحتجها في اي بوت
  13. const { Client, RichEmbed } = require("discord.js");
  14. var { Util } = require('discord.js');
  15. const client = new Client({ disableEveryone: true})
  16. const ytdl = require("ytdl-core");
  17. const canvas = require("canvas");
  18. const {prefix, developers, server, author, dev, number} = require('./config')
  19. const Canvas = require("canvas");
  20. const convert = require("hh-mm-ss")
  21. const fetchVideoInfo = require("youtube-info");
  22. const botversion = require('./package.json').version;
  23. const simpleytapi = require('simple-youtube-api')
  24. const moment = require("moment");
  25. const fs = require('fs');
  26. const util = require("util")
  27. const gif = require("gif-search");
  28. const opus = require("node-opus");
  29. const ms = require("ms");
  30. const jimp = require("jimp");
  31. const { get } = require('snekfetch');
  32. const guild = require('guild');
  33. const dateFormat = require('dateformat');//npm i dateformat
  34. const YouTube = require('simple-youtube-api');
  35. const youtube = new YouTube('AIzaSyAdORXg7UZUo7sePv97JyoDqtQVi3Ll0b8');
  36. const hastebins = require('hastebin-gen');
  37. const getYoutubeID = require('get-youtube-id');
  38. const yt_api_key = "AIzaSyDeoIH0u1e72AtfpwSKKOSy3IPp2UHzqi4";
  39. const pretty = require("pretty-ms");
  40. const queue = new Map();
  41. var table = require('table').table
  42. const Discord = require('discord.js');
  43.  
  44. client.on('ready', () => {
  45. console.log(`PR TEAM Growing`);
  46. client.user.setActivity("PR TEAM GROWING", {type: 'WATCHING'});
  47.  
  48. });
  49.  
  50. client.on('message', message=> {
  51. if (message.author.bot) return;
  52. if (message.isMentioned(client.user))
  53. {
  54. message.channel.send(`**Developed By :** <@${dev}>`)
  55. }
  56. });
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. client.on('message', async message => {
  64. if (!message.channel.guild) return;
  65.  
  66. let args = message.content.split(" ");
  67. if(message.content.startsWith(prefix + "mute")) {
  68. if(!message.member.hasPermission("MANAGE_ROLES")) return message.channel.send('').then(msg => {
  69. msg.delete(3500);
  70. message.delete(3500);
  71. });
  72.  
  73. if(!message.guild.member(client.user).hasPermission("MANAGE_ROLES")) return message.channel.send('').then(msg => {
  74. msg.delete(3500);
  75. message.delete(3500);
  76. });
  77.  
  78. let mention = message.mentions.members.first();
  79. if(!mention) return message.channel.send('').then(msg => {
  80. msg.delete(3500);
  81. message.delete(3500);
  82. });
  83.  
  84. if(mention.id === message.author.id) return message.channel.send('**ماتقدر تعطي ميوت لنفسك :x:**').then(msg => {
  85. msg.delete(3500);
  86. message.delete(3500);
  87. });
  88.  
  89. if(mention.hasPermission('ADMINISTRATOR')) return message.channel.send(`**ماتقدر تعطي احد اعضاء الادارة ميوت :x:**`);
  90.  
  91. if(message.guild.member(mention).roles.find('name', 'Muted')) return message.channel.send(`**:information_source: ${mention.user.username} Already Muted**`);
  92.  
  93.  
  94. if(mention.position >= message.guild.member(message.author).positon) return message.channel.send('**:x:مامعك صلاحية** ').then(msg => {
  95. msg.delete(3500);
  96. message.delete(3500);
  97. });
  98.  
  99. if(mention.positon >= message.guild.member(client.user).positon) return message.channel.send('يرجى اعطاء البوت صلاحية **Muted_Members**').then(msg => {
  100. msg.delete(3500);
  101. message.delete(3500);
  102. });
  103.  
  104. let duration = args[2];
  105. if(!duration) message.channel.send(`**:hash: You Can Use ${prefix}mute @user [ Time ] [ Reason] **`).then(msg => {
  106. msg.delete(3500);
  107. message.delete(3500);
  108. });
  109.  
  110. if(isNaN(duration)) message.channel.send('').then(msg => {
  111. msg.delete(3500);
  112. message.delete(3500);
  113. });
  114.  
  115. let reason = message.content.split(" ").slice(3).join(" ");
  116. if(!reason) reason = " [ **No Reason.** ] ";
  117.  
  118. let thisEmbed = new Discord.RichEmbed()
  119. .setAuthor(mention.user.username, mention.user.avatarURL)
  120. .setTitle('**You Have been Muted !!**')
  121. .addField('**Server**',[ message.guild.name ])
  122. .addField('**BY:**', [ message.author ])
  123. .addField('**Reason:**',reason)
  124. .addField('**Time:**',duration)
  125.  
  126. let role = message.guild.roles.find('name', 'Muted') || message.guild.roles.get(r => r.name === 'Muted');
  127. if(!role) try {
  128. message.guild.createRole({
  129. name: "Muted",
  130. permissions: 0
  131. }).then(r => {
  132. message.guild.channels.forEach(c => {
  133. c.overwritePermissions(r , {
  134. SEND_MESSAGES: false,
  135. READ_MESSAGES_HISTORY: false,
  136. ADD_REACTIONS: false
  137. });
  138. });
  139. }); //kinggamer حقوق الفا كودز و
  140. } catch(e) {
  141. console.log(e.stack);
  142. }
  143. mention.addRole(role).then(() => {
  144. mention.send(thisEmbed);
  145. message.channel.send(`**:ballot_box_with_check: | ${mention.user.username} Muted !**`);
  146. mention.setMute(true); //kinggamer حقوق الفا كودز و
  147. });
  148. setTimeout(() => {
  149. if(duration === 0) return;
  150. mention.setMute(false);
  151. mention.removeRole(role)
  152. },duration * 60000); //kinggamer حقوق الفا كودز و
  153. }
  154. });
  155.  
  156.  
  157.  
  158.  
  159. client.on('message', async message => {
  160. let mention = message.mentions.members.first();
  161. let command = message.content.split(" ")[0];
  162. command = command.slice(prefix.length);
  163. let args = message.content.split(" ").slice(1); //kinggamer حقوق الفا كودز و
  164. if(command === `unmute`) {2
  165. if(!message.member.hasPermission("MANAGE_ROLES")) return message.channel.sendMessage("**مامعك صلاحية Mute_Members**").then(m => m.delete(5000));
  166. if(!message.guild.member(client.user).hasPermission("MANAGE_ROLES")) return message.reply("**البوت لايمتلك صلاحية Mute_Members**").then(msg => msg.delete(6000))
  167.  
  168. let kinggamer = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]);
  169. if(!kinggamer) return message.channel.send('').then(msg => {
  170. msg.delete(3500);
  171. message.delete(3500); //kinggamer حقوق الفا كودز و
  172. });
  173.  
  174. let role = message.guild.roles.find (r => r.name === "Muted");
  175.  
  176. if(!role || !kinggamer.roles.has(role.id)) return message.channel.sendMessage(`**:information_source: | ${mention.user.username} is all ready unmuted**`)
  177.  
  178. await kinggamer.removeRole(role) //kinggamer حقوق الفا كودز و
  179. message.channel.sendMessage(`**:ballot_box_with_check: | ${mention.user.username} UnMuted !**`);
  180.  
  181. return;
  182.  
  183. }
  184.  
  185. });
  186.  
  187. client.on('message', message => {
  188. if (message.author.bot) return;
  189. if (message.content.startsWith(prefix + 'clear')) { //Codes
  190. if(!message.channel.guild) return message.reply('? | This Command For Servers Only!');
  191. if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('? | You dont have **MANAGE_MESSAGES** Permission!');
  192. if(!message.guild.member(client.user).hasPermission('MANAGE_MESSAGES')) return message.channel.send('? | I dont have **MANAGE_MESSAGES** Permission!');
  193. let args = message.content.split(" ").slice(1)
  194. let messagecount = parseInt(args);
  195. if (args > 99) return message.reply("**?? || يجب ان يكون عدد المسح أقل من 100 .**").then(messages => messages.delete(5000))
  196. if(!messagecount) args = '100';
  197. message.channel.fetchMessages({limit: messagecount + 1}).then(messages => message.channel.bulkDelete(messages));
  198. message.channel.send(`\`${args}\` : __عدد الرسائل التي تم مسحها __ `).then(messages => messages.delete(5000));
  199. }
  200. }); //Julian
  201.  
  202. //_____________________________________KICK__BAN____________________________________
  203. //_____________________________________KICK__BAN____________________________________
  204. //_____________________________________KICK__BAN____________________________________
  205.  
  206. client.on('message', message => {
  207.  
  208. if (message.author.zaid) return;
  209. if (!message.content.startsWith(prefix)) return;
  210.  
  211. let command = message.content.split(" ")[0];
  212. command = command.slice(prefix.length);
  213.  
  214. let args = message.content.split(" ").slice(1);
  215.  
  216. if (command == "kick") {
  217. if(!message.channel.guild) return;
  218.  
  219. if(!message.guild.member(message.author).hasPermission("KICK_MEMBERS")) return message.reply("You Don't Have KICK_MEMBERS Permission").then(msg => msg.delete(5000));
  220. if(!message.guild.member(client.user).hasPermission("KICK_MEMBERS")) return message.reply("I Don't Have KICK_Members Permission");
  221. let user = message.mentions.users.first();
  222. let reason = message.content.split(" ").slice(2).join(" ");
  223.  
  224. if (message.mentions.users.size < 1) return message.reply("type the user to kick");
  225. if(!reason) return message.reply (":x: Type the Reason !");
  226. if (!message.guild.member(user)
  227. .bannable) return message.reply("I can not kick who are above me :(");
  228.  
  229. message.guild.member(user).kick(7, user);
  230.  
  231. message.channel.send(`**:ballot_box_with_check: | ${user.tag} Kicked from the server !**`)
  232. }
  233. });
  234.  
  235.  
  236.  
  237. client.on('message', message => {
  238.  
  239. if (message.author.zaid) return;
  240. if (!message.content.startsWith(prefix)) return;
  241.  
  242. let command = message.content.split(" ")[0];
  243. command = command.slice(prefix.length);
  244.  
  245. let args = message.content.split(" ").slice(1);
  246.  
  247. if (command == "ban") {
  248. if (!message.channel.guild) return;
  249.  
  250. if(!message.guild.member(message.author).hasPermission("BAN_MEMBERS")) return message.reply("**You Dont have permissions.**");
  251. if(!message.guild.member(client.user).hasPermission("BAN_MEMBERS")) return message.reply("**I Don't Have ` BAN_MEMBERS ` Permission**");
  252. let user = message.mentions.users.first();
  253.  
  254. if (message.mentions.users.size < 1) return message.reply("**Mention the member.**");
  255. if (!message.guild.member(user)
  256. .bannable) return message.reply("**The Bot Role must be above the given player role.**");
  257.  
  258.  
  259. message.guild.member(user).ban(7, user);
  260.  
  261. message.channel.send(`**:ballot_box_with_check: | ${user.tag} Banned from the server !** `)
  262.  
  263. }
  264. });
  265.  
  266.  
  267.  
  268.  
  269.  
  270. //_____________________________________KVOICE____________________________________
  271. //_____________________________________KVOICE____________________________________
  272. //_____________________________________KVOICE____________________________________
  273.  
  274. client.on("message", message => {
  275.  
  276. var command = message.content.split(" ")[0];
  277.  
  278. if(command == prefix + "kvoice"){
  279.  
  280. if (!message.guild.member(message.author).hasPermission('MOVE_MEMBERS') || !message.guild.member(message.author).hasPermission('ADMINISTRATOR')) {
  281. return message.reply('you do not have permission to perform this action!');
  282. }
  283.  
  284. var member = message.guild.members.get(message.mentions.users.array()[0].id);
  285. if(!message.mentions.users){
  286. message.reply("please mention the member")
  287. return;
  288. }
  289.  
  290. if(!member.voiceChannel){
  291. message.reply("i can't include voice channel for member!")
  292. return;
  293. }
  294. message.guild.createChannel('voicekick', 'voice').then(c => {
  295. member.setVoiceChannel(c).then(() => {
  296. c.delete(305).catch(console.log)
  297.  
  298.  
  299.  
  300.  
  301. });
  302. });
  303. }
  304. });
  305.  
  306.  
  307.  
  308. //_______________________________________ROLES____________________________________
  309. //_______________________________________ROLES____________________________________
  310. //_______________________________________ROLES____________________________________
  311.  
  312.  
  313. client.on("message", message => {
  314.  
  315. var args = message.content.split(' ').slice(1);
  316. var msg = message.content.toLowerCase();
  317. if( !message.guild ) return;
  318. if( !msg.startsWith( prefix + 'role' ) ) return;
  319. if( msg.toLowerCase().startsWith( prefix + 'roleremove' ) ){
  320.  
  321. if(!message.member.hasPermission('ADMINISTRATOR')) return;
  322. if( !args[0] ) return message.channel.send( '**:x: | Please put the person to be Withdrawal the rank**.' );
  323. if( !args[1] ) return message.channel.send( '**:x: | Please place the rank to be withdrawn from the person**.' );
  324. var role = msg.split(' ').slice(2).join(" ").toLowerCase();
  325. var role1 = message.guild.roles.filter( r=>r.name.toLowerCase().indexOf(role)>-1 ).first();
  326. if( !role1 ) return message.channel.send( '**:x: | Please place the rank to be withdrawn from the person**.' );
  327. if( message.mentions.members.first() ){
  328. message.mentions.members.first().removeRole( role1 );
  329. return message.channel.send('**? Removed Role** __'+role1.name+'__ **From** __'+args[0]+'__.');
  330. }
  331. if( args[0].toLowerCase() == "all" ){
  332. if(!message.member.hasPermission('ADMINISTRATOR')) return;
  333. message.guild.members.forEach(m=>m.removeRole( role1 ))
  334. return message.channel.send('**? Removed role** __ '+role1.name+'__ **From all**.');
  335. } else if( args[0].toLowerCase() == "bots" ){
  336. message.guild.members.filter(m=>m.user.bot).forEach(m=>m.removeRole(role1))
  337. return message.channel.send('**? Removed role** __ '+role1.name+'__ **From Bots**.');
  338. } else if( args[0].toLowerCase() == "humans" ){
  339. message.guild.members.filter(m=>!m.user.bot).forEach(m=>m.removeRole(role1))
  340. return message.channel.send('**? Removed role** __ '+role1.name+'__ **From Humans**.');
  341. }
  342. } else {
  343. if(!message.member.hasPermission('ADMINISTRATOR')) return;
  344. if( !args[0] ) return message.channel.send( '**:x: | Please put the person to be given the rank**.' ); //rank
  345. if( !args[1] ) return message.channel.send( '**:x: | Please specify the role to be given to the person**.' ); // Person
  346. var role = msg.split(' ').slice(2).join(" ").toLowerCase();
  347. var role1 = message.guild.roles.filter( r=>r.name.toLowerCase().indexOf(role)>-1 ).first();
  348. if( !role1 ) return message.channel.send( '**:x: | Please specify the role to be given to the person**.' );if( message.mentions.members.first() ){
  349. message.mentions.members.first().addRole( role1 );
  350. return message.channel.send('**?** __'+args[0]+' __ **was given role** __ '+role1.name+'__ .');
  351. }
  352. if( args[0].toLowerCase() == "all" ){
  353. if(!message.member.hasPermission('ADMINISTRATOR')) return;
  354. message.guild.members.forEach(m=>m.addRole( role1 ))
  355. return message.channel.send('**? All was given role** __'+role1.name+' __ .');
  356. } else if( args[0].toLowerCase() == "bots" ){
  357. if(!message.member.hasPermission('ADMINISTRATOR')) return;
  358. message.guild.members.filter(m=>m.user.bot).forEach(m=>m.addRole(role1))
  359. return message.channel.send('**? Bots was given role** __'+role1.name+' __ .');
  360. } else if( args[0].toLowerCase() == "humans" ){
  361. if(!message.member.hasPermission('ADMINISTRATOR')) return;
  362. message.guild.members.filter(m=>!m.user.bot).forEach(m=>m.addRole(role1))
  363. return message.channel.send('**? Humans was given role** __'+role1.name+' __ .');
  364. }
  365. }
  366. });
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375. //______________________________HCHANNEL__________________________________
  376. //______________________________HCHANNEL__________________________________
  377. //______________________________HCHANNEL__________________________________
  378.  
  379.  
  380.  
  381. client.on('ready', () => {
  382. console.log('I am ready!');
  383. });
  384.  
  385. client.on('message', message => {
  386.  
  387. if(message.content === prefix + "hchannel") {
  388. if (!message.channel.guild) return;
  389. if(!message.member.hasPermission('ADMINISTRATOR')) return message.reply('You Dont Have Perms :x:');
  390. message.channel.overwritePermissions(message.guild.id, {
  391. READ_MESSAGES: false
  392. })
  393. message.channel.send('Channel Hided Successfully ! :white_check_mark: ')
  394. }
  395. });
  396.  
  397.  
  398. client.on('message', message => {
  399.  
  400. if(message.content === prefix + "schannel") {
  401. if (!message.channel.guild) return;
  402. if(!message.member.hasPermission('ADMINISTRATOR')) return message.reply(':x:');
  403. message.channel.overwritePermissions(message.guild.id, {
  404. READ_MESSAGES: true
  405. })
  406. message.channel.send('Done ')
  407. }
  408. });
  409.  
  410.  
  411.  
  412. //______________________________MUTEC__________________________________
  413. //______________________________MUTEC__________________________________
  414. //______________________________MUTEC__________________________________
  415.  
  416.  
  417. client.on('message', message => {
  418.  
  419. if(message.content === prefix + "mutec") {
  420. if (!message.channel.guild) return;
  421.  
  422. if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.reply(' **You Dont Have Perms**');
  423. message.channel.overwritePermissions(message.guild.id, {
  424. SEND_MESSAGES: false
  425.  
  426. }).then(() => {
  427. message.reply("**:white_check_mark: Success Has Been Locked Channel**")
  428. });
  429. }
  430. if(message.content === prefix + "unmutec") {
  431. if (!message.channel.guild) return;
  432.  
  433. if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.reply('**You Dont Have Perms**');
  434. message.channel.overwritePermissions(message.guild.id, {
  435. SEND_MESSAGES: true
  436.  
  437. }).then(() => {
  438. message.reply("**:white_check_mark: Success Has Been UnLocked Channel**")
  439. });
  440. }
  441.  
  442. });
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. //______________________________MOVE__________________________________
  451. //______________________________MOVE__________________________________
  452. //______________________________MOVE__________________________________
  453.  
  454.  
  455. client.on('message', message => {
  456.  
  457. if (!message.channel.guild) return;
  458. if(message.content.startsWith(prefix + 'move')) {
  459. if (message.member.hasPermission("MOVE_MEMBERS")) {
  460. if (message.mentions.users.size === 0) {
  461. return message.channel.send("``Use : " +prefix+ "move @User``")
  462. }
  463. if (message.member.voiceChannel != null) {
  464. if (message.mentions.members.first().voiceChannel != null) {
  465. var authorchannel = message.member.voiceChannelID;
  466. var usermentioned = message.mentions.members.first().id;
  467. var embed = new Discord.RichEmbed()
  468. .setTitle("Succes!")
  469. .setColor("#000000")
  470. .setDescription(`? You Have Moved <@${usermentioned}> To Your Channel`)
  471. var embed = new Discord.RichEmbed()
  472. .setTitle(`You are Moved in ${message.guild.name}`)
  473. .setColor("RANDOM")
  474. .setDescription(`**<@${message.author.id}> Moved You To His Channel!\nServer --> ${message.guild.name}**`)
  475. message.guild.members.get(usermentioned).setVoiceChannel(authorchannel).then(m => message.channel.send(embed))
  476. message.guild.members.get(usermentioned).send(embed)
  477. } else {
  478. message.channel.send("`You Cant Move"+ message.mentions.members.first() +" `The User Should Be In channel To Move It`")
  479. }
  480. } else {
  481. message.channel.send("**``You Should Be In Room Voice To Move SomeOne``**")
  482. }
  483. } else {
  484. message.react("?")
  485. }}});
  486.  
  487.  
  488. client.on('message', message => {
  489.  
  490. if(message.content.startsWith(prefix + 'mvall')) {
  491. if (!message.member.hasPermission("MOVE_MEMBERS")) return message.channel.send('**:x: You Dont Have Perms `MOVE_MEMBERS`**');
  492. if(!message.guild.member(client.user).hasPermission("MOVE_MEMBERS")) return message.reply("**:x: I Dont Have Perms `MOVE_MEMBERS`**");
  493. if (message.member.voiceChannel == null) return message.channel.send(`**You Have To Be In Room Voice**`)
  494. var author = message.member.voiceChannelID;
  495. var m = message.guild.members.filter(m=>m.voiceChannel)
  496. message.guild.members.filter(m=>m.voiceChannel).forEach(m => {
  497. m.setVoiceChannel(author)
  498. })
  499. message.channel.send(`**:white_check_mark: Success Moved All To Your Channel**`)
  500.  
  501.  
  502. }
  503. });
  504.  
  505.  
  506.  
  507.  
  508. //__________________________________DC,DR_________________________________
  509. //__________________________________DC,DR_________________________________
  510. //__________________________________DC,DR_________________________________
  511.  
  512.  
  513.  
  514. client.on('message', omar => {
  515.  
  516. if(omar.content.split(' ')[0] == prefix + 'dc') { // delete all channels
  517. if (!omar.channel.guild) return;
  518. if(!omar.guild.member(omar.author).hasPermission("MANAGE_CHANNELS")) return omar.reply("**You Don't Have ` MANAGE_CHANNELS ` Permission**");
  519. if(!omar.guild.member(client.user).hasPermission("MANAGE_CHANNELS")) return omar.reply("**I Don't Have ` MANAGE_CHANNELS ` Permission**");
  520. omar.guild.channels.forEach(m => {
  521. m.delete();
  522. });// omar jedol / Codes
  523. }// omar jedol / Codes
  524. if(omar.content.split(' ')[0] == prefix + 'dr') { // delete all roles
  525. if (!omar.channel.guild) return;
  526. if(!omar.guild.member(omar.author).hasPermission("MANAGE_ROLES_OR_PERMISSIONS")) return omar.reply("**You Don't Have ` MANAGE_ROLES_OR_PERMISSIONS ` Permission**");
  527. if(!omar.guild.member(client.user).hasPermission("MANAGE_ROLES_OR_PERMISSIONS")) return omar.reply("**I Don't Have ` MANAGE_ROLES_OR_PERMISSIONS ` Permission**");
  528. omar.guild.roles.forEach(m => {
  529. m.delete();
  530. });// omar jedol / Codes
  531. omar.reply("? `Success Deleted All Roles - Ranks`")
  532. }// omar jedol / Codes
  533. });
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540. //_____________________________________TICKET_____________________________________//
  541. //_____________________________________TICKET_____________________________________//
  542. //_____________________________________TICKET_____________________________________//
  543.  
  544.  
  545. let mtickets = true;
  546. let tchannels = [];
  547. let current = 0;
  548. const hero = new Discord.Client();
  549.  
  550.  
  551. client.on('message',async message => {
  552.  
  553. let CH = client.guilds.get(`${server}`).emojis.find(r => r.name === "check");
  554. let CR = client.guilds.get(`${server}`).emojis.find(r => r.name === "cross");
  555. if(message.author.bot || message.channel.type === 'dm') return;
  556. let args = message.content.split(" ");
  557. let author = message.author.id;
  558.  
  559.  
  560. if(args[0].toLowerCase() === prefix + `-help`) {
  561. if (!message.channel.guild) return;
  562. let embed = new Discord.RichEmbed()
  563. .setAuthor(message.author.username, message.author.avatarURL)
  564. .setThumbnail(message.author.avatarURL)
  565. .setColor("#36393e")
  566. .addField(`? \`${prefix}new\``, `» Usage : \`${prefix}new [Reason]\`\n» Description: **Creates a new ticket.**`)
  567. .addField(`? لإيقاف الأعضاء من عمل تكتات, \`${prefix}tickets\``, `» Syntax: \`${prefix}tickets [Disable/Enable]\`\n» Description: **لجعل جميع اعضاء السيرفر غير قادرون على عمل تكت.**`)
  568. .addField(`? لأقفال جميع التكتات المفتوحة, \`${prefix}closeall\``, `» Syntax: \`${prefix}closeall\`\n» Description: **لمسح جميع رومات التكتات المفتوحة في السيرفر**`)
  569. .addField(`? لقفل التكت المفتوح, \`${prefix}close\``, `» Syntax: \`${prefix}close\`\n» Description: **لأقفال تكت.**\n`)
  570. await message.channel.send(`${CH}, **هذه قائمة بجميع اوامر البووت.**`);
  571. await message.channel.send(embed);
  572. } else if(args[0].toLowerCase() === `${prefix}new`) {
  573. if(mtickets === false) return message.channel.send(`**${CR} | Sorry , but tickets are disabled right now.**`);
  574. if(!message.guild.me.hasPermission("MANAGE_CHANNELS")) return message.channel.send(`**${CR} | The Bot don't have a permissions to create a ticket. **`);
  575. if (!message.guild.roles.exists("name", "ticket")) return message.channel.send(`**${CR} | You have to create a role with the name \`ticket\` .**`);
  576. console.log(current);
  577. let openReason = " ";
  578. current++;
  579. message.guild.createChannel(`ticket-${current}`, 'text').then(c => {
  580. tchannels.push(c.id);
  581. const reason = message.content.split(" ").slice(1).join(" ");
  582.  
  583. let role = message.guild.roles.find("name", "ticket");
  584. let role2 = message.guild.roles.find("name", "@everyone");
  585. // let role3 = message.guild.roles.find("name", "Blacklist");
  586. c.overwritePermissions(role, {
  587. SEND_MESSAGES: true,
  588. READ_MESSAGES: true
  589. });
  590. c.overwritePermissions(role2, {
  591. SEND_MESSAGES: false,
  592. READ_MESSAGES: false
  593. });
  594. c.overwritePermissions(message.author, {
  595. SEND_MESSAGES: true,
  596. READ_MESSAGES: true
  597. });
  598.  
  599. const embed1 = new Discord.RichEmbed()
  600.  
  601. //.setFooter('Requested by '+message.author.username, message.author.avatarURL)
  602. .setDescription(`**${CH} | Created Your ticket , <#${c.id}> .**`)
  603.  
  604. .setColor(0x36393e)
  605. message.channel.sendEmbed(embed1);
  606. if (!args)return;
  607. //if(args[1]) openReason = `\nسبب فتح التكت , **${args.slice(1).join(" ")}** "`;
  608. //message.channel.send(`**${CH} | Created Your ticket , <#${c.id}> .**`);
  609. const embed = new Discord.RichEmbed()
  610. //.setFooter('Requested by '+message.author.username, message.author.avatarURL)
  611. .setColor(0x36393e)
  612. /* .addField(`Hey ${message.author.username}!`, `**
  613. Please wait until our \`Support Team\` answer you.
  614. Try to explain why you opened this ticket with as much detail as possible.
  615. Open Reason : __ ${args.slice(1).join(" ")} __
  616. NOTE : If now anyone answered you , contact them on DM !
  617. **`) */
  618. .addField(`Hey ${message.author.username}!`, `**
  619. Please wait until our \`support team\` answer you.
  620. Try to explain why you opened this ticket with as much detail as possible.
  621. Open Reason : __ ${args.slice(1).join(" ")} __
  622. NOTE : If now anyone answered you , contact them on DM !
  623. **`)
  624. .setTimestamp();
  625. c.send({
  626. embed: embed
  627. });
  628. }).catch(console.error);
  629. //}
  630. /*
  631. if(args[1]) openReason = `\nسبب فتح التكت , " **${args.slice(1).join(" ")}** "`;
  632. let embed = new Discord.RichEmbed()
  633. .setAuthor(message.author.username, message.author.avatarURL)
  634. .setColor("#36393e")
  635. .setDescription(`**انتظر قليلا الى حين رد الادارة عليك**${openReason}`);
  636. c.send(`${message.author}`);
  637. c.send(embed); */
  638. //});
  639. } else if(args[0].toLowerCase() === `${prefix}tickets`) {
  640. if(!message.member.hasPermission("MANAGE_GUILD")) return message.channel.send(`**${CR} | You aren't from the server staff to use this command.**`);
  641. if(args[1] && args[1].toLowerCase() === "enable") {
  642. mtickets = true;
  643. message.channel.send(`**${CH} | Tickets now are enabled to create.**`);
  644. } else if(args[1] && args[1].toLowerCase() === "disable") {
  645. mtickets = false;
  646. message.channel.send(`**${CH} | Tickets now are disabled to create.**`);
  647. } else if(!args[1]) {
  648. if(mtickets === true) {
  649. mtickets = false;
  650. message.channel.send(`**${CH} | Tickets now are disabled to create.**`);
  651. } else if(mtickets === false) {
  652. mtickets = true;
  653. message.channel.send(`**${CH} | Tickets now are enabled to create.**`);
  654. }
  655. }
  656. } else if(args[0].toLowerCase() === `${prefix}close`) {
  657. if(!message.member.hasPermission("MANAGE_GUILD")) return message.channel.send(`**${CR} | You aren't from the server staff to use this command.**`);
  658. if(!message.channel.name.startsWith('ticket-') && !tchannels.includes(message.channel.id)) return message.channel.send(`${CR} | This command can be done only on tickts.`);
  659.  
  660. message.channel.send(`** | The ticket will be closed in \`5\` Secounds.**`);
  661. tchannels.splice( tchannels.indexOf(message.channel.id), 1 );
  662. setTimeout(() => message.channel.delete(), 5000);
  663. } else if(args[0].toLowerCase() === `${prefix}restart`) {
  664. if(!developers.includes(message.author.id)) return message.channel.send(`**${CR} | You aren't from the server staff to use this command.**`);
  665. message.channel.send(`**${CH} | Restarting ... **`);
  666. hero.destroy();
  667. } else if(args[0].toLowerCase() === `${prefix}closeall`) {
  668. let iq = 0;
  669. for(let q = 0; q < tchannels.length; q++) {
  670. let c = message.guild.channels.get(tchannels[q]);
  671. if(c) {
  672. c.delete();
  673. tchannels.splice( tchannels[q], 1 );
  674. iq++;
  675. }
  676. if(q === tchannels.length - 1 || q === tchannels.lengh + 1) {
  677. message.channel.send(`**${CH} | Closed \`${iq}\` Tickets.**`); //${CH}, **تم مسح \`${iq}\` من التكتات.**
  678. }
  679. }
  680. }
  681. });
  682.  
  683.  
  684.  
  685. //_____________________________________BC_____________________________________//
  686. //_____________________________________BC_____________________________________//
  687. //_____________________________________BC_____________________________________//
  688.  
  689. client.on('message', message => {
  690.  
  691. if (message.author.id === client.user.id) return;
  692. if (message.guild) {
  693. let embed = new Discord.RichEmbed()
  694. let args = message.content.split(' ').slice(1).join(' ');
  695. if(message.content.split(' ')[0] == prefix + 'obc') {
  696. if(!message.channel.guild) return message.reply('**:x: اسف لكن هذا الامر للسيرفرات فقط **');
  697. if (!args[1]) {
  698. return;
  699. }
  700. message.guild.members.forEach(m => {
  701. if(!message.member.hasPermission('sendMessage')) return;
  702. var bc = new Discord.RichEmbed()
  703. .addField('# | الرسالة ', args)
  704. .setThumbnail(message.guild.iconURL)
  705. .setColor('RANDOM')
  706. m.sendMessage(args)
  707. });
  708. if(!message.member.hasPermission('sendMessage')) return message.reply(":x: **ليس لديك صلاحية للنشر هنا**");
  709. const AziRo = new Discord.RichEmbed()
  710. .setColor('RANDOM')
  711. message.channel.sendEmbed(AziRo);
  712. }
  713. } else {
  714. return;
  715. }
  716. });
  717. client.on("message", message => {
  718.  
  719. if (message.content.startsWith(prefix + "bc")) {
  720. if (!message.member.hasPermission("sendMessage")) return;
  721. let args = message.content.split(" ").slice(1);
  722. var argresult = args.join(' ');
  723. message.guild.members.filter(m => m.presence.status !== 'offline').forEach(m => {
  724. m.send(`${argresult}\n ${m}`);
  725. })
  726. message.channel.send(`\`${message.guild.members.filter(m => m.presence.status !== 'online').size}\` : عدد الاعضاء المستلمين`);
  727. message.delete();
  728. };
  729. });
  730.  
  731.  
  732. //___________________________________________PROTECT___________________________________________
  733. //___________________________________________PROTECT___________________________________________
  734. //___________________________________________PROTECT___________________________________________
  735.  
  736.  
  737. let anti = JSON.parse(fs.readFileSync("./antigreff.json", "UTF8"));
  738. let con = JSON.parse(fs.readFileSync("./config.json", "UTF8"));
  739.  
  740. client.on("message", message => {
  741. if (!developers.includes(message.author.id)) return;
  742. if(!message.channel.guild) return;
  743. let user = anti[message.guild.id+message.author.id]
  744. let num = message.content.split(" ").slice(1).join(" ");
  745. if(!anti[message.guild.id+message.author.id]) anti[message.guild.id+message.author.id] = {
  746. actions: 0
  747. }
  748. if(!con[message.guild.id]) con[message.guild.id] = {
  749. banLimit: 3,
  750. chaDelLimit: 3,
  751. roleDelLimit: 3,
  752. kickLimits: 3,
  753. roleCrLimits: 3,
  754. time: 30
  755. }
  756. if(message.content.startsWith(prefix + "limit")) {
  757.  
  758.  
  759. if(!message.member.hasPermission('MANAGE_GUILD')) return;
  760. if(message.content.startsWith(prefix + "limitbans")) {
  761. if(!num) return message.channel.send("**? | Supply a number !**");
  762. if(isNaN(num)) return message.channel.send("**? | Supply a number !**");
  763. con[message.guild.id].banLimit = num;
  764. message.channel.send(`**? | Changed bans limit to : ${con[message.guild.id].banLimit}.**`)
  765. }
  766. if(message.content.startsWith(prefix + "limitkicks")) {
  767. if(!num) return message.channel.send("**? | Supply a number !**");
  768. if(isNaN(num)) return message.channel.send("**? | Supply a number !**");
  769. con[message.guild.id].kickLimits = num;
  770. message.channel.send(`**? | Changed kicks limit to : ${con[message.guild.id].kickLimits}.**`)
  771. }
  772. if(message.content.startsWith(prefix + "limitroleD")) {
  773. if(!num) return message.channel.send("**? | Supply a number !**");
  774. if(isNaN(num)) return message.channel.send("**? | Supply a number !**");
  775. con[message.guild.id].roleDelLimit = num;
  776. message.channel.send(`**? | Changed Role Deleting limit to : ${con[message.guild.id].roleDelLimit}.**`)
  777. }
  778. if(message.content.startsWith(prefix + "limitroleC")) {
  779. if(!num) return message.channel.send("**? | Supply a number !**");
  780. if(isNaN(num)) return message.channel.send("**? | Supply a number !**");
  781. con[message.guild.id].roleCrLimits = num;
  782. message.channel.send(`**? | Changed Role Creation limit to : ${con[message.guild.id].roleCrLimits}.**`)
  783. }
  784. if(message.content.startsWith(prefix + "limitchannelD")) {
  785. if(!num) return message.channel.send("**? | Supply a number !**");
  786. if(isNaN(num)) return message.channel.send("**? | Supply a number !**");
  787. con[message.guild.id].chaDelLimit = num;
  788. message.channel.send(`**? | Changed Channel Deleting limit to : ${con[message.guild.id].chaDelLimit}.**`)
  789. }
  790. if(message.content.startsWith(prefix + "limittimes")) {
  791. if(!num) return message.channel.send("**? | Supply a number !**");
  792. if(isNaN(num)) return message.channel.send("**? | Supply a number !**");
  793. con[message.guild.id].time = num;
  794. message.channel.send(`**? | Changed Times limit to : ${con[message.guild.id].time}.**`)
  795. }
  796. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  797. if(e) throw e;
  798. });
  799. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  800. if(e) throw e;
  801. });
  802. }
  803. });
  804. client.on("channelDelete", async channel => {
  805. const entry1 = await channel.guild.fetchAuditLogs({type: 'CHANNEL_DELETE'}).then(audit => audit.entries.first())
  806. console.log(entry1.executor.username)
  807. const entry = entry1.executor
  808. if(!con[channel.guild.id]) con[channel.guild.id] = {
  809. banLimit: 3,
  810. chaDelLimit: 3,
  811. roleDelLimit: 3,
  812. kickLimits: 3,
  813. roleCrLimits: 3
  814. }
  815. if(!anti[channel.guild.id+entry.id]) {
  816. anti[channel.guild.id+entry.id] = {
  817. actions: 1
  818. }
  819. setTimeout(() => {
  820. anti[channel.guild.id+entry.id].actions="0"
  821. }, con[channel.guild.id].time*1000)
  822. } else {
  823. anti[channel.guild.id+entry.id].actions = Math.floor(anti[channel.guild.id+entry.id].actions+1)
  824. console.log("TETS");
  825. setTimeout(() => {
  826. anti[channel.guild.id+entry.id].actions="0"
  827. }, con[channel.guild.id].time*1000)
  828. if(anti[channel.guild.id+entry.id].actions >= con[channel.guild.id].chaDelLimit) {
  829. channel.guild.members.get(entry.id).ban().catch(e => channel.guild.owner.send(`**? | ${entry.username} | Deleted Many Channels on your server! **`))
  830. anti[channel.guild.id+entry.id].actions = "0"
  831. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  832. if(e) throw e;
  833. });
  834. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  835. if(e) throw e;
  836. });
  837. }
  838. }
  839.  
  840. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  841. if(e) throw e;
  842. });
  843. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  844. if(e) throw e;
  845. });
  846. });
  847.  
  848. client.on("roleDelete", async channel => {
  849. const entry1 = await channel.guild.fetchAuditLogs({type: 'ROLE_DELETE'}).then(audit => audit.entries.first())
  850. console.log(entry1.executor.username)
  851. const entry = entry1.executor
  852. if(!con[channel.guild.id]) con[channel.guild.id] = {
  853. banLimit: 3,
  854. chaDelLimit: 3,
  855. roleDelLimit: 3,
  856. kickLimits: 3,
  857. roleCrLimits: 3
  858. }
  859. if(!anti[channel.guild.id+entry.id]) {
  860. anti[channel.guild.id+entry.id] = {
  861. actions: 1
  862. }
  863. setTimeout(() => {
  864. anti[channel.guild.id+entry.id].actions="0"
  865. }, con[channel.guild.id].time*1000)
  866. } else {
  867. anti[channel.guild.id+entry.id].actions = Math.floor(anti[channel.guild.id+entry.id].actions+1)
  868. console.log("TETS");
  869. setTimeout(() => {
  870. anti[channel.guild.id+entry.id].actions="0"
  871. }, con[channel.guild.id].time*1000)
  872. if(anti[channel.guild.id+entry.id].actions >= con[channel.guild.id].roleDelLimit) {
  873. channel.guild.members.get(entry.id).ban().catch(e => channel.guild.owner.send(`**? | ${entry.username} | Deleted Many Roles on your server! **`))
  874. anti[channel.guild.id+entry.id].actions = "0"
  875. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  876. if(e) throw e;
  877. });
  878. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  879. if(e) throw e;
  880. });
  881. }
  882. }
  883.  
  884. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  885. if(e) throw e;
  886. });
  887. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  888. if(e) throw e;
  889. });
  890. });
  891.  
  892. client.on("roleCreate", async channel => {
  893. const entry1 = await channel.guild.fetchAuditLogs({type: 'ROLE_CREATE'}).then(audit => audit.entries.first())
  894. console.log(entry1.executor.username)
  895. const entry = entry1.executor
  896. if(!con[channel.guild.id]) con[channel.guild.id] = {
  897. banLimit: 3,
  898. chaDelLimit: 3,
  899. roleDelLimit: 3,
  900. kickLimits: 3,
  901. roleCrLimits: 3
  902. }
  903. if(!anti[channel.guild.id+entry.id]) {
  904. anti[channel.guild.id+entry.id] = {
  905. actions: 1
  906. }
  907. setTimeout(() => {
  908. anti[channel.guild.id+entry.id].actions="0"
  909. }, con[channel.guild.id].time*1000)
  910. } else {
  911. anti[channel.guild.id+entry.id].actions = Math.floor(anti[channel.guild.id+entry.id].actions+1)
  912. console.log("TETS");
  913. setTimeout(() => {
  914. anti[channel.guild.id+entry.id].actions="0"
  915. }, con[channel.guild.id].time*1000)
  916. if(anti[channel.guild.id+entry.id].actions >= con[channel.guild.id].roleCrLimits) {
  917. channel.guild.members.get(entry.id).ban().catch(e => channel.guild.owner.send(`**? | ${entry.username} | Created Many Roles on your server! **`))
  918. anti[channel.guild.id+entry.id].actions = "0"
  919. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  920. if(e) throw e;
  921. });
  922. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  923. if(e) throw e;
  924. });
  925. }
  926. }
  927.  
  928. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  929. if(e) throw e;
  930. });
  931. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  932. if(e) throw e;
  933. });
  934. });
  935.  
  936. client.on("guildBanAdd", async (guild, user) => {
  937. const entry1 = await channel.guild.fetchAuditLogs({type: 'MEMBER_BAN_ADD'}).then(audit => audit.entries.first())
  938. console.log(entry1.executor.username)
  939. const entry = entry1.executor
  940. if(!con[guild.id]) con[guild.id] = {
  941. banLimit: 3,
  942. chaDelLimit: 3,
  943. roleDelLimit: 3,
  944. kickLimits: 3,
  945. roleCrLimits: 3
  946. }
  947. if(!anti[guild.id+entry.id]) {
  948. anti[guild.id+entry.id] = {
  949. actions: 1
  950. }
  951. setTimeout(() => {
  952. anti[guild.id+entry.id].actions="0"
  953. }, con[guild.id].time*1000)
  954. } else {
  955. anti[guild.id+entry.id].actions = Math.floor(anti[guild.id+entry.id].actions+1)
  956. console.log("TETS");
  957. setTimeout(() => {
  958. anti[guild.id+entry.id].actions="0"
  959. }, con[guild.id].time*1000)
  960. if(anti[guild.id+entry.id].actions >= con[guild.id].banLimit) {
  961. channel.members.get(entry.id).ban().catch(e => channel.owner.send(`**? | ${entry.username} | Banned Many Members on your server! **`))
  962. anti[guild.id+entry.id].actions = "0"
  963. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  964. if(e) throw e;
  965. });
  966. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  967. if(e) throw e;
  968. });
  969. }
  970. }
  971.  
  972. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  973. if(e) throw e;
  974. });
  975. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  976. if(e) throw e;
  977. });
  978. });
  979.  
  980. client.on("guildKickAdd", async (guild, user) => {
  981. const entry1 = await channel.fetchAuditLogs({type: 'MEMBER_KICK'}).then(audit => audit.entries.first())
  982. console.log(entry1.executor.username)
  983. const entry = entry1.executor
  984. if(!con[guild.id]) con[guild.id] = {
  985. banLimit: 3,
  986. chaDelLimit: 3,
  987. roleDelLimit: 3,
  988. kickLimits: 3,
  989. roleCrLimits: 3
  990. }
  991. if(!anti[guild.id+entry.id]) {
  992. anti[guild.id+entry.id] = {
  993. actions: 1
  994. }
  995. setTimeout(() => {
  996. anti[guild.id+entry.id].actions="0"
  997. }, con[guild.id].time*1000)
  998. } else {
  999. anti[guild.id+entry.id].actions = Math.floor(anti[guild.id+entry.id].actions+1)
  1000. console.log("TETS");
  1001. setTimeout(() => {
  1002. anti[guild.id+entry.id].actions="0"
  1003. }, con[guild.id].time*1000)
  1004. if(anti[guild.id+entry.id].actions >= con[guild.id].banLimit) {
  1005. channel.members.get(entry.id).ban().catch(e => channel.owner.send(`**? | ${entry.username} | Kicked Many Members on your server! **`))
  1006. anti[guild.id+entry.id].actions = "0"
  1007. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  1008. if(e) throw e;
  1009. });
  1010. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  1011. if(e) throw e;
  1012. });
  1013. }
  1014. }
  1015.  
  1016. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  1017. if(e) throw e;
  1018. });
  1019. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  1020. if(e) throw e;
  1021. });
  1022. });
  1023.  
  1024. client.on("guildMemberRemove", async member => {
  1025. const entry1 = await member.guild.fetchAuditLogs().then(audit => audit.entries.first())
  1026. if(entry1.action === "MEMBER_KICK") {
  1027. const entry2 = await member.guild.fetchAuditLogs({type: "MEMBER_KICK"}).then(audit => audit.entries.first())
  1028. const entry = entry2.executor;
  1029. if(!con[member.guild.id]) con[guild.id] = {
  1030. banLimit: 3,
  1031. chaDelLimit: 3,
  1032. roleDelLimit: 3,
  1033. kickLimits: 3,
  1034. roleCrLimits: 3
  1035. }
  1036. if(!anti[member.guild.id+entry.id]) {
  1037. anti[member.guild.id+entry.id] = {
  1038. actions: 1
  1039. }
  1040. setTimeout(() => {
  1041. anti[member.guild.id+entry.id].actions="0"
  1042. }, con[member.guild.id].time*1000)
  1043. } else {
  1044. anti[member.guild.id+entry.id].actions = Math.floor(anti[member.guild.id+entry.id].actions+1)
  1045. console.log("TETS");
  1046. setTimeout(() => {
  1047. anti[member.guild.id+entry.id].actions="0"
  1048. }, con[member.guild.id].time*1000)
  1049. if(anti[member.guild.id+entry.id].actions >= con[member.guild.id].kickLimits) {
  1050. member.members.get(entry.id).ban().catch(e => member.owner.send(`**? | ${entry.username} | Kicked Many Members on your server! **`))
  1051. anti[member.guild.id+entry.id].actions = "0"
  1052. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  1053. if(e) throw e;
  1054. });
  1055. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  1056. if(e) throw e;
  1057. });
  1058. }
  1059. }
  1060.  
  1061. fs.writeFile("./config.json", JSON.stringify(con, null, 2), function(e) {
  1062. if(e) throw e;
  1063. });
  1064. fs.writeFile("./antigreff.json", JSON.stringify(anti, null, 2), function(e) {
  1065. if(e) throw e;
  1066. });
  1067. }
  1068.  
  1069. })
  1070. client.on('message',async message => {
  1071. var room;
  1072. var title;
  1073. var duration;
  1074. var gMembers;
  1075. var filter = m => m.author.id === message.author.id;
  1076. if(message.content.startsWith(prefix + "giveaway")) {
  1077. //return message.channel.send(':heavy_multiplication_x:| **هذا الامر معطل حاليا.. ``حاول في وقت لاحق``**');
  1078. if(!message.guild.member(message.author).hasPermission('MANAGE_GUILD')) return message.channel.send(':heavy_multiplication_x:| **يجب أن يكون لديك خاصية التعديل على السيرفر**');
  1079. message.channel.send(`:eight_pointed_black_star:| **منشن الروم الذي تريد به القيف اواي**`).then(msgg => {
  1080. message.channel.awaitMessages(filter, {
  1081. max: 1,
  1082. time: 20000,
  1083. errors: ['time']
  1084. }).then(collected => {
  1085. let room = message.guild.channels.find('name', collected.first().content);
  1086. if(!room) return message.channel.send(':heavy_multiplication_x:| **لم اقدر على ايجاد الروم المطلوب**');
  1087. room = collected.first().content;
  1088. collected.first().delete();
  1089. msgg.edit(':eight_pointed_black_star:| **اكتب مدة القيف اواي**').then(msg => {
  1090. message.channel.awaitMessages(filter, {
  1091. max: 1,
  1092. time: 20000,
  1093. errors: ['time']
  1094. }).then(collected => {
  1095. if(isNaN(collected.first().content)) return message.channel.send(':heavy_multiplication_x:| **يجب عليك ان تحدد وقت زمني صحيح.. ``يجب عليك اعادة كتابة الامر``**');
  1096. duration = collected.first().content * 60000;
  1097. collected.first().delete();
  1098. msgg.edit(':eight_pointed_black_star:| **واخيرا اكتب على ماذا تريد القيف اواي**').then(msg => {
  1099. message.channel.awaitMessages(filter, {
  1100. max: 1,
  1101. time: 20000,
  1102. errors: ['time']
  1103. }).then(collected => {
  1104. title = collected.first().content;
  1105. collected.first().delete();
  1106. try {
  1107. let giveEmbed = new Discord.RichEmbed()
  1108. .setAuthor(message.guild.name, message.guild.iconURL)
  1109. .setTitle(title)
  1110. .setDescription(`المدة : ${duration / 60000} دقائق`)
  1111. .setFooter(message.author.username, message.author.avatarURL);
  1112. message.guild.channels.find('name', room).send(giveEmbed).then(m => {
  1113. let re = m.react('??');
  1114. setTimeout(() => {
  1115. let users = m.reactions.get("??").users;
  1116. let list = users.array().filter(u => u.id !== m.author.id);
  1117. let gFilter = list[Math.floor(Math.random() * list.length) + 0];
  1118. if(users.size === 1) gFilter = '**لم يتم التحديد**';
  1119. let endEmbed = new Discord.RichEmbed()
  1120. .setAuthor(message.author.username, message.author.avatarURL)
  1121. .setTitle(title)
  1122. .addField('انتهى القيف اواي !',`الفائز هو : ${gFilter}`)
  1123. .setFooter(message.guild.name, message.guild.iconURL);
  1124. m.edit(endEmbed);
  1125. },duration);
  1126. });
  1127. msgg.edit(`:heavy_check_mark:| **تم اعداد القيف اواي**`);
  1128. } catch(e) {
  1129. msgg.edit(`:heavy_multiplication_x:| **لم اقدر على اعداد القيف اواي بسبب نقص الخصائص**`);
  1130. console.log(e);
  1131. }
  1132. });
  1133. });
  1134. });
  1135. });
  1136. });
  1137. });
  1138. }
  1139. });
  1140.  
  1141.  
  1142.  
  1143.  
  1144. //******************************************************************************************************
  1145. //******************************************************************************************************
  1146. //******************************************************************************************************
  1147. //******************************************************************************************************
  1148. //******************************************************************************************************
  1149. //******************************************************************************************************
  1150. //******************************************************************************************************
  1151. //******************************************************************************************************
  1152.  
  1153.  
  1154. client.on('message', message => {
  1155.  
  1156. if(message.content.startsWith(prefix +"server")){
  1157. if (!message.channel.guild) return;
  1158. var millis = new Date().getTime() - message.guild.createdAt.getTime();
  1159. var now = new Date();
  1160. dateFormat(now, 'dddd, mmmm dS, yyyy, h:MM:ss TT');
  1161. var verificationLevels = ['None', 'Low', 'Medium', 'Insane', 'Extreme'];
  1162. var days = millis / 1000 / 60 / 60 / 24;
  1163. let roles = client.guilds.get(message.guild.id).roles.map(r => r.name);
  1164. var embed = new Discord.RichEmbed()
  1165. .setAuthor(message.guild.name, message.guild.iconURL)
  1166. .addField("**?? Server ID:**", message.guild.id,true)
  1167. .addField("**?? Created On**", message.guild.createdAt.toLocaleString(),true)
  1168. .addField("**?? Owned by**",`${message.guild.owner.user.username}#${message.guild.owner.user.discriminator}`)
  1169. .addField("?? Members ",`[${message.guild.memberCount}]`,true)
  1170. .addField('**?? Channels **',`**${message.guild.channels.filter(m => m.type === 'text').size}**` + ' text | Voice '+ `**${message.guild.channels.filter(m => m.type === 'voice').size}** `,true)
  1171. .addField("**?? Others **" , message.guild.region,true)
  1172. .addField("** ?? Roles **",`**[${message.guild.roles.size}]** Role `,true)
  1173. .setColor('#000000')
  1174. message.channel.sendEmbed(embed)
  1175.  
  1176. }
  1177. });
  1178.  
  1179.  
  1180.  
  1181. //***********ID***********
  1182. //***********ID***********
  1183. //***********ID***********
  1184.  
  1185.  
  1186. client.on('message', message => {
  1187.  
  1188. if(message.content === prefix + "id"){
  1189. var embed = new Discord.RichEmbed()
  1190. .setTitle(message.author.tag, message.author.avatarURL)
  1191. .addField(`User`, message.author.username)
  1192. .addField(`Discrim`,`#`+ message.author.discriminator)
  1193. .addField(`Game`,message.author.presence.game ||"Idel.")
  1194. .addField(`Status`,message.author.presence.status)
  1195. message.channel.send(embed);
  1196. }
  1197. });
  1198.  
  1199.  
  1200. //***********USER***********
  1201. //***********USER***********
  1202. //***********USER***********
  1203.  
  1204. client.on('message', message => {
  1205. if (message.content.startsWith(prefix + "user")) {
  1206. var args = message.content.split(" ").slice(1);
  1207. let user = message.mentions.users.first();
  1208. var men = message.mentions.users.first();
  1209. var heg;
  1210. if(men) {
  1211. heg = men
  1212. } else {
  1213. heg = message.author
  1214. }
  1215. var mentionned = message.mentions.members.first();
  1216. var h;
  1217. if(mentionned) {
  1218. h = mentionned
  1219. } else {
  1220. h = message.member
  1221. }
  1222. moment.locale('en-TN');
  1223. var id = new Discord.RichEmbed()
  1224. .setAuthor(message.author.username, message.author.avatarURL)
  1225. .setColor("#707070")
  1226. .addField('Registered :', `${moment(heg.createdTimestamp).format('YYYY/M/D HH:mm:ss')} **\n** \`${moment(heg.createdTimestamp).fromNow()}\`` ,true)
  1227. .addField('Joined :', `${moment(h.joinedAt).format('YYYY/M/D HH:mm:ss')} \n \`${moment(h.joinedAt).fromNow()}\``, true)
  1228. .setThumbnail(heg.avatarURL);
  1229. message.channel.send(id)
  1230. }
  1231. });
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237. //***********IMAGE***********
  1238. //***********IMAGE***********
  1239. //***********IMAGE***********
  1240.  
  1241.  
  1242. client.on("message", message => {
  1243.  
  1244.  
  1245. if(!message.channel.guild) return;
  1246. if(message.author.bot) return;
  1247. if(message.content === prefix + "image"){
  1248. var embed = new Discord.RichEmbed()
  1249.  
  1250. .setTitle(`This is ** ${message.guild.name} ** Photo !`)
  1251. .setAuthor(message.author.username, message.guild.iconrURL)
  1252. .setColor("grey")
  1253. .setImage(message.guild.iconURL)
  1254. .setURL(message.guild.iconrURL)
  1255. .setTimestamp()
  1256.  
  1257. message.channel.send({embed});
  1258. }
  1259. });
  1260.  
  1261.  
  1262.  
  1263.  
  1264. //***********BOTS***********
  1265. //***********BOTS***********
  1266. //***********BOTS***********
  1267.  
  1268.  
  1269. client.on('message', message => {
  1270. if (!message.channel.guild) return;
  1271.  
  1272. if(message.content.startsWith(prefix + 'allbots')) {
  1273.  
  1274.  
  1275. if (message.author.bot) return;
  1276. let i = 1;
  1277. var botssize = message.guild.members.filter(m=>m.user.bot).map(m=>`${i++} - <@${m.id}>`);
  1278. var embed = new Discord.RichEmbed()
  1279. .setAuthor(message.author.tag, message.author.avatarURL)
  1280. .setDescription(`**Found ${message.guild.members.filter(m=>m.user.bot).size} bots in this Server**
  1281. ${botssize.join('\n')}`)
  1282. .setFooter(client.user.username, client.user.avatarURL)
  1283. .setTimestamp();
  1284. message.channel.send(embed)
  1285.  
  1286. }
  1287.  
  1288.  
  1289. });
  1290.  
  1291.  
  1292. //******************EMBED*************
  1293. //******************EMBED*************
  1294. //******************EMBED*************
  1295.  
  1296.  
  1297. client.on('message', message => {
  1298.  
  1299. if (message.author.bot) return;
  1300. if (!message.content.startsWith(prefix)) return;
  1301.  
  1302. let command = message.content.split(" ")[0];
  1303. command = command.slice(prefix.length);
  1304.  
  1305. let args = message.content.split(" ").slice(1);
  1306.  
  1307. if (command == "embed") {
  1308. if (!message.channel.guild) return message.reply('** This command only for servers **');
  1309. let say = new Discord.RichEmbed()
  1310. .setDescription(args.join(" "))
  1311. .setColor(0x23b2d6)
  1312. message.channel.sendEmbed(say);
  1313. message.delete();
  1314. }
  1315. });
  1316.  
  1317.  
  1318.  
  1319. //***********COUNT***********
  1320. //***********COUNT***********
  1321. //***********COUNT***********
  1322.  
  1323.  
  1324. client.on('message', message => {
  1325. if(message.content === prefix + 'count'){
  1326. message.channel.send(`**?? Member Count ? **\`${message.guild.memberCount}\`.
  1327. `)
  1328. }
  1329. });
  1330.  
  1331.  
  1332.  
  1333.  
  1334. //***********SAY***********
  1335. //***********SAY***********
  1336. //***********SAY***********
  1337.  
  1338.  
  1339.  
  1340. client.on("message", async message => {
  1341. if(!message.channel.guild) return;
  1342.  
  1343. if(message.content.startsWith(prefix + 'invites')) {
  1344. var nul = 0
  1345. var guild = message.guild
  1346. await guild.fetchInvites()
  1347. .then(invites => {
  1348. invites.forEach(invite => {
  1349. if (invite.inviter === message.author) {
  1350. nul+=invite.uses
  1351. }
  1352. });
  1353. });
  1354. if (nul > 0) {
  1355. console.log(`\n${message.author.tag} has ${nul} invites in ${guild.name}\n`)
  1356. var embed = new Discord.RichEmbed()
  1357. .setColor("#000000")
  1358. .addField(`${message.author.username}`, `لقد قمت بدعوة **${nul}** شخص`)
  1359. message.channel.send({ embed: embed });
  1360. return;
  1361. } else {
  1362. var embed = new Discord.RichEmbed()
  1363. .setColor("#000000")
  1364. .addField(`${message.author.username}`, `لم تقم بدعوة أي شخص لهذة السيرفر`)
  1365.  
  1366. message.channel.send({ embed: embed });
  1367. return;
  1368. }
  1369. }
  1370. if(message.content.startsWith(prefix + 'invite-codes')) {
  1371. let guild = message.guild
  1372. var codes = [""]
  1373. message.channel.send(":postbox: **لقد قمت بأرسال جميع روابط الدعوات التي قمت بأنشائها في الخاص**")
  1374. guild.fetchInvites()
  1375. .then(invites => {
  1376. invites.forEach(invite => {
  1377. if (invite.inviter === message.author) {
  1378. codes.push(`discord.gg/${invite.code}`)
  1379. }
  1380. })
  1381. }).then(m => {
  1382. if (codes.length < 0) {
  1383. var embed = new Discord.RichEmbed()
  1384. .setColor("#000000")
  1385. .addField(`Your invite codes in ${message.guild.name}`, `You currently don't have any active invites! Please create an invite and start inviting, then you will be able to see your codes here!`)
  1386. message.author.send({ embed: embed });
  1387. return;
  1388. } else {
  1389. var embed = new Discord.RichEmbed()
  1390. .setColor("#000000")
  1391. .addField(`Your invite codes in ${message.guild.name}`, `Invite Codes:\n${codes.join("\n")}`)
  1392. message.author.send({ embed: embed });
  1393. return;
  1394. }
  1395. })
  1396. }
  1397.  
  1398. });
  1399.  
  1400.  
  1401.  
  1402.  
  1403. //*******************GAMES***********************
  1404. //*******************GAMES***********************
  1405. //*******************GAMES***********************
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414. client.on("message", message => {
  1415. if (message.content === prefix + "help") {
  1416. message.channel.send(`**~~------------------------------~~
  1417.  
  1418. \`${prefix}public\` | الأوامر العامه
  1419. \`${prefix}mod\` |الأوامر الاداريه
  1420. \`${prefix}protect\` | أوامر الحمايه
  1421. \`${prefix}ticket\` | أوامر التيكت
  1422. \`${prefix}music\` | أوامر الميوزك
  1423. \`${prefix}games\` |أوامر الالعاب
  1424.  
  1425. ~~------------------------------~~**`)
  1426.  
  1427. }
  1428. });
  1429.  
  1430.  
  1431. //***************************MUSIC**************************
  1432. //***************************MUSIC**************************
  1433. //***************************MUSIC**************************
  1434.  
  1435.  
  1436. client.on("message", message => {
  1437. if (message.content === prefix + "music") {
  1438. message.channel.send(`**~~------------------------------~~
  1439.  
  1440. \`${prefix}play\` | play a song
  1441. \`${prefix}skip\` | skip the song
  1442. \`${prefix}pause\` |stop the song
  1443. \`${prefix}resume\` |continue the song
  1444. \`${prefix}join\` | join your room
  1445. \`${prefix}disconnect\` | leave your room
  1446. \`${prefix}queue\` |show playlist
  1447. \`${prefix}np\` | show currently song
  1448.  
  1449. ~~------------------------------~~**`)
  1450.  
  1451. }
  1452. });
  1453.  
  1454.  
  1455. client.on("message", message => {
  1456. if (message.content === prefix + "public") {
  1457. message.channel.send(`**~~------------------------------~~
  1458.  
  1459. \`${prefix}server\` | معلومات السيرفر
  1460. \`${prefix}id\` | معلومات عن حسابك
  1461. \`${prefix}user\` | معلومات أخرى عن حسابك
  1462. \`${prefix}avatar\` | صورتك الشخصيه
  1463. \`${prefix}image\` | صورة السيرفر
  1464. \`${prefix}ping\` | سرعة البوت
  1465. \`${prefix}allbots\` | جميع البوتات في سيرفرك
  1466. \`${prefix}embed\` | يضع اي شي تكتبه في امبد
  1467. \`${prefix}count\` | عدد اعضاء السيرفر
  1468. \`${prefix}invites\` | عدد دعواتك
  1469. \`${prefix}invite-codes\` | الراوبط التي قمت بانشائها
  1470. \`${prefix}topinv\` | توب انفايت
  1471. \`${prefix}report\` | للإبلاغ عن أحد
  1472.  
  1473. ~~------------------------------~~**`)
  1474.  
  1475. }
  1476. });
  1477.  
  1478.  
  1479. client.on("message", message => {
  1480. if (message.content === prefix + "mod") {
  1481. message.channel.send(`**~~------------------------------~~
  1482.  
  1483. \`${prefix}mute \` | اعطاء ميوت
  1484. \`${prefix}unmute\` | فك الميوت
  1485. \`${prefix}clear\` | مسح الشات
  1486. \`${prefix}kick\` | طرد عضو
  1487. \`${prefix}ban\` | حظر عضو
  1488. \`${prefix}kvoice\` | طرد صوتي
  1489. \`${prefix}role\` | اعطاء رتبه
  1490. \`${prefix}roleremove\` | ازالة رتبه
  1491. \`${prefix}hchannel\` | اخفاء الشات
  1492. \`${prefix}schannel\` | اظهار الشات
  1493. \`${prefix}mutec\` | قفل الشات
  1494. \`${prefix}unmutec\` | فك قفل الشات
  1495. \`${prefix}move\` | نقل عضو الى رومك
  1496. \`${prefix}mvall\` | نقل الجميع الى رومك
  1497. \`${prefix}dr\` | مسح جميع الرتب
  1498. \`${prefix}dc\` | مسح جميع الرومات
  1499. \`${prefix}report\` |للإبلاغ عن أحد
  1500. \`${prefix}giveaway\` |لعمل قيف اواي
  1501. \`${prefix}obc\` | رسالة جماعية للاونلاين
  1502. \`${prefix}bc\` | رسالة جماعية للكل
  1503.  
  1504. ~~------------------------------~~**`)
  1505.  
  1506. }
  1507. });
  1508.  
  1509.  
  1510.  
  1511. client.on("message", message => {
  1512. if (message.content === prefix + "protect") {
  1513. message.channel.send(`**~~------------------------------~~
  1514.  
  1515. \`${prefix}limitbans\` | وضع حد البان
  1516. \`${prefix}limitkicks\` | وضع حد الكيك
  1517. \`${prefix}limitsroleD\` | وضع حد مسح الرتب
  1518. \`${prefix}limitsroleC\` | وضع حد انشاء الرتب
  1519. \`${prefix}limitchannelD\`| وضع حد مسح الرومات
  1520. \`${prefix}limittime\` | وضع حد للوقت
  1521.  
  1522. ~~------------------------------~~**`)
  1523.  
  1524. }
  1525. });
  1526.  
  1527. client.on("message", message => {
  1528. if (message.content === prefix + "ticket") {
  1529. message.channel.send(`**~~------------------------------~~
  1530.  
  1531. \`${prefix}new\` | فتح تيكت جديده
  1532. \`${prefix}tickets enable/disable\` | ايقاف / تشغيل , التيكتات
  1533. \`${prefix}closeall\` | اغلاق جميع التيكتات المفتوحه
  1534. \`${prefix}close\` | اغلاق التيكت الحالي
  1535.  
  1536. ~~------------------------------~~**`)
  1537.  
  1538. }
  1539. });
  1540.  
  1541. /// AFK - Voice Room
  1542.  
  1543. client.on('ready', () => {
  1544. var x = client.channels.get("571331134395252750");
  1545. if (x) x.join();
  1546. });
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554. /// Ping !
  1555.  
  1556. client.on('message', async msg =>{
  1557. if (msg.author.bot) return undefined;
  1558. if (!msg.content.startsWith(prefix)) return undefined;
  1559.  
  1560. let args = msg.content.split(' ');
  1561.  
  1562. let command = msg.content.toLowerCase().split(" ")[0];
  1563. command = command.slice(prefix.length)
  1564.  
  1565. if(command === `ping`) {
  1566. let embed = new Discord.RichEmbed()
  1567. .setColor(3447003)
  1568. .setTitle("Pong!!")
  1569. .setDescription(`${client.ping} ms,`)
  1570. .setFooter(`Requested by | ${msg.author.tag}`);
  1571. msg.delete().catch(O_o=>{})
  1572. msg.channel.send(embed);
  1573. }
  1574. });
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580. /// Avatar !
  1581.  
  1582. client.on('message', async msg =>{
  1583. if (msg.author.bot) return undefined;
  1584. if (!msg.content.startsWith(prefix)) return undefined;
  1585.  
  1586. let args = msg.content.split(' ');
  1587.  
  1588. let command = msg.content.toLowerCase().split(" ")[0];
  1589. command = command.slice(prefix.length)
  1590.  
  1591. if(command === `avatar`){
  1592. if(msg.channel.type === 'dm') return msg.channel.send("Nope Nope!! u can't use avatar command in DMs (:")
  1593. let mentions = msg.mentions.members.first()
  1594. if(!mentions) {
  1595. let sicon = msg.author.avatarURL
  1596. let embed = new Discord.RichEmbed()
  1597. .setImage(msg.author.avatarURL)
  1598. .setColor("#ff0000")
  1599. msg.channel.send({embed})
  1600. } else {
  1601. let sicon = mentions.user.avatarURL
  1602. let embed = new Discord.RichEmbed()
  1603. .setColor("#ff0000")
  1604. .setImage(sicon)
  1605. msg.channel.send({embed})
  1606. }
  1607. };
  1608. });
  1609.  
  1610.  
  1611.  
  1612.  
  1613. client.on('message', function(message) {
  1614. if(message.content.startsWith(prefix + "report")) {
  1615. let messageArgs = message.content.split(" ").slice(1).join(" ");
  1616. let messageReason = message.content.split(" ").slice(2).join(" ");
  1617. if(!messageReason) return message.reply("**# Specify a reason!**");
  1618. let mUser = message.mentions.users.first();
  1619. if(!mUser) return message.channel.send("Couldn't find user.");
  1620. let Rembed = new Discord.RichEmbed()
  1621. .setTitle("`New Report!`")
  1622. .setThumbnail(message.author.avatarURL)
  1623. .addField("**# - Reported User:**",mUser,true)
  1624. .addField("**# - Reported User ID:**",mUser.id,true)
  1625. .addField("**# - Reason:**",messageReason,true)
  1626. .addField("**# - Channel:**",message.channel,true)
  1627. message.channel.send(Rembed)
  1628. message.channel.send("__Are you sure you want to send this to the Server owner??__").then(msg => {
  1629. msg.react("?")
  1630. msg.react("?")
  1631. .then(() => msg.react('?'))
  1632. .then(() =>msg.react('?'))
  1633. let reaction1Filter = (reaction, user) => reaction.emoji.name === '?' && user.id === message.author.id;
  1634. let reaction2Filter = (reaction, user) => reaction.emoji.name === '?' && user.id === message.author.id;
  1635.  
  1636. let reaction1 = msg.createReactionCollector(reaction1Filter, { time: 12000 });
  1637. let reaction2 = msg.createReactionCollector(reaction2Filter, { time: 12000 });
  1638. reaction1.on("collect", r => {
  1639. message.guild.owner.send(Rembed)
  1640. message.reply("**# - Done! ??**");
  1641. })
  1642. reaction2.on("collect", r => {
  1643. message.reply("**# - Canceled!**");
  1644. })
  1645. })
  1646. }
  1647. });
  1648.  
  1649.  
  1650. client.on('message',message =>{
  1651.  
  1652. if(message.content.startsWith(prefix + 'topinv')) {
  1653. message.guild.fetchInvites().then(i =>{
  1654. var invites = [];
  1655.  
  1656. i.forEach(inv =>{
  1657. var [invs,i]=[{},null];
  1658.  
  1659. if(inv.maxUses){
  1660. invs[inv.code] =+ inv.uses+"/"+inv.maxUses;
  1661. }else{
  1662. invs[inv.code] =+ inv.uses;
  1663. }
  1664. invites.push(`invite: ${inv.url} inviter: ${inv.inviter} \`${invs[inv.code]}\`;`);
  1665.  
  1666. });
  1667. var embed = new Discord.RichEmbed()
  1668. .setColor("#000000")
  1669. .setDescription(`${invites.join(`\n`)+'\n\n**By:** '+message.author}`)
  1670. .setThumbnail("https://cdn.discordapp.com/attachments/442414506430169098/489929808244113409/JPEG_20180913_232108.jpg")
  1671. message.channel.send({ embed: embed });
  1672.  
  1673. });
  1674.  
  1675. }
  1676. });
  1677.  
  1678.  
  1679.  
  1680. /// Music !!
  1681.  
  1682. client.on('message', async msg => {
  1683. if (msg.author.bot) return undefined;
  1684. if (!msg.content.startsWith(prefix)) return undefined;
  1685.  
  1686. const args = msg.content.split(' ');
  1687. const searchString = args.slice(1).join(' ');
  1688.  
  1689. const url = args[1] ? args[1].replace(/<(.+)>/g, '$1') : '';
  1690. const serverQueue = queue.get(msg.guild.id);
  1691.  
  1692. let command = msg.content.toLowerCase().split(" ")[0];
  1693. command = command.slice(prefix.length)
  1694.  
  1695. if (command === `play`) {
  1696. const voiceChannel = msg.member.voiceChannel;
  1697.  
  1698. if (!voiceChannel) return msg.channel.send("Join a Voice CHannel First.");
  1699.  
  1700. const permissions = voiceChannel.permissionsFor(msg.client.user);
  1701.  
  1702. if (!permissions.has('CONNECT')) {
  1703.  
  1704. return msg.channel.send("I don't have permissions to join this room");
  1705. }
  1706.  
  1707. if (!permissions.has('SPEAK')) {
  1708.  
  1709. return msg.channel.send("I can't speak in this room");
  1710. }
  1711.  
  1712. if (!permissions.has('EMBED_LINKS')) {
  1713.  
  1714. return msg.channel.sendMessage("I Don't have permissions to send link ?`EMBED_LINKS`")
  1715. }
  1716.  
  1717. if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
  1718.  
  1719. const playlist = await youtube.getPlaylist(url);
  1720. const videos = await playlist.getVideos();
  1721.  
  1722.  
  1723. for (const video of Object.values(videos)) {
  1724.  
  1725. const video2 = await youtube.getVideoByID(video.id);
  1726. await handleVideo(video2, msg, voiceChannel, true);
  1727. }
  1728. return msg.channel.send(`**${playlist.title}**, Just added to the queue!`);
  1729. } else {
  1730.  
  1731. try {
  1732.  
  1733. var video = await youtube.getVideo(url);
  1734.  
  1735. } catch (error) {
  1736. try {
  1737.  
  1738. var videos = await youtube.searchVideos(searchString, 5);
  1739. let index = 0;
  1740. const embed1 = new Discord.RichEmbed()
  1741. .setTitle(":mag_right: YouTube Search Results :")
  1742. .setDescription(`
  1743. ${videos.map(video2 => `${++index}. **${video2.title}**`).join('\n')}`)
  1744.  
  1745. .setColor("#ff0000")
  1746. msg.channel.sendEmbed(embed1).then(message =>{message.delete(20000)})
  1747.  
  1748. /////////////////
  1749. try {
  1750.  
  1751. var response = await msg.channel.awaitMessages(msg2 => msg2.content > 0 && msg2.content < 11, {
  1752. maxMatches: 1,
  1753. time: 15000,
  1754. errors: ['time']
  1755. });
  1756. } catch (err) {
  1757. console.error(err);
  1758. return msg.channel.send('Time out : you did not select a song');
  1759. }
  1760.  
  1761. const videoIndex = parseInt(response.first().content);
  1762. var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
  1763.  
  1764. } catch (err) {
  1765.  
  1766. console.error(err);
  1767. return msg.channel.send("I didn't find any results!");
  1768. }
  1769. }
  1770.  
  1771. return handleVideo(video, msg, voiceChannel);
  1772.  
  1773. }
  1774.  
  1775. } else if (command === `skip`) {
  1776.  
  1777. if (!msg.member.voiceChannel) return msg.channel.send("You Have to be in a Voice CHannel");
  1778. if (!serverQueue) return msg.channel.send("No Songs to skip");
  1779.  
  1780. serverQueue.connection.dispatcher.end(':fast_forward: Skipped');
  1781. return undefined;
  1782.  
  1783. } else if (command === `stop`) {
  1784.  
  1785. if (!msg.member.voiceChannel) return msg.channel.send("You Have to be in a Voice CHannel");
  1786. if (!serverQueue) return msg.channel.send("There is no Queue to stop!!");
  1787.  
  1788. serverQueue.songs = [];
  1789. serverQueue.connection.dispatcher.end('Song Stopped');
  1790. return undefined;
  1791.  
  1792. } else if (command === `vol`) {
  1793.  
  1794. if (!msg.member.voiceChannel) return msg.channel.send("You Have to be in a Voice CHannel");
  1795. if (!serverQueue) return msg.channel.send('This command works only when playing a video');
  1796. if (!args[1]) return msg.channel.send(`Volume changed to : **${serverQueue.volume}**`);
  1797.  
  1798. serverQueue.volume = args[1];
  1799. serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 50);
  1800.  
  1801. return msg.channel.send(`Volume is : **${args[1]}**`);
  1802.  
  1803. } else if (command === `np`) {
  1804.  
  1805. if (!serverQueue) return msg.channel.send('There is no Queue!');
  1806. const embedNP = new Discord.RichEmbed()
  1807. .setDescription(`Now playing **${serverQueue.songs[0].title}**`)
  1808. .setColor("#ff0000")
  1809. return msg.channel.sendEmbed(embedNP);
  1810.  
  1811. } else if (command === `queue`) {
  1812.  
  1813. if (!serverQueue) return msg.channel.send('There is no Queue!!');
  1814. let index = 0;
  1815. // // //
  1816. const embedqu = new Discord.RichEmbed()
  1817. .setTitle("The Queue Songs :")
  1818. .setDescription(`
  1819. ${serverQueue.songs.map(song => `${++index}. **${song.title}**`).join('\n')}
  1820. **Now playing :** **${serverQueue.songs[0].title}**`)
  1821. .setColor("#ff0000")
  1822. return msg.channel.sendEmbed(embedqu);
  1823. } else if (command === `pause`) {
  1824. if (serverQueue && serverQueue.playing) {
  1825. serverQueue.playing = false;
  1826. serverQueue.connection.dispatcher.pause();
  1827. return msg.channel.send('Stoped');
  1828. }
  1829. return msg.channel.send('waiting for resumeing the video');
  1830. } else if (command === "resume") {
  1831.  
  1832. if (serverQueue && !serverQueue.playing) {
  1833. serverQueue.playing = true;
  1834. serverQueue.connection.dispatcher.resume();
  1835. return msg.channel.send('Resumeing');
  1836.  
  1837. }
  1838. return msg.channel.send('Queue is empty!');
  1839. }
  1840.  
  1841. return undefined;
  1842. });
  1843.  
  1844. async function handleVideo(video, msg, voiceChannel, playlist = false) {
  1845. const serverQueue = queue.get(msg.guild.id);
  1846. console.log(video);
  1847.  
  1848.  
  1849. const song = {
  1850. id: video.id,
  1851. title: Util.escapeMarkdown(video.title),
  1852. url: `https://www.youtube.com/watch?v=${video.id}`
  1853. };
  1854. if (!serverQueue) {
  1855. const queueConstruct = {
  1856. textChannel: msg.channel,
  1857. voiceChannel: voiceChannel,
  1858. connection: null,
  1859. songs: [],
  1860. volume: 5,
  1861. playing: true
  1862. };
  1863. queue.set(msg.guild.id, queueConstruct);
  1864.  
  1865. queueConstruct.songs.push(song);
  1866.  
  1867. try {
  1868. var connection = await voiceChannel.join();
  1869. queueConstruct.connection = connection;
  1870. play(msg.guild, queueConstruct.songs[0]);
  1871. } catch (error) {
  1872. console.error(`I could not join the voice channel: ${error}!`);
  1873. queue.delete(msg.guild.id);
  1874. return msg.channel.send(`Can't join this channel: ${error}!`);
  1875. }
  1876. } else {
  1877. serverQueue.songs.push(song);
  1878. console.log(serverQueue.songs);
  1879. if (playlist) return undefined;
  1880. else return msg.channel.send(`**${song.title}**, Added the video to the queue.`);
  1881. }
  1882. return undefined;
  1883. }
  1884.  
  1885. function play(guild, song) {
  1886. const serverQueue = queue.get(guild.id);
  1887.  
  1888. if (!song) {
  1889. serverQueue.voiceChannel.leave();
  1890. queue.delete(guild.id);
  1891. return;
  1892. }
  1893. console.log(serverQueue.songs);
  1894.  
  1895. const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
  1896. .on('end', reason => {
  1897. if (reason === 'Stream is not generating quickly enough.') console.log('Song ended.');
  1898. else console.log(reason);
  1899. serverQueue.songs.shift();
  1900. play(guild, serverQueue.songs[0]);
  1901. })
  1902. .on('error', error => console.error(error));
  1903. dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
  1904.  
  1905. serverQueue.textChannel.send(`**${song.title}**, is now playing!`);
  1906. }
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913. client.on('ready', () => {
  1914.  
  1915. client.user.setStatus('dnd');
  1916. });
  1917.  
  1918. client.on('ready', () => {
  1919. console.log('I am ready!');
  1920. });
  1921.  
  1922.  
  1923.  
  1924. var adminprefix = '&'
  1925. client.on('message', message => {
  1926. var argresult = message.content.split(` `).slice(1).join(' ');
  1927. if (!developers.includes(message.author.id)) return;
  1928.  
  1929. if (message.content.startsWith(adminprefix + 'setg')) {
  1930. client.user.setGame(argresult);
  1931. message.channel.send(`BY !RG , ZEUS#9999 ${argresult}**`)
  1932. } else
  1933. if (message.content === (adminprefix + "leave")) {
  1934. message.guild.leave();
  1935. } else
  1936. if (message.content.startsWith(adminprefix + 'setw')) {
  1937. client.user.setActivity(argresult, {type:'WATCHING'});
  1938. message.channel.send(`BY !RG , ZEUS#9699 ${argresult}**`)
  1939. } else
  1940. if (message.content.startsWith(adminprefix + 'setl')) {
  1941. client.user.setActivity(argresult , {type:'LISTENING'});
  1942. message.channel.send(`BY !RG , ZEUS#9999 ${argresult}**`)
  1943. } else
  1944. if (message.content.startsWith(adminprefix + 'sets')) {
  1945. client.user.setGame(argresult, "https://www.twitch.tv/One");
  1946. message.channel.send(`BY !RG , ZEUS#9999`)
  1947. }
  1948. if (message.content.startsWith(adminprefix + 'setname')) {
  1949. client.user.setUsername(argresult).then
  1950. message.channel.send(`Changing The Name To ..**${argresult}** `)
  1951. } else
  1952. if (message.content.startsWith(adminprefix + 'setavatar')) {
  1953. client.user.setAvatar(argresult);
  1954. message.channel.send(`Changing The Avatar To :**${argresult}** `);
  1955. }
  1956. });
  1957.  
  1958. client.on('message',message =>{
  1959.  
  1960. if(message.content.startsWith(prefix + 'vip')) {////
  1961. message.channel.send(`**Your Premium Number is ${number}
  1962. Registeed for : <@${author}> ,,
  1963. developers : <@${dev}> **`)
  1964. }
  1965. });
  1966.  
  1967. client.on('message', message => {
  1968.  
  1969. var args = message.content.split(' ').slice(1);
  1970. if (message.content.startsWith(prefix + 'kickbot')) {
  1971. if (message.author.id !== `${dev}`) return message.channel.send("You are not authorized to use this command.");
  1972.  
  1973. var error17 = new Discord.RichEmbed().setColor("990033")
  1974. .setDescription('**Please enter a valid server ID.**')
  1975. .setColor(0xff0000)
  1976.  
  1977. var error18 = new Discord.RichEmbed().setColor("990033")
  1978. .setDescription('**You cannot kick the bot from this server!**')
  1979. .setColor(0xff0000)
  1980.  
  1981.  
  1982. if (isNaN(args[0])) return message.channel.send(error17).then(msg => {
  1983. msg.delete(9000)
  1984. });
  1985.  
  1986. //If tried kick bot from a main server (like for emote provider) will return error18
  1987. if (args[0] == `${server}`) return message.channel.send(error18).then(msg => {
  1988. msg.delete(9000)
  1989. });
  1990.  
  1991. client.guilds.get(args[0]).leave();
  1992. message.channel.send(`**Bot was been removed from server id [${args[0]}]**`)
  1993. }
  1994. });
  1995.  
  1996.  
  1997. client.on('message', message => {
  1998. if (message.content.startsWith(prefix + "guild")) {
  1999. if (message.author.id !== `${dev}`) return message.channel.send("You are not authorized to use this command.");
  2000. let string = '';
  2001.  
  2002. client.guilds.forEach(guild => {
  2003. string += '***Server Name:*** ' + guild.name + '\n' + '***Server ID:***` ' + guild.id + ' ` ' + '\n\n';
  2004.  
  2005. })
  2006.  
  2007. let botembed = new Discord.RichEmbed()
  2008. .setColor("#000FF")
  2009. .addField("Bot is On ", string)
  2010. .setTimestamp()
  2011. .setFooter("Command Ran By: " + message.author.username, message.author.avatarURL);
  2012. message.channel.send(botembed);
  2013. }
  2014. });
  2015.  
  2016. client.on('message', message => {
  2017. if (!guild.id === `${server}`) {
  2018. client.bot.guilds.leave();
  2019. }
  2020.  
  2021. });
  2022.  
  2023.  
  2024.  
  2025. client.on('message', message => {
  2026. if (message.author.bot) return undefined;
  2027. if (message.channel.type === "dm") { //if the channel is a DM channel
  2028. var args = message.content.split(" ").slice(0)
  2029. var args = args.slice(0).join(" ") //create the args
  2030.  
  2031.  
  2032.  
  2033. if (message.content.startsWith(prefix)) return
  2034. if (args.length > 256) return message.reply("حجم الرساله كبير جدا ! :/") //if the message contnt more than 256 character, what fields do not allow
  2035. var embed = new Discord.RichEmbed()
  2036. .setColor('RANDOM')
  2037. .addField(args, "Send by: " + message.author.username + " with the ID: " + message.author.id)
  2038. client.users.get(`${dev}`).send(embed) //send the embed in a specific channel
  2039. }
  2040.  
  2041.  
  2042. if (message.content.startsWith(prefix + "reply")) {
  2043. if (message.author.id !== `${dev}`) return message.reply('You cannot use that!')
  2044. var args = message.content.split(" ").slice(0)
  2045. var Rargs = message.content.split(" ").slice(2).join(" ")
  2046. var userID = args[1]
  2047. if (isNaN(args[1])) return message.reply("This is not an ID!") //if args is Not A Number!
  2048. var embed = new Discord.RichEmbed()
  2049. .setColor('RANDOM')
  2050. .setTitle("the staff answered you!")
  2051. .setDescription(Rargs)
  2052. client.users.get(userID).send(embed)
  2053. message.channel.send("Send!").catch(console.error) //send the message
  2054. //it may be that if the user has blocked your bot that it does not work
  2055. }
  2056.  
  2057. });
  2058.  
  2059.  
  2060. const welcome = JSON.parse(fs.readFileSync('./welcomer.json' , 'utf8'));
  2061. client.on('message', async message => {
  2062. let messageArray = message.content.split(" ");
  2063. if(message.content.startsWith(prefix + "setLeave")) {
  2064.  
  2065. let filter = m => m.author.id === message.author.id;
  2066. let thisMessage;
  2067. let thisFalse;
  2068.  
  2069. if(!message.member.hasPermission("MANAGE_GUILD")) return message.channel.send('You don\'t have permission').then(msg => {
  2070. msg.delete(4500);
  2071. message.delete(4500);
  2072. });
  2073.  
  2074. message.channel.send(':pencil: **| من فضلك اكتب الرساله الان... :pencil2: **').then(msg => {
  2075.  
  2076. message.channel.awaitMessages(filter, {
  2077. max: 1,
  2078. time: 90000,
  2079. errors: ['time']
  2080. })
  2081. .then(collected => {
  2082. collected.first().delete();
  2083. thisMessage = collected.first().content;
  2084. let boi;
  2085. msg.edit(':scroll: **| اكتب اسم الروم الان... :pencil2: **').then(msg => {
  2086.  
  2087. message.channel.awaitMessages(filter, {
  2088. max: 1,
  2089. time: 90000,
  2090. errors: ['time']
  2091. })
  2092. .then(collected => {
  2093. collected.first().delete();
  2094. boi = collected.first().content;
  2095. msg.edit('? **| تم الاعداد بنجاح... **').then(msg => {
  2096.  
  2097. message.channel.awaitMessages(filter, {
  2098. max: 1,
  2099. time: 90000,
  2100. errors: ['time']
  2101. })
  2102. let embed = new Discord.RichEmbed()
  2103. .setTitle('**Done The Leave Msg Code Has Been Setup**')
  2104. .addField('Message:', `${thisMessage}`)
  2105. .addField('Channel:', `${boi}`)
  2106. .setThumbnail(message.author.avatarURL)
  2107. .setFooter(`${client.user.username}`)
  2108. message.channel.sendEmbed(embed)
  2109. welcome[message.guild.id] = {
  2110. leavechannel: boi,
  2111. leavemsg: thisMessage,
  2112. onoff: 'On',
  2113. leave: 'On'
  2114. }
  2115. fs.writeFile("./welcomer.json", JSON.stringify(welcome), (err) => {
  2116. if (err) console.error(err)
  2117. })
  2118. }
  2119. )
  2120. })
  2121. })
  2122. })
  2123. })
  2124. }})
  2125.  
  2126. client.on('message', message => {
  2127. if (!message.channel.guild) return;
  2128.  
  2129. let room = message.content.split(" ").slice(1);
  2130. let findroom = message.guild.channels.find('name', `${room}`)
  2131. if(message.content.startsWith(prefix + "setWelcomer")) {
  2132. if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
  2133. if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
  2134. if(!room) return message.channel.send('Please Type The Channel Name')
  2135. if(!findroom) return message.channel.send('Cant Find This Channel')
  2136. let embed = new Discord.RichEmbed()
  2137. .setTitle('**Done The Welcome Code Has Been Setup**')
  2138. .addField('Channel:', `${room}`)
  2139. .addField('Requested By:', `${message.author}`)
  2140. .setThumbnail(message.author.avatarURL)
  2141. .setFooter(`${client.user.username}`)
  2142. message.channel.sendEmbed(embed)
  2143. welcome[message.guild.id] = {
  2144. channel: room,
  2145. onoff: 'On',
  2146. by: 'On',
  2147. dm: 'Off',
  2148. leave: 'Off'
  2149. }
  2150. fs.writeFile("./welcomer.json", JSON.stringify(welcome), (err) => {
  2151. if (err) console.error(err)
  2152. })
  2153. }})
  2154.  
  2155.  
  2156. client.on('message', message => {
  2157.  
  2158. if(message.content.startsWith(prefix + "toggleLeave")) {
  2159. if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
  2160. if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
  2161. if(!welcome[message.guild.id]) welcome[message.guild.id] = {
  2162. onoff: 'Off',
  2163. leave: 'Off'
  2164. }
  2165. if(welcome[message.guild.id].leave === 'Off') return [message.channel.send(`**The Leave Msg Is __????__ !**`), welcome[message.guild.id].leave = 'On']
  2166. if(welcome[message.guild.id].leave === 'On') return [message.channel.send(`**The Leave Msg Is __??????__ !**`), welcome[message.guild.id].leave = 'Off']
  2167. fs.writeFile("./welcome.json", JSON.stringify(welcome), (err) => {
  2168. if (err) console.error(err)
  2169. .catch(err => {
  2170. console.error(err);
  2171. });
  2172. })
  2173. }
  2174.  
  2175. })
  2176. client.on('message', message => {
  2177.  
  2178. if(message.content.startsWith(prefix + "toggleWelcome")) {
  2179. if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
  2180. if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
  2181. if(!welcome[message.guild.id]) welcome[message.guild.id] = {
  2182. onoff: 'Off'
  2183. }
  2184. if(welcome[message.guild.id].onff === 'Off') return [message.channel.send(`**The Welcome Is __????__ !**`), welcome[message.guild.id].onoff = 'On']
  2185. if(welcome[message.guild.id].onoff === 'On') return [message.channel.send(`**The Welcome Is __??????__ !**`), welcome[message.guild.id].onoff = 'Off']
  2186. fs.writeFile("./welcome.json", JSON.stringify(welcome), (err) => {
  2187. if (err) console.error(err)
  2188. .catch(err => {
  2189. console.error(err);
  2190. });
  2191. })
  2192. }
  2193.  
  2194. })
  2195.  
  2196.  
  2197.  
  2198. client.on('message', message => {
  2199.  
  2200. if(message.content.startsWith(prefix + "toggleDmwelcome")) {
  2201. if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
  2202. if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
  2203. if(!welcome[message.guild.id]) welcome[message.guild.id] = {
  2204. dm: 'Off'
  2205. }
  2206. if(welcome[message.guild.id].dm === 'Off') return [message.channel.send(`**The Welcome Dm Is __????__ !**`), welcome[message.guild.id].dm = 'On']
  2207. if(welcome[message.guild.id].dm === 'On') return [message.channel.send(`**The Welcome Dm Is __??????__ !**`), welcome[message.guild.id].dm = 'Off']
  2208. fs.writeFile("./welcome.json", JSON.stringify(welcome), (err) => {
  2209. if (err) console.error(err)
  2210. .catch(err => {
  2211. console.error(err);
  2212. });
  2213. })
  2214. }
  2215.  
  2216. })
  2217.  
  2218. client.on('message', message => {
  2219.  
  2220. if(message.content.startsWith(prefix + "toggleInvitedby")) {
  2221. if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
  2222. if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
  2223. if(!welcome[message.guild.id]) welcome[message.guild.id] = {
  2224. by: 'Off'
  2225. }
  2226. if(welcome[message.guild.id].by === 'Off') return [message.channel.send(`**The Invited By Is __????__ !**`), welcome[message.guild.id].by = 'On']
  2227. if(welcome[message.guild.id].by === 'On') return [message.channel.send(`**The Invited By Is __??????__ !**`), welcome[message.guild.id].by = 'Off']
  2228. fs.writeFile("./welcome.json", JSON.stringify(welcome), (err) => {
  2229. if (err) console.error(err)
  2230. .catch(err => {
  2231. console.error(err);
  2232. });
  2233. })
  2234. }
  2235.  
  2236. })
  2237. client.on("guildMemberRemove", member => {
  2238. if(!welcome[member.guild.id]) welcome[member.guild.id] = {
  2239. onoff: 'Off',
  2240. leave: 'Off'
  2241. }
  2242.  
  2243. if(welcome[member.guild.id].onoff === 'Off') return;
  2244. if(welcome[member.guild.id].leave === 'Off') return;
  2245. let welcomer = member.guild.channels.find('name', `${welcome[member.guild.id].leavechannel}`)
  2246. if(!welcomer) return;
  2247. welcomer.send(`${member} ${welcome[member.guild.id].leavemsg}`);
  2248. })
  2249.  
  2250. client.on("guildMemberAdd", member => {
  2251. if(!welcome[member.guild.id]) welcome[member.guild.id] = {
  2252. onoff: 'Off'
  2253. }
  2254. if(welcome[member.guild.id].onoff === 'Off') return;
  2255. let welcomer = member.guild.channels.find('name', `${welcome[member.guild.id].channel}`)
  2256. let memberavatar = member.user.avatarURL
  2257. if (!welcomer) return;
  2258. if(welcomer) {
  2259. moment.locale('ar-ly');
  2260. var h = member.user;
  2261. let heroo = new Discord.RichEmbed()
  2262. .setColor('RANDOM')
  2263. .setThumbnail(h.avatarURL)
  2264. .setAuthor(h.username,h.avatarURL)
  2265. .addField(': تاريخ دخولك الدسكورد',`${moment(member.user.createdAt).format('D/M/YYYY h:mm a')} **\n** \`${moment(member.user.createdAt).fromNow()}\``,true)
  2266. .setFooter(`${h.tag}`,"https://images-ext-2.discordapp.net/external/JpyzxW2wMRG2874gSTdNTpC_q9AHl8x8V4SMmtRtlVk/https/orcid.org/sites/default/files/files/ID_symbol_B-W_128x128.gif")
  2267. welcomer.send({embed:heroo});
  2268. fs.writeFile("./welcome.json", JSON.stringify(welcome), (err) => {
  2269. if (err) console.error(err)
  2270. .catch(err => {
  2271. console.error(err);
  2272. });
  2273. })
  2274. }})
  2275.  
  2276.  
  2277.  
  2278. client.on('guildMemberAdd',async member => {
  2279. if(!welcome[member.guild.id]) welcome[member.guild.id] = {
  2280. onoff: 'Off'
  2281. }
  2282. if(welcome[member.guild.id].onoff === 'Off') return;
  2283. var Canvas = require('canvas');
  2284. const jimp = require('jimp');
  2285. const w = ['./swlc.png'];
  2286. let Image = Canvas.Image,
  2287. canvas = new Canvas.createCanvas(800, 300),
  2288. ctx = canvas.getContext('2d');
  2289. ctx.patternQuality = 'bilinear';
  2290. ctx.filter = 'bilinear';
  2291. ctx.antialias = 'subpixel';
  2292. ctx.shadowColor = 'rgba(0, 0, 0, 0.4)';
  2293. ctx.shadowOffsetY = 2;
  2294. ctx.shadowBlur = 2;
  2295. ctx.stroke();
  2296. ctx.beginPath();
  2297.  
  2298. fs.readFile(`${w[Math.floor(Math.random() * w.length)]}`, function (err, Background) {
  2299. if (err) return console.log(err);
  2300. let BG = Canvas.Image;
  2301. let ground = new Image;
  2302. ground.src = Background;
  2303. ctx.drawImage(ground, 0, 0, 800, 300);
  2304.  
  2305. })
  2306.  
  2307. let url = member.user.displayAvatarURL.endsWith(".webp") ? member.user.displayAvatarURL.slice(5, -20) + ".png" : member.user.displayAvatarURL;
  2308. jimp.read(url, (err, ava) => {
  2309. if (err) return console.log(err);
  2310. ava.getBuffer(jimp.MIME_PNG, (err, buf) => {
  2311. if (err) return console.log(err);
  2312.  
  2313. ctx.font = '36px Arial';
  2314. ctx.fontSize = '72px';
  2315. ctx.fillStyle = "#ffffff";
  2316. ctx.textAlign = "center";
  2317. ctx.fillText(member.user.username, 545, 177);
  2318.  
  2319. ctx.font = '16px Arial Bold';
  2320. ctx.fontSize = '72px';
  2321. ctx.fillStyle = "#ffffff";
  2322. ctx.textAlign = "center";
  2323. ctx.fillText(`Your The Member ${member.guild.memberCount}`, 580, 200);
  2324.  
  2325. let Avatar = Canvas.Image;
  2326. let ava = new Avatar;
  2327. ava.src = buf;
  2328. ctx.beginPath();
  2329. ctx.arc(169.5, 148, 126.9, -100, Math.PI * 2, true);
  2330. ctx.closePath();
  2331. ctx.clip();
  2332. ctx.drawImage(ava, 36, 21, 260, 260);
  2333.  
  2334. let c = member.guild.channels.find('name', `${welcome[member.guild.id].channel}`)
  2335. if(!c) return;
  2336. c.sendFile(canvas.toBuffer());
  2337. fs.writeFile("./welcome.json", JSON.stringify(welcome), (err) => {
  2338. if (err) console.error(err)
  2339. .catch(err => {
  2340. console.error(err);
  2341. });
  2342. })
  2343.  
  2344. });
  2345. });
  2346. });
  2347.  
  2348. const invites = {};
  2349.  
  2350. const wait = require('util').promisify(setTimeout);
  2351.  
  2352. client.on('ready', () => {
  2353. wait(1000);
  2354.  
  2355. client.guilds.forEach(g => {
  2356. g.fetchInvites().then(guildInvites => {
  2357. invites[g.id] = guildInvites;
  2358. });
  2359. });
  2360. });
  2361.  
  2362. client.on('guildMemberAdd', member => {
  2363. if(!welcome[member.guild.id]) welcome[member.guild.id] = {
  2364. by: 'Off'
  2365. }
  2366. if(welcome[member.guild.id].by === 'Off') return;
  2367. member.guild.fetchInvites().then(guildInvites => {
  2368. const ei = invites[member.guild.id];
  2369. invites[member.guild.id] = guildInvites;
  2370. const invite = guildInvites.find(i => ei.get(i.code).uses < i.uses);
  2371. const inviter = client.users.get(invite.inviter.id);
  2372. const logChannel = member.guild.channels.find(channel => channel.name === `${welcome[member.guild.id].channel}`);
  2373. if(!logChannel) return;
  2374. setTimeout(() => {
  2375. logChannel.send(`Invited By: <@${inviter.id}>`);
  2376. },2000)
  2377. fs.writeFile("./welcome.json", JSON.stringify(welcome), (err) => {
  2378. if (err) console.error(err)
  2379. .catch(err => {
  2380. console.error(err);
  2381. });
  2382. });
  2383. });
  2384. });
  2385.  
  2386. const log = JSON.parse(fs.readFileSync('./log.json' , 'utf8'));
  2387.  
  2388. client.on('message', message => {
  2389. if (!message.channel.guild) return;
  2390.  
  2391. let room = message.content.split(" ").slice(1);
  2392. let findroom = message.guild.channels.find('name', `${room}`)
  2393. if(message.content.startsWith(prefix + "setLog")) {
  2394. if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
  2395. if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
  2396. if(!room) return message.channel.send('Please Type The Channel Name')
  2397. if(!findroom) return message.channel.send('Please Type The Log Channel Name')
  2398. let embed = new Discord.RichEmbed()
  2399. .setTitle('**Done The Log Code Has Been Setup**')
  2400. .addField('Channel:', `${room}`)
  2401. .addField('Requested By:', `${message.author}`)
  2402. .setThumbnail(message.author.avatarURL)
  2403. .setFooter(`${client.user.username}`)
  2404. message.channel.sendEmbed(embed)
  2405. log[message.guild.id] = {
  2406. channel: room,
  2407. onoff: 'On'
  2408. }
  2409. fs.writeFile("./log.json", JSON.stringify(log), (err) => {
  2410. if (err) console.error(err)
  2411. })
  2412. }})
  2413.  
  2414. client.on('message', message => {
  2415.  
  2416. if(message.content.startsWith(prefix + "toggleLog")) {
  2417. if(!message.channel.guild) return message.reply('**This Command Only For Servers**');
  2418. if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('**Sorry But You Dont Have Permission** `MANAGE_GUILD`' );
  2419. if(!log[message.guild.id]) log[message.guild.id] = {
  2420. onoff: 'Off'
  2421. }
  2422. if(log[message.guild.id].onoff === 'Off') return [message.channel.send(`**The log Is __????__ !**`), log[message.guild.id].onoff = 'On']
  2423. if(log[message.guild.id].onoff === 'On') return [message.channel.send(`**The log Is __??????__ !**`), log[message.guild.id].onoff = 'Off']
  2424. fs.writeFile("./log.json", JSON.stringify(log), (err) => {
  2425. if (err) console.error(err)
  2426. .catch(err => {
  2427. console.error(err);
  2428. });
  2429. });
  2430. }
  2431.  
  2432. })
  2433.  
  2434.  
  2435. client.on('messageDelete', message => {
  2436.  
  2437. if(message.author.bot) return;
  2438. if(message.channel.type === 'dm') return;
  2439. if(!message.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2440. if(!message.guild.member(client.user).hasPermission('MANAGE_MESSAGES')) return;
  2441. if(!log[message.guild.id]) log[message.guild.id] = {
  2442. onoff: 'Off'
  2443. }
  2444. if(log[message.guild.id].onoff === 'Off') return;
  2445. var logChannel = message.guild.channels.find(c => c.name === `${log[message.guild.id].channel}`);
  2446. if(!logChannel) return;
  2447.  
  2448. let messageDelete = new Discord.RichEmbed()
  2449. .setTitle('**[MESSAGE DELETE]**')
  2450. .setColor('RED')
  2451. .setThumbnail(message.author.avatarURL)
  2452. .setDescription(`**\n**:wastebasket: Successfully \`\`DELETE\`\` **MESSAGE** In ${message.channel}\n\n**Channel:** \`\`${message.channel.name}\`\` \n**Sent By:** <@${message.author.id}> \n**Message:**\n\`\`\`${message}\`\`\``)
  2453. .setTimestamp()
  2454. .setFooter(message.guild.name, message.guild.iconURL)
  2455.  
  2456. logChannel.send(messageDelete);
  2457. });
  2458. client.on('messageUpdate', (oldMessage, newMessage) => {
  2459.  
  2460. if(oldMessage.author.bot) return;
  2461. if(!oldMessage.channel.type === 'dm') return;
  2462. if(!oldMessage.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2463. if(!oldMessage.guild.member(client.user).hasPermission('MANAGE_MESSAGES')) return;
  2464. if(!log[oldMessage.guild.id]) log[oldMessage.guild.id] = {
  2465. onoff: 'Off'
  2466. }
  2467. if(log[oldMessage.guild.id].onoff === 'Off') return;
  2468. var logChannel = oldMessage.guild.channels.find(c => c.name === `${log[oldMessage.guild.id].channel}`);
  2469. if(!logChannel) return;
  2470.  
  2471. if(oldMessage.content.startsWith('https://')) return;
  2472.  
  2473. let messageUpdate = new Discord.RichEmbed()
  2474. .setTitle('**[MESSAGE EDIT]**')
  2475. .setThumbnail(oldMessage.author.avatarURL)
  2476. .setColor('BLUE')
  2477. .setDescription(`**\n**:wrench: Successfully \`\`EDIT\`\` **MESSAGE** In ${oldMessage.channel}\n\n**Channel:** \`\`${oldMessage.channel.name}\`\` \n**Sent By:** <@${oldMessage.author.id}> \n\n**Old Message:**\`\`\`${oldMessage}\`\`\`\n**New Message:**\`\`\`${newMessage}\`\`\``)
  2478. .setTimestamp()
  2479. .setFooter(oldMessage.guild.name, oldMessage.guild.iconURL)
  2480.  
  2481. logChannel.send(messageUpdate);
  2482. });
  2483.  
  2484.  
  2485. client.on('roleCreate', role => {
  2486.  
  2487. if(!role.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2488. if(!role.guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2489. if(!log[role.guild.id]) log[role.guild.id] = {
  2490. onoff: 'Off'
  2491. }
  2492. if(log[role.guild.id].onoff === 'Off') return;
  2493. var logChannel = role.guild.channels.find(c => c.name === `${log[role.guild.id].channel}`);
  2494. if(!logChannel) return;
  2495.  
  2496. role.guild.fetchAuditLogs().then(logs => {
  2497. var userID = logs.entries.first().executor.id;
  2498. var userAvatar = logs.entries.first().executor.avatarURL;
  2499.  
  2500. let roleCreate = new Discord.RichEmbed()
  2501. .setTitle('**[ROLE CREATE]**')
  2502. .setThumbnail(userAvatar)
  2503. .setDescription(`**\n**:white_check_mark: Successfully \`\`CREATE\`\` Role.\n\n**Role Name:** \`\`${role.name}\`\` \n**By:** <@${userID}> `)
  2504. .setColor('GREEN')
  2505. .setTimestamp()
  2506. .setFooter(role.guild.name, role.guild.iconURL)
  2507.  
  2508. logChannel.send(roleCreate);
  2509. })
  2510. });
  2511. client.on('roleDelete', role => {
  2512.  
  2513. if(!role.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2514. if(!role.guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2515. if(!log[role.guild.id]) log[role.guild.id] = {
  2516. onoff: 'Off'
  2517. }
  2518. if(log[role.guild.id].onoff === 'Off') return;
  2519. var logChannel = role.guild.channels.find(c => c.name === `${log[role.guild.id].channel}`);
  2520. if(!logChannel) return;
  2521.  
  2522. role.guild.fetchAuditLogs().then(logs => {
  2523. var userID = logs.entries.first().executor.id;
  2524. var userAvatar = logs.entries.first().executor.avatarURL;
  2525.  
  2526. let roleDelete = new Discord.RichEmbed()
  2527. .setTitle('**[ROLE DELETE]**')
  2528. .setThumbnail(userAvatar)
  2529. .setDescription(`**\n**:white_check_mark: Successfully \`\`DELETE\`\` Role.\n\n**Role Name:** \`\`${role.name}\`\` \n**By:** <@${userID}>`)
  2530. .setColor('RED')
  2531. .setTimestamp()
  2532. .setFooter(role.guild.name, role.guild.iconURL)
  2533.  
  2534. logChannel.send(roleDelete);
  2535. })
  2536. });
  2537. client.on('roleUpdate', (oldRole, newRole) => {
  2538.  
  2539. if(!oldRole.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2540. if(!oldRole.guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2541. if(!log[oldRole.guild.id]) log[oldRole.guild.id] = {
  2542. onoff: 'Off'
  2543. }
  2544. if(log[oldRole.guild.id].onoff === 'Off') return;
  2545. var logChannel = oldRole.guild.channels.find(c => c.name === `${log[oldRole.guild.id].channel}`);
  2546. if(!logChannel) return;
  2547.  
  2548. oldRole.guild.fetchAuditLogs().then(logs => {
  2549. var userID = logs.entries.first().executor.id;
  2550. var userAvatar = logs.entries.first().executor.avatarURL;
  2551.  
  2552. if(oldRole.name !== newRole.name) {
  2553. if(log[oldRole.guild.id].onoff === 'Off') return;
  2554. let roleUpdateName = new Discord.RichEmbed()
  2555. .setTitle('**[ROLE NAME UPDATE]**')
  2556. .setThumbnail(userAvatar)
  2557. .setColor('BLUE')
  2558. .setDescription(`**\n**:white_check_mark: Successfully \`\`EDITED\`\` Role Name.\n\n**Old Name:** \`\`${oldRole.name}\`\`\n**New Name:** \`\`${newRole.name}\`\`\n\n**By:** <@${userID}>`)
  2559. .setTimestamp()
  2560. .setFooter(oldRole.guild.name, oldRole.guild.iconURL)
  2561.  
  2562. logChannel.send(roleUpdateName);
  2563. }
  2564. if(oldRole.hexColor !== newRole.hexColor) {
  2565. if(oldRole.hexColor === '#000000') {
  2566. var oldColor = '`Default`';
  2567. }else {
  2568. var oldColor = oldRole.hexColor;
  2569. }
  2570. if(newRole.hexColor === '#000000') {
  2571. var newColor = '`Default`';
  2572. }else {
  2573. var newColor = newRole.hexColor;
  2574. }
  2575. if(log[oldRole.guild.id].onoff === 'Off') return;
  2576. let roleUpdateColor = new Discord.RichEmbed()
  2577. .setTitle('**[ROLE COLOR UPDATE]**')
  2578. .setThumbnail(userAvatar)
  2579. .setColor('BLUE')
  2580. .setDescription(`**\n**:white_check_mark: Successfully \`\`EDITED\`\` **${oldRole.name}** Role Color.\n\n**Old Color:** ${oldColor}\n**New Color:** ${newColor}\n\n**By:** <@${userID}>`)
  2581. .setTimestamp()
  2582. .setFooter(oldRole.guild.name, oldRole.guild.iconURL)
  2583.  
  2584. logChannel.send(roleUpdateColor);
  2585. }
  2586. })
  2587. });
  2588.  
  2589. client.on('channelCreate', channel => {
  2590.  
  2591. if(!channel.guild) return;
  2592. if(!channel.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2593. if(!channel.guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2594. if(!log[channel.guild.id]) log[channel.guild.id] = {
  2595. onoff: 'Off'
  2596. }
  2597. if(log[channel.guild.id].onoff === 'Off') return;
  2598. var logChannel = channel.guild.channels.find(c => c.name === `${log[channel.guild.id].channel}`);
  2599. if(!logChannel) return;
  2600.  
  2601. if(channel.type === 'text') {
  2602. var roomType = 'Text';
  2603. }else
  2604. if(channel.type === 'voice') {
  2605. var roomType = 'Voice';
  2606. }else
  2607. if(channel.type === 'category') {
  2608. var roomType = 'Category';
  2609. }
  2610.  
  2611. channel.guild.fetchAuditLogs().then(logs => {
  2612. var userID = logs.entries.first().executor.id;
  2613. var userAvatar = logs.entries.first().executor.avatarURL;
  2614.  
  2615. let channelCreate = new Discord.RichEmbed()
  2616. .setTitle('**[CHANNEL CREATE]**')
  2617. .setThumbnail(userAvatar)
  2618. .setDescription(`**\n**:white_check_mark: Successfully \`\`CREATE\`\` **${roomType}** channel.\n\n**Channel Name:** \`\`${channel.name}\`\`\n**By:** <@${userID}> `)
  2619. .setColor('GREEN')
  2620. .setTimestamp()
  2621. .setFooter(channel.guild.name, channel.guild.iconURL)
  2622.  
  2623. logChannel.send(channelCreate);
  2624. })
  2625. });
  2626. client.on('channelDelete', channel => {
  2627. if(!channel.guild) return;
  2628. if(!channel.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2629. if(!channel.guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2630. if(!log[channel.guild.id]) log[channel.guild.id] = {
  2631. onoff: 'Off'
  2632. }
  2633. if(log[channel.guild.id].onoff === 'Off') return;
  2634. var logChannel = channel.guild.channels.find(c => c.name === `${log[channel.guild.id].channel}`);
  2635. if(!logChannel) return;
  2636.  
  2637. if(channel.type === 'text') {
  2638. var roomType = 'Text';
  2639. }else
  2640. if(channel.type === 'voice') {
  2641. var roomType = 'Voice';
  2642. }else
  2643. if(channel.type === 'category') {
  2644. var roomType = 'Category';
  2645. }
  2646.  
  2647. channel.guild.fetchAuditLogs().then(logs => {
  2648. var userID = logs.entries.first().executor.id;
  2649. var userAvatar = logs.entries.first().executor.avatarURL;
  2650.  
  2651. let channelDelete = new Discord.RichEmbed()
  2652. .setTitle('**[CHANNEL DELETE]**')
  2653. .setThumbnail(userAvatar)
  2654. .setDescription(`**\n**:white_check_mark: Successfully \`\`DELETE\`\` **${roomType}** channel.\n\n**Channel Name:** \`\`${channel.name}\`\` \n**By:** <@${userID}>`)
  2655. .setColor('RED')
  2656. .setTimestamp()
  2657. .setFooter(channel.guild.name, channel.guild.iconURL)
  2658.  
  2659. logChannel.send(channelDelete);
  2660. })
  2661. });
  2662. client.on('channelUpdate', (oldChannel, newChannel) => {
  2663. if(!oldChannel.guild) return;
  2664. if(!log[oldChannel.guild.id]) log[oldChannel.guild.id] = {
  2665. onoff: 'Off'
  2666. }
  2667. if(log[oldChannel.guild.id].onoff === 'Off') return;
  2668. var logChannel = oldChannel.guild.channels.find(c => c.name === `${log[oldChannel.guild.id].channel}`);
  2669. if(!logChannel) return;
  2670.  
  2671. if(oldChannel.type === 'text') {
  2672. var channelType = 'Text';
  2673. }else
  2674. if(oldChannel.type === 'voice') {
  2675. var channelType = 'Voice';
  2676. }else
  2677. if(oldChannel.type === 'category') {
  2678. var channelType = 'Category';
  2679. }
  2680.  
  2681. oldChannel.guild.fetchAuditLogs().then(logs => {
  2682. var userID = logs.entries.first().executor.id;
  2683. var userAvatar = logs.entries.first().executor.avatarURL;
  2684.  
  2685. if(oldChannel.name !== newChannel.name) {
  2686. let newName = new Discord.RichEmbed()
  2687. .setTitle('**[CHANNEL EDIT]**')
  2688. .setThumbnail(userAvatar)
  2689. .setColor('BLUE')
  2690. .setDescription(`**\n**:wrench: Successfully Edited **${channelType}** Channel Name\n\n**Old Name:** \`\`${oldChannel.name}\`\`\n**New Name:** \`\`${newChannel.name}\`\`\n\n**By:** <@${userID}>`)
  2691. .setTimestamp()
  2692. .setFooter(oldChannel.guild.name, oldChannel.guild.iconURL)
  2693.  
  2694. logChannel.send(newName);
  2695. }
  2696. if(oldChannel.topic !== newChannel.topic) {
  2697. if(log[oldChannel.guild.id].onoff === 'Off') return;
  2698. let newTopic = new Discord.RichEmbed()
  2699. .setTitle('**[CHANNEL EDIT]**')
  2700. .setThumbnail(userAvatar)
  2701. .setColor('BLUE')
  2702. .setDescription(`**\n**:wrench: Successfully Edited **${channelType}** Channel Topic\n\n**Old Topic:**\n\`\`\`${oldChannel.topic || 'NULL'}\`\`\`\n**New Topic:**\n\`\`\`${newChannel.topic || 'NULL'}\`\`\`\n**Channel:** ${oldChannel} \n**By:** <@${userID}>`)
  2703. .setTimestamp()
  2704. .setFooter(oldChannel.guild.name, oldChannel.guild.iconURL)
  2705.  
  2706. logChannel.send(newTopic);
  2707. }
  2708. })
  2709. });
  2710.  
  2711.  
  2712.  
  2713. client.on('guildBanAdd', (guild, user) => {
  2714.  
  2715. if(!guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2716. if(!guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2717.  
  2718. var logChannel = guild.channels.find(c => c.name === 'log');
  2719. if(!logChannel) return;
  2720.  
  2721. guild.fetchAuditLogs().then(logs => {
  2722. var userID = logs.entries.first().executor.id;
  2723. var userAvatar = logs.entries.first().executor.avatarURL;
  2724.  
  2725. if(userID === client.user.id) return;
  2726.  
  2727. let banInfo = new Discord.RichEmbed()
  2728. .setTitle('**[BANNED]**')
  2729. .setThumbnail(userAvatar)
  2730. .setColor('DARK_RED')
  2731. .setDescription(`**\n**:airplane: Successfully \`\`BANNED\`\` **${user.username}** From the server!\n\n**User:** <@${user.id}> (ID: ${user.id})\n**By:** <@${userID}> (ID: ${userID})`)
  2732. .setTimestamp()
  2733. .setFooter(guild.name, guild.iconURL)
  2734.  
  2735. logChannel.send(banInfo);
  2736. })
  2737. });
  2738. client.on('guildBanRemove', (guild, user) => {
  2739. if(!guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2740. if(!guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2741.  
  2742. var logChannel = guild.channels.find(c => c.name === 'log');
  2743. if(!logChannel) return;
  2744.  
  2745. guild.fetchAuditLogs().then(logs => {
  2746. var userID = logs.entries.first().executor.id;
  2747. var userAvatar = logs.entries.first().executor.avatarURL;
  2748.  
  2749. if(userID === client.user.id) return;
  2750.  
  2751. let unBanInfo = new Discord.RichEmbed()
  2752. .setTitle('**[UNBANNED]**')
  2753. .setThumbnail(userAvatar)
  2754. .setColor('GREEN')
  2755. .setDescription(`**\n**:unlock: Successfully \`\`UNBANNED\`\` **${user.username}** From the server\n\n**User:** <@${user.id}> (ID: ${user.id})\n**By:** <@${userID}> (ID: ${userID})`)
  2756. .setTimestamp()
  2757. .setFooter(guild.name, guild.iconURL)
  2758.  
  2759. logChannel.send(unBanInfo);
  2760. })
  2761. });
  2762.  
  2763. client.on('guildUpdate', (oldGuild, newGuild) => {
  2764.  
  2765. if(!oldGuild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2766. if(!oldGuild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2767.  
  2768. var logChannel = oldGuild.channels.find(c => c.name === 'log');
  2769. if(!logChannel) return;
  2770.  
  2771. oldGuild.fetchAuditLogs().then(logs => {
  2772. var userID = logs.entries.first().executor.id;
  2773. var userAvatar = logs.entries.first().executor.avatarURL;
  2774.  
  2775. if(oldGuild.name !== newGuild.name) {
  2776. let guildName = new Discord.RichEmbed()
  2777. .setTitle('**[CHANGE GUILD NAME]**')
  2778. .setThumbnail(userAvatar)
  2779. .setColor('BLUE')
  2780. .setDescription(`**\n**:white_check_mark: Successfully \`\`EDITED\`\` The guild name.\n\n**Old Name:** \`\`${oldGuild.name}\`\`\n**New Name:** \`\`${newGuild.name}\`\`\n**By:** <@${userID}> (ID: ${userID})`)
  2781. .setTimestamp()
  2782. .setFooter(newGuild.name, oldGuild.iconURL)
  2783.  
  2784. logChannel.send(guildName)
  2785. }
  2786. if(oldGuild.region !== newGuild.region) {
  2787. let guildRegion = new Discord.RichEmbed()
  2788. .setTitle('**[CHANGE GUILD REGION]**')
  2789. .setThumbnail(userAvatar)
  2790. .setColor('BLUE')
  2791. .setDescription(`**\n**:white_check_mark: Successfully \`\`EDITED\`\` The guild region.\n\n**Old Region:** ${oldGuild.region}\n**New Region:** ${newGuild.region}\n**By:** <@${userID}> (ID: ${userID})`)
  2792. .setTimestamp()
  2793. .setFooter(oldGuild.name, oldGuild.iconURL)
  2794.  
  2795. logChannel.send(guildRegion);
  2796. }
  2797. if(oldGuild.verificationLevel !== newGuild.verificationLevel) {
  2798. if(oldGuild.verificationLevel === 0) {
  2799. var oldVerLvl = 'Very Easy';
  2800. }else
  2801. if(oldGuild.verificationLevel === 1) {
  2802. var oldVerLvl = 'Easy';
  2803. }else
  2804. if(oldGuild.verificationLevel === 2) {
  2805. var oldVerLvl = 'Medium';
  2806. }else
  2807. if(oldGuild.verificationLevel === 3) {
  2808. var oldVerLvl = 'Hard';
  2809. }else
  2810. if(oldGuild.verificationLevel === 4) {
  2811. var oldVerLvl = 'Very Hard';
  2812. }
  2813.  
  2814. if(newGuild.verificationLevel === 0) {
  2815. var newVerLvl = 'Very Easy';
  2816. }else
  2817. if(newGuild.verificationLevel === 1) {
  2818. var newVerLvl = 'Easy';
  2819. }else
  2820. if(newGuild.verificationLevel === 2) {
  2821. var newVerLvl = 'Medium';
  2822. }else
  2823. if(newGuild.verificationLevel === 3) {
  2824. var newVerLvl = 'Hard';
  2825. }else
  2826. if(newGuild.verificationLevel === 4) {
  2827. var newVerLvl = 'Very Hard';
  2828. }
  2829.  
  2830. let verLog = new Discord.RichEmbed()
  2831. .setTitle('**[GUILD VERIFICATION LEVEL CHANGE]**')
  2832. .setThumbnail(userAvatar)
  2833. .setColor('BLUE')
  2834. .setDescription(`**\n**:white_check_mark: Successfully \`\`EDITED\`\` Guild Verification level.\n\n**Old Verification Level:** ${oldVerLvl}\n**New Verification Level:** ${newVerLvl}\n**By:** <@${userID}> (ID: ${userID})`)
  2835. .setTimestamp()
  2836. .setFooter(oldGuild.name, oldGuild.iconURL)
  2837.  
  2838. logChannel.send(verLog);
  2839. }
  2840. })
  2841. });
  2842.  
  2843. client.on('guildMemberUpdate', (oldMember, newMember) => {
  2844. if(!oldMember.guild) return;
  2845. if(!log[oldMember.guild.id]) log[oldMember.guild.id] = {
  2846. onoff: 'Off'
  2847. }
  2848. if(log[oldMember.guild.id].onoff === 'Off') return;
  2849. var logChannel = oldMember.guild.channels.find(c => c.name === `${log[oldMember, newMember.guild.id].channel}`);
  2850. if(!logChannel) return;
  2851.  
  2852. oldMember.guild.fetchAuditLogs().then(logs => {
  2853. var userID = logs.entries.first().executor.id;
  2854. var userAvatar = logs.entries.first().executor.avatarURL;
  2855. var userTag = logs.entries.first().executor.tag;
  2856.  
  2857. if(oldMember.nickname !== newMember.nickname) {
  2858. if(oldMember.nickname === null) {
  2859. var oldNM = '`اسمه الاصلي`';
  2860. }else {
  2861. var oldNM = oldMember.nickname;
  2862. }
  2863. if(newMember.nickname === null) {
  2864. var newNM = '`اسمه الاصلي`';
  2865. }else {
  2866. var newNM = newMember.nickname;
  2867. }
  2868.  
  2869. let updateNickname = new Discord.RichEmbed()
  2870. .setTitle('**[UPDATE MEMBER NICKNAME]**')
  2871. .setThumbnail(userAvatar)
  2872. .setColor('BLUE')
  2873. .setDescription(`**\n**:spy: Successfully \`\`CHANGE\`\` Member Nickname.\n\n**User:** ${oldMember} \n**Old Nickname:** ${oldNM}\n**New Nickname:** ${newNM}\n**By:** <@${userID}>`)
  2874. .setTimestamp()
  2875. .setFooter(oldMember.guild.name, oldMember.guild.iconURL)
  2876.  
  2877. logChannel.send(updateNickname);
  2878. }
  2879. if(oldMember.roles.size < newMember.roles.size) {
  2880. let role = newMember.roles.filter(r => !oldMember.roles.has(r.id)).first();
  2881. if(!log[oldMember.guild.id]) log[oldMember.guild.id] = {
  2882. onoff: 'Off'
  2883. }
  2884. if(log[oldMember.guild.id].onoff === 'Off') return;
  2885. let roleAdded = new Discord.RichEmbed()
  2886. .setTitle('**[ADDED ROLE TO MEMBER]**')
  2887. .setThumbnail(oldMember.guild.iconURL)
  2888. .setColor('GREEN')
  2889. .setDescription(`**\n**:white_check_mark: Successfully \`\`ADDED\`\` Role to **${oldMember.user.username}**\n\n**User:** <@${oldMember.id}> \n**Role:** \`\`${role.name}\`\` \n**By:** <@${userID}>`)
  2890. .setTimestamp()
  2891. .setFooter(userTag, userAvatar)
  2892.  
  2893. logChannel.send(roleAdded);
  2894. }
  2895. if(oldMember.roles.size > newMember.roles.size) {
  2896. let role = oldMember.roles.filter(r => !newMember.roles.has(r.id)).first();
  2897. if(!log[oldMember.guild.id]) log[oldMember.guild.id] = {
  2898. onoff: 'Off'
  2899. }
  2900. if(log[oldMember, newMember.guild.id].onoff === 'Off') return;
  2901. let roleRemoved = new Discord.RichEmbed()
  2902. .setTitle('**[REMOVED ROLE FROM MEMBER]**')
  2903. .setThumbnail(oldMember.guild.iconURL)
  2904. .setColor('RED')
  2905. .setDescription(`**\n**:negative_squared_cross_mark: Successfully \`\`REMOVED\`\` Role from **${oldMember.user.username}**\n\n**User:** <@${oldMember.user.id}> (ID: ${oldMember.id})\n**Role:** \`\`${role.name}\`\` (ID: ${role.id})\n**By:** <@${userID}> (ID: ${userID})`)
  2906. .setTimestamp()
  2907. .setFooter(userTag, userAvatar)
  2908.  
  2909. logChannel.send(roleRemoved);
  2910. }
  2911. })
  2912. if(oldMember.guild.owner.id !== newMember.guild.owner.id) {
  2913. if(!log[oldMember.guild.id]) log[oldMember.guild.id] = {
  2914. onoff: 'Off'
  2915. }
  2916. if(log[oldMember, newMember.guild.id].onoff === 'Off') return;
  2917. let newOwner = new Discord.RichEmbed()
  2918. .setTitle('**[UPDATE GUILD OWNER]**')
  2919. .setThumbnail(oldMember.guild.iconURL)
  2920. .setColor('GREEN')
  2921. .setDescription(`**\n**:white_check_mark: Successfully \`\`TRANSFER\`\` The Owner Ship.\n\n**Old Owner:** <@${oldMember.user.id}> \n**New Owner:** <@${newMember.user.id}>`)
  2922. .setTimestamp()
  2923. .setFooter(oldMember.guild.name, oldMember.guild.iconURL)
  2924.  
  2925. logChannel.send(newOwner);
  2926. }
  2927. });
  2928.  
  2929.  
  2930. client.on('voiceStateUpdate', (voiceOld, voiceNew) => {
  2931.  
  2932. if(!voiceOld.guild.member(client.user).hasPermission('EMBED_LINKS')) return;
  2933. if(!voiceOld.guild.member(client.user).hasPermission('VIEW_AUDIT_LOG')) return;
  2934. if(!log[voiceOld.guild.id]) log[voiceOld.guild.id] = {
  2935. onoff: 'Off'
  2936. }
  2937. if(log[voiceOld, voiceOld.guild.id].onoff === 'Off') return;
  2938. var logChannel = voiceOld.guild.channels.find(c => c.name === `${log[voiceOld, voiceNew.guild.id].channel}`);
  2939. if(!logChannel) return;
  2940.  
  2941. voiceOld.guild.fetchAuditLogs().then(logs => {
  2942. var userID = logs.entries.first().executor.id;
  2943. var userTag = logs.entries.first().executor.tag;
  2944. var userAvatar = logs.entries.first().executor.avatarURL;
  2945.  
  2946. if(voiceOld.serverMute === false && voiceNew.serverMute === true) {
  2947. let serverMutev = new Discord.RichEmbed()
  2948. .setTitle('**[VOICE MUTE]**')
  2949. .setThumbnail('https://images-ext-1.discordapp.net/external/pWQaw076OHwVIFZyeFoLXvweo0T_fDz6U5C9RBlw_fQ/https/cdn.pg.sa/UosmjqDNgS.png')
  2950. .setColor('RED')
  2951. .setDescription(`**User:** ${voiceOld} \n**By:** <@${userID}> \n**Channel:** \`\`${voiceOld.voiceChannel.name}\`\``)
  2952. .setTimestamp()
  2953. .setFooter(userTag, userAvatar)
  2954.  
  2955. logChannel.send(serverMutev);
  2956. }
  2957. if(voiceOld.serverMute === true && voiceNew.serverMute === false) {
  2958. if(!log[voiceOld.guild.id]) log[voiceOld.guild.id] = {
  2959. onoff: 'Off'
  2960. }
  2961. if(log[voiceOld, voiceOld.guild.id].onoff === 'Off') return;
  2962. let serverUnmutev = new Discord.RichEmbed()
  2963. .setTitle('**[VOICE UNMUTE]**')
  2964. .setThumbnail('https://images-ext-1.discordapp.net/external/u2JNOTOc1IVJGEb1uCKRdQHXIj5-r8aHa3tSap6SjqM/https/cdn.pg.sa/Iy4t8H4T7n.png')
  2965. .setColor('GREEN')
  2966. .setDescription(`**User:** ${voiceOld} \n**By:** <@${userID}> \n**Channel:** \`\`${voiceOld.voiceChannel.name}\`\` `)
  2967. .setTimestamp()
  2968. .setFooter(userTag, userAvatar)
  2969.  
  2970. logChannel.send(serverUnmutev);
  2971. }
  2972. if(voiceOld.serverDeaf === false && voiceNew.serverDeaf === true) {
  2973. if(!log[voiceOld.guild.id]) log[voiceOld.guild.id] = {
  2974. onoff: 'Off'
  2975. }
  2976. if(log[voiceOld, voiceOld.guild.id].onoff === 'Off') return;
  2977. let serverDeafv = new Discord.RichEmbed()
  2978. .setTitle('**[VOICE DEAF]**')
  2979. .setThumbnail('https://images-ext-1.discordapp.net/external/7ENt2ldbD-3L3wRoDBhKHb9FfImkjFxYR6DbLYRjhjA/https/cdn.pg.sa/auWd5b95AV.png')
  2980. .setColor('RED')
  2981. .setDescription(`**User:** ${voiceOld} \n**By:** <@${userID}> (ID: ${userID})\n**Channel:** \`\`${voiceOld.voiceChannel.name}\`\` `)
  2982. .setTimestamp()
  2983. .setFooter(userTag, userAvatar)
  2984.  
  2985. logChannel.send(serverDeafv);
  2986. }
  2987. if(voiceOld.serverDeaf === true && voiceNew.serverDeaf === false) {
  2988. if(!log[voiceOld.guild.id]) log[voiceOld.guild.id] = {
  2989. onoff: 'Off'
  2990. }
  2991. if(log[voiceOld, voiceOld.guild.id].onoff === 'Off') return;
  2992. let serverUndeafv = new Discord.RichEmbed()
  2993. .setTitle('**[VOICE UNDEAF]**')
  2994. .setThumbnail('https://images-ext-2.discordapp.net/external/s_abcfAlNdxl3uYVXnA2evSKBTpU6Ou3oimkejx3fiQ/https/cdn.pg.sa/i7fC8qnbRF.png')
  2995. .setColor('GREEN')
  2996. .setDescription(`**User:** ${voiceOld} \n**By:** <@${userID}> (ID: ${userID})\n**Channel:** \`\`${voiceOld.voiceChannel.name}\`\` `)
  2997. .setTimestamp()
  2998. .setFooter(userTag, userAvatar)
  2999.  
  3000. logChannel.send(serverUndeafv);
  3001. }
  3002. })
  3003.  
  3004. if(voiceOld.voiceChannelID !== voiceNew.voiceChannelID && voiceNew.voiceChannel && voiceOld.voiceChannel != null) {
  3005. if(!log[voiceOld.guild.id]) log[voiceOld.guild.id] = {
  3006. onoff: 'Off'
  3007. }
  3008. if(log[voiceOld, voiceOld.guild.id].onoff === 'Off') return;
  3009. let voiceLeave = new Discord.RichEmbed()
  3010. .setTitle('**[CHANGED VOICE ROOM]**')
  3011. .setColor('GREEN')
  3012. .setThumbnail(voiceOld.user.avatarURL)
  3013. .setDescription(`**\n**:repeat: Successfully \`\`CHANGED\`\` The Voice Channel.\n\n**From:** \`\`${voiceOld.voiceChannel.name}\`\` \n**To:** \`\`${voiceNew.voiceChannel.name}\`\` (ID: ${voiceNew.voiceChannelID})\n**User:** ${voiceOld} `)
  3014. .setTimestamp()
  3015. .setFooter(voiceOld.user.tag, voiceOld.user.avatarURL)
  3016.  
  3017. logChannel.send(voiceLeave);
  3018. }
  3019. });
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027. var dat = JSON.parse("{}");
  3028. function forEachObject(obj, func) {
  3029. Object.keys(obj).forEach(function (key) { func(key, obj[key]) })
  3030. }
  3031. client.on("ready", () => {
  3032. var guild;
  3033. while (!guild)
  3034. guild = client.guilds.find("name", "ProjectTeam")
  3035. guild.fetchInvites().then((data) => {
  3036. data.forEach((Invite, key, map) => {
  3037. var Inv = Invite.code;
  3038. dat[Inv] = Invite.uses;
  3039. })
  3040. })
  3041. })
  3042. client.on("guildMemberAdd", (member) => {
  3043. let channel = member.guild.channels.find('name', 'chat');
  3044. if (!channel) {
  3045. console.log("!channel fails");
  3046. return;
  3047. }
  3048. if (member.id == client.user.id) {
  3049. return;
  3050. }
  3051. console.log('made it till here!');
  3052. var guild;
  3053. while (!guild)
  3054. guild = client.guilds.find("name", "ProjectTeam")
  3055. guild.fetchInvites().then((data) => {
  3056. data.forEach((Invite, key, map) => {
  3057. var Inv = Invite.code;
  3058. if (dat[Inv])
  3059. if (dat[Inv] < Invite.uses) {
  3060. console.log(3);
  3061. console.log(`${member} joined over ${Invite.inviter}'s invite ${Invite.code}`)
  3062. channel.send(` **Invited By ${Invite.inviter} ** `)
  3063. }
  3064. dat[Inv] = Invite.uses;
  3065. })
  3066. })
  3067. });
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099. client.login("توكن حق بوت انتا يا خالد");
Advertisement
Add Comment
Please, Sign In to add comment